JavaRush /Java Blog /Random-IT /Sia lo Svedese che il Mietitore. Chi è uno sviluppatore F...

Sia lo Svedese che il Mietitore. Chi è uno sviluppatore Full Stack e come diventarlo?

Pubblicato nel gruppo Random-IT
Sia lo Svedese che il Mietitore.  Chi è uno sviluppatore Full Stack e come diventarlo?  -1Esiste una posizione nel campo dello sviluppo informatico che è misteriosa e oscura, ma allo stesso tempo seducente e attraente. Questa, come probabilmente hai già capito, è la posizione di uno sviluppatore Full Stack. Si è guadagnato questa reputazione controversa per una serie di ragioni, che verranno discusse di seguito, ma in breve, è tutto perché gli sviluppatori e altri specialisti tecnici non riescono a raggiungere un consenso su cosa dovrebbe essere un vero sviluppatore Full Stack. Sia lo Svedese che il Mietitore.  Chi è uno sviluppatore Full Stack e come diventarlo?  - 2

"Uno sviluppatore full stack è un mago della tecnica che conosce tutti i linguaggi e le tecnologie di programmazione e canta e balla magnificamente."

Ian Peters-Campbell è
uno sviluppatore esperto e fondatore della società di software Stickbuilt.

Chi è uno sviluppatore Full Stack?

Allora, cos'è uno sviluppatore Full Stack nel senso tradizionale? La definizione più comune ci dice che si tratta di uno specialista responsabile dello sviluppo di tutte le parti della funzionalità del sistema, compreso sia il lato utente del prodotto (frontend) sia il codice interno in esecuzione su server distribuiti (backend). Di norma, se in un annuncio per un posto vacante appare la frase "stack completo", significa che lo sviluppatore deve avere contemporaneamente conoscenze e competenze nello sviluppo di backend e frontend. Molte aziende però vanno oltre, e per “sviluppatore Full Stack” intendono un soldato universale che non solo è in grado di sviluppare tutte le componenti di un prodotto software, ma può farsi carico anche di tutto il resto, dalla gestione del prodotto all’impostazione della gestione operativa. sistema sui server e riparare una stampante da ufficio. Nella maggior parte dei casi, infatti, uno sviluppatore full stack deve avere un discreto livello di conoscenza dell'insieme di tecnologie necessarie per il completamento con successo del progetto. Pertanto, in questo caso, per “stack” si intende un insieme di moduli e componenti software combinati insieme per ottenere la funzionalità richiesta. Sia lo Svedese che il Mietitore.  Chi è uno sviluppatore Full Stack e come diventarlo?  - 3

Perché questo argomento è così controverso?

Il dibattito su cosa dovrebbe essere realmente uno sviluppatore Full Stack e se una tale bestia esista in quantità sufficienti a separare tali specialisti in un gruppo separato, va avanti da parecchio tempo. Come notano i programmatori esperti, è divampato con rinnovato vigore dopo che i rappresentanti di Facebook, all'alba della sua formazione negli anni 2000, durante un discorso in una delle conferenze specializzate per sviluppatori, hanno dichiarato di assumere solo ed esclusivamente sviluppatori Full Stack. “Se le definizioni tradizionali di sviluppatore Full Stack ti confondono, allora è tutto corretto. Questo perché uno sviluppatore Full Stack è qualcosa di effimero. Non esiste un modello scientifico che descriva cosa sia uno “stack completo”. Non esiste un modo chiaro per misurare il livello di uno sviluppatore full stack rispetto ad altri sviluppatori simili. L'unico consenso riguardo al Full Stack è che nessuno è d'accordo su un'unica definizione dell'essenza di questo fenomeno. Ecco perché tutto ciò che leggi su questo argomento non è altro che un’opinione soggettiva”, ha affermato Ryland Goldstein, un esperto sviluppatore e architetto di software. Sia lo Svedese che il Mietitore.  Chi è uno sviluppatore Full Stack e come diventarlo?  - 4

I quattro pilastri dello sviluppo full stack

Tuttavia, anche se molti esperti sostengono che quello di sviluppatore Full Stack sia un concetto controverso, non ci sono meno posti vacanti, anzi. Consideriamo quindi la conoscenza in quali aree, di regola, è necessario possedere per candidarsi a questo tipo di posizione.
  1. Sviluppo frontend.

    In genere, il front-end si riferisce alle tecnologie di sviluppo web e ai linguaggi di programmazione come HTML, CSS e JavaScript. Include anche framework JavaScript come React e tutte le altre tecnologie relative al lato “client” del prodotto.

    Da dove iniziare a studiare:

    Puoi iniziare con l'app Create React o i framework Gatsby , con i quali è abbastanza semplice creare un'applicazione React a tutti gli effetti. È una buona idea imparare i preprocessori CSS, gli strumenti CSS di base come CSS-in-JS e strumenti come Sass .

  2. Sviluppo back-end.

    Il backend include tutto il codice in esecuzione sui server, comprese le applicazioni e le API che fanno funzionare il sito. I principali linguaggi di programmazione per il backend sono Java, Python, Ruby e altri. Oltre a questo, lo sviluppo del backend comprende anche la gestione del database, che richiede la conoscenza di SQL.

    Da dove iniziare a studiare:

    Innanzitutto è consigliabile iniziare approfondendo la conoscenza di JavaScript, che in molti casi è una sorta di ponte tra frontend e backend. In particolare, è una buona idea imparare NodeJS , una piattaforma software basata sul motore V8 che trasforma JavaScript da un linguaggio altamente specializzato in un linguaggio di uso generale.

    Также для того, чтобы иметь максимально полную квалификацию в бэкенде, рекомендуется, помимо Java, постепенно осваивать такие языки программирования, How Python (в первую очередь), PHP и Ruby.

  3. Проджект-менеджмент.

    От проджект-менеджера, если вкратце, требуется управлять проектом, что включает множество задач, среди которых взаимодействие с клиентами, коллегами, сторонними подрядчиками и т.д. Словом все, что нужно для успешной реализации проекта. Сюда также входит планирование, принятие стратегических решений по работе над продуктом и т.д.

    С чего начать изучение:

    Для успешного развития в качестве проджект-менеджера не помешает изучить наиболее популярные инструменты в этой сфере. Основными можно назвать: GanttPRO (сервис для планирования и управления проектами с помощью диаграммы Ганта), Jira Software (популярная система для планирования и отслеживания agile-проектов), LiquidPlanner (инструмент для проджект-менеджмента в реальном времени), Basecamp (еще одна система управления проектами и совместной работы) и т.д.

  4. DevOps.

    Ну и, наконец, четвертым столпом фуллстек-девелопмента является знание DevOps. Обязанности DevOps-а могут сильно отличаться в зависимости от проекта, но How правило к ним относится все, что касается запуска программного codeа в продакшн, включая, например, настройку serverов, на которых будет функционировать приложение, и обеспечение слаженной работы специалистов команды вместе с техническими решениями, которые они используют.

    С чего начать изучение:

    Сфера DevOps также включает в себя довольно много всяких инструментов. Вот те, с изучения которых имеет смысл начинать: инструменты управления исходным codeом (GitLab, GitHub, Bitbucket), CI/CD-инструменты (Ansible, Jenkins, Chef), тулзы для коммуникации и коллаборации (Slack и Microsoft Teams), а также сервисы облачных вычислений и хранения данных (AWS, Azure и GCP).

    Sia lo Svedese che il Mietitore.  Chi è uno sviluppatore Full Stack e come diventarlo?  - 5

    Помимо вышеперечисленных четырех базовых составляющих “полного стека,” он не был бы действительно полным, если бы не включал в себя также мобильную разработку, базы данных и QA автоматизацию — истинный Full Stack разработчик разбирается и в этих технологиях тоже.

Зарплаты Full Stack разработчиков

Per quanto riguarda gli stipendi degli sviluppatori full stack, in media non sono molto più alti rispetto ai loro colleghi con una specializzazione più specifica nello sviluppo. Negli Stati Uniti, secondo PayScale , lo stipendio medio degli sviluppatori full-stack è di quasi 75mila dollari all’anno . Allo stesso tempo, lo stipendio minimo (per i programmatori in posizioni full-stack) è di circa 46mila dollari all’anno e il massimo è di circa 114mila dollari all’anno. Per quanto riguarda i paesi dell'ex Unione Sovietica, in Ucraina, secondo la risorsa Work.ua , lo stipendio medio degli sviluppatori full stack è di 35mila grivna (circa 1.300 dollari) al mese, mentre a Kiev è di 45mila (circa 1.650 dollari). In Russia, secondo questi dati, gli stipendi degli sviluppatori full-stack, in media, vanno da 40mila rubli (530 dollari) a 150mila rubli. ($ 2000). Se parliamo della media mondiale nel suo insieme, gli specialisti che lavorano nella posizione che consideriamo oggi guadagnano circa 45mila dollari all’anno. E in Europa, gli sviluppatori full stack ricevono gli stipendi più alti in Danimarca e Svezia. Sia lo Svedese che il Mietitore.  Chi è uno sviluppatore Full Stack e come diventarlo?  - 6

Come diventare uno sviluppatore Full Stack?

Ora esaminiamo brevemente le competenze, le abilità e le tecnologie che devi padroneggiare per poterti definire uno sviluppatore full stack con totale sicurezza e senza un pizzico di ironia.
  1. Linguaggi di programmazione.

    Uno sviluppatore full stack deve essere fluente in diversi linguaggi di programmazione. Prima di tutto, ovviamente, ci sono i principali: Java, PHP, C#, Python, Ruby, Perl, ecc. In una parola, quelle lingue più popolari in cui molto probabilmente verranno scritti i principali processi aziendali del prodotto. Naturalmente, sarà estremamente difficile imparare perfettamente alcune di queste lingue. Ma è necessario padroneggiare almeno la grammatica della lingua che giocherà un ruolo importante nello sviluppo, e anche avere una buona conoscenza di come strutturare, progettare, implementare e testare un progetto basato su una o più lingue.

  2. Framework e librerie di codici.

    Ebbene, una buona conoscenza dei principali linguaggi di programmazione nella maggior parte dei casi include la capacità di utilizzare framework e librerie popolari, come Java Spring, Hibernate, Python Django, PHP thinkphp, MyBatis e altri.

  3. Tecnologie frontend.

    Grande è anche l’importanza della conoscenza delle tecnologie front-end per gli sviluppatori full-stack, che aumenta nel tempo. Oggi, quando la comodità e il "involucro" complessivo del prodotto diventano non meno importanti della funzionalità, una parte significativa del successo complessivo del progetto ricade sulle spalle del frontend. Per Full Stack è necessario conoscere almeno le tecnologie front-end di base, ovvero HTML5, CSS3 e JavaScript, nonché padroneggiare i principali framework e librerie front-end, ovvero JQuery, LESS, SASS, AngularJS e le già citate Reagire.

  4. Banca dati.

    I database sono un altro componente importante dello “stack completo”, perché qualsiasi prodotto o servizio deve archiviare le informazioni da qualche parte. Di conseguenza, uno sviluppatore full stack dovrebbe conoscere almeno un paio dei sistemi di database più popolari e come lavorare con essi. I sistemi di database più popolari oggi sono MySQL, MongoDB, Redis, Oracle, SQLServer e altri. Tra questi, MongoDB è più popolare come database per vari progetti Internet, MySQL e Oracle sono più popolari per il backend nel campo dei prodotti aziendali e Redis viene spesso utilizzato per la memorizzazione nella cache e per migliorare le prestazioni del sistema.

  5. Management e competenze trasversali.

    Ma per ottenere buoni risultati in questo ambito, il semplice apprendimento di alcune tecnologie o di un linguaggio di programmazione non sarà sufficiente. Una gestione di progetto di successo coinvolge molti componenti, tra cui la gestione del tempo, la pianificazione, buone capacità di comunicazione e molto altro. E tutto questo si acquisisce principalmente attraverso la pratica.

  6. Conoscenza base di progettazione.

    Infine, anche la conoscenza del design, ovvero della progettazione UX/UI, seppure a livello base, rientra nelle competenze di uno sviluppatore full stack.

    A proposito, ecco una tabella di marcia ben composta progettata per visualizzare graficamente tutta la varietà delle tecnologie di cui sopra.

Conclusioni e prospettive

Come puoi concludere da tutto quanto sopra, per diventare uno sviluppatore full-stack a tutti gli effetti e forse anche standard, dovrai dedicare molto tempo e impegno. Tuttavia, la pratica costante e regolare permette di padroneggiare nel tempo discipline molto più complesse. L'importante è capire dove andare, lavorare sulle competenze chiave e non interrompere l'autoapprendimento. Ma se sia necessario compiere tali sforzi per diventare uno sviluppatore full stack di successo è un’altra questione. Se parliamo dei vantaggi e degli svantaggi di tale lavoro, gli svantaggi sono evidenti: devi studiare molto e capire molte cose diverse. I vantaggi sono più complicati. Uno sviluppatore full stack solitamente ha l’opportunità di avere un impatto maggiore sul progetto nel suo insieme, rispetto ai programmatori altamente specializzati. Per la maggior parte, ciò aumenta la soddisfazione lavorativa e, ancora una volta, il ChSV fiorisce e profuma. Tuttavia, la comprensione dell’intera gamma di tecnologie e competenze necessarie per uno sviluppo di successo a volte apre possibilità davvero illimitate. Si ritiene che gli sviluppatori full stack diventino molto spesso imprenditori IT di successo. E in generale, una persona con un tale bagaglio di competenze non rimarrà sicuramente senza lavoro , indipendentemente da eventuali crisi.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION