"Dove sono i giovani punk che ci cancelleranno dalla faccia della terra?"

Mi sono posto la domanda esistenziale posta nel titolo nella formulazione di Grebenshchikov dopo un altro giro di discussioni in una delle comunità sulla questione se uno sviluppatore web backend principiante abbia bisogno di conoscenze SQL o se ORM farà comunque tutto. Ho deciso di cercare la risposta in modo un po' più ampio rispetto al semplice ORM e SQL, e fondamentalmente provare a sistematizzare chi sono le persone che ora vanno ai colloqui per posizioni di sviluppo di livello junior e medio, quale è la loro storia e in quale mondo lavorano. vivere dentro. In generale, avevo un'opinione, ma era formata dall'esperienza personale di assunzione e chiaramente adattata al mercato locale. In generale, è diventato interessante. Ecco cosa abbiamo trovato.

Popolazione globale di sviluppatori

Per affrontare in qualche modo la questione, ho deciso di iniziare cercando dati su quanti sviluppatori ci sono oggi nel mondo e come questa popolazione sta cambiando nel tempo.
Varie fonti stimano che i numeri siano compresi tra 12 e 30 milioni di persone. Ho deciso di fermarmi a dati da SlashData, perché la loro metodologia mi è sembrata abbastanza equilibrata e adatta alle mie esigenze. Nella loro valutazione hanno preso in considerazione il numero di account e repository su Github, il numero di account su StackOverflow, gli account npm e i dati provenienti da fonti ufficiali sull'occupazione negli Stati Uniti e in Europa. Hanno inoltre corretto i numeri risultanti utilizzando i propri 16 studi, che includevano circa 20 persone per ciascun sondaggio.

Secondo SlashData, nel quarto trimestre del 2018 c'erano circa 18.9 milioni di sviluppatori nel mondo, di cui 12.9 milioni erano sviluppatori professionisti, cioè si guadagnavano da vivere programmando. Coloro che attualmente non sono sviluppatori professionisti sono persone per le quali la programmazione è un hobby, più coloro che attualmente stanno studiando una professione (studenti vari e autodidatti). Bene, ecco un suggerimento sulle dimensioni del gruppo che mi interessa: 6 milioni di persone. Ad essere onesti, questo è più di quanto mi aspettassi.

La seconda sorpresa per me è stata il tasso di crescita del numero di programmatori: dal secondo trimestre del 2017 al quarto trimestre del 2018, è passato da 14.7 ai citati 18.9 milioni, ovvero è aumentato del 21% nel 2018! Se mi chiedessero di stimare il tasso di crescita del numero di programmatori, direi che è di circa il 5% annuo con un leggero aumento annuale. E qui risulta essere addirittura del 20%.

Inoltre, SlashData stima che la popolazione raggiungerà i 2030 milioni entro il 45. È facile capire che ciò implica una crescita di poco più dell'8% annuo, non del 20%, ma si riferisce a un aggiustamento per tenere conto della penetrazione di Internet (attualmente circa il 57% a livello mondiale). secondo Statista) e molti altri fattori, come il numero di sviluppatori pro capite. Dal punto di vista geografico, il numero di sviluppatori sta crescendo più fortemente in India e Cina; si prevede che l’India supererà gli Stati Uniti nel numero di sviluppatori entro il 2023 (questo è già C# Dati sull'angolo).

In generale, ci saranno molti programmatori, non importa come la guardi, perché la domanda sta crescendo. A proposito, sulla domanda.

Cosa è richiesto?

Per stimare la domanda, ho utilizzato i dati di HackerRank per 2018 и 2019 anni.

In termini di linguaggi di programmazione, la maggiore richiesta è per JavaScript, Python e Java in quasi tutti i settori, ad eccezione dell'hardware informatico. In quest’ultimo caso la richiesta maggiore è per C/C++, il che è comprensibile; i progetti hardware hanno ancora requisiti in termini di intensità di risorse e prestazioni del software corrispondente.

"Dove sono i giovani punk che ci cancelleranno dalla faccia della terra?"

In termini di framework, AngularJS, Node.js e React sono i più richiesti e hanno il divario più ampio tra domanda e offerta, il che sembra essere spiegato dalla velocità con cui sta cambiando l'ecosistema JavaScript, perché ad esempio per ExpressJS , l’offerta supera già la domanda.

"Dove sono i giovani punk che ci cancelleranno dalla faccia della terra?"

In termini di competenze, i datori di lavoro si aspettano principalmente capacità di problem solving dai candidati. Circa il 95% dei datori di lavoro ritiene che queste competenze siano importanti. La competenza nel linguaggio di programmazione è al secondo posto con il 56%. A proposito, non c'è alcun confine con la conoscenza fondamentale di algoritmi, strutture dati e altre scienze informatiche, o non era nel questionario, oppure la conoscenza accademica non è più richiesta su larga scala.

La progettazione di database è richiesta dal 23.2% delle aziende con meno di 100 persone e dal 18.8% delle aziende con più di 1000 persone. Sì, sembra che si tratti di ORM e SQL! La spiegazione logica, secondo me, è che nelle grandi aziende esiste un ruolo dedicato del DBA, che è responsabile di questo aspetto, e quindi è possibile ammorbidire i requisiti per gli sviluppatori e assumere più velocemente. Ma con System Design è il contrario: 37.0% in quelli piccoli, 44.1% in quelli grandi. Sembrerebbe che quelli di grandi dimensioni dovrebbero avere architetti dedicati, ma forse semplicemente non sono in grado di coprire il numero di sistemi generati. Oppure gli stessi algoritmi fondamentali e le stesse strutture dati vengono inseriti nel System Design, allora diventa un po’ più chiaro.

Le piccole imprese hanno bisogno della Framework Competence più e meno del già citato System Design, da cui possiamo trarre la conclusione del capitano che è importante per le startup lanciare un prodotto in qualche modo funzionante il più rapidamente possibile, e domani sarà domani.

"Dove sono i giovani punk che ci cancelleranno dalla faccia della terra?"

Cosa imparano gli studenti?

Qui ho fatto affidamento sui dati di un altro Ricerca HackerRank.
È importante considerare che, nonostante il fatto che la programmazione in una forma o nell'altra venga insegnata nelle università (intendo le specializzazioni in informatica), più della metà degli intervistati ha affermato di impegnarsi anche nell'autodidatta.

Gli studenti moderni preferiscono imparare da YouTube, mentre gli sviluppatori più anziani si orientano verso tutorial e libri. Entrambi utilizzano attivamente StackOverflow. Lo attribuisco al fatto che i video sono un canale mediatico familiare per la generazione Z, mentre i rappresentanti della generazione Y vivono ancora in un'era senza blogger.

Insegnano ciò che è richiesto dai datori di lavoro: JavaScript, Java, Python. Dichiarano di conoscere il C/C++, ma probabilmente questo è dovuto al fatto che questi linguaggi vengono utilizzati per l'insegnamento nelle università. Insegnano framework JS, ma la domanda è significativamente più alta dell'offerta, quindi a quanto pare stanno imparando attivamente dopo aver trovato il loro primo lavoro.

"Dove sono i giovani punk che ci cancelleranno dalla faccia della terra?"

In generale, come previsto, insegnano ciò che è richiesto.

Gli studenti si aspettano una crescita professionale dal loro primo lavoro, l’equilibrio tra lavoro e vita privata viene al secondo posto (in alcuni paesi al primo posto) e i compiti interessanti al terzo.

Dinamica della popolazione di sviluppatori per linguaggi di programmazione e tipologie di software

"Dove sono i giovani punk che ci cancelleranno dalla faccia della terra?"

Le applicazioni web sono al primo posto con circa 16.9 milioni di sviluppatori. Questo è di nuovo SlashData. Seguono i servizi backend (13.6 milioni), le applicazioni mobili (13.1 milioni) e desktop (12.3 milioni). I settori AR/VR e IoT stanno gradualmente guadagnando popolarità, mentre AI/ML/Data Science è cresciuta in modo significativo negli ultimi due anni.

Javascript sta crescendo più velocemente; la sua comunità è già la più grande, con una crescita di 2018 milioni di persone solo nel 2.5. Stanno addirittura cercando di inserirlo nei settori IoT e ML.
Python è cresciuto di 2018 milioni nel 2.2 grazie alla crescente popolarità del machine learning, dove è tradizionalmente forte, nonché alla facilità di apprendimento e alla comodità del linguaggio.

Java, C/C++ e C# stanno crescendo a un ritmo più lento rispetto alla popolazione complessiva degli sviluppatori. Ora raramente sono il linguaggio di programmazione con cui le persone scelgono di iniziare. La domanda di sviluppatori qui è più o meno equilibrata con l’offerta. Penso che Java sarebbe cresciuto ancora più lentamente se non fosse stato per Android.

PHP è il secondo linguaggio di programmazione di applicazioni web più popolare e anch'esso sta crescendo in modo significativo (del 32% nel 2018). La sua comunità è stimata in 5.9 milioni di sviluppatori. Nonostante la reputazione polarizzante di PHP, è abbastanza facile da imparare e ampiamente utilizzato.

Come studiano i giovani candidati di oggi rispetto alle generazioni precedenti?

Di nuovo i dati di HackerRank. Coloro che oggi hanno tra i 38 e i 53 anni elencano i giochi come primi progetti.

A proposito, confermo che il mio primo progetto più o meno funzionante è stato un “tris” fino a cinque di fila con campo illimitato, il secondo era un gioco da 15. Tutto questo l'ho scritto su aC 010-01, c'era Vilnius essenziale, alias BASIC-86 e focale. Eh.

I moderni programmatori alle prime armi (fino a 21 anni) scrivono calcolatrici e siti Web come primi progetti.

Tra i rappresentanti della generazione X, quasi la metà ha iniziato a scrivere codice prima dei 16 anni, molti lo hanno fatto dai 5 ai 10 anni (soprattutto quelli che ora hanno tra i 35 ei 45 anni). Il motivo è più o meno chiaro: le fonti di informazione erano poche, e per diventare programmatore bisognava davvero volerlo fortemente, e chi lo voleva davvero iniziava presto a programmare. Coloro che non lo desideravano molto probabilmente ora hanno una professione diversa, quindi il quadro in sociologia è esattamente questo.

"Dove sono i giovani punk che ci cancelleranno dalla faccia della terra?"

I giovani candidati di oggi solo il 20% delle volte iniziano a programmare prima dei 16 anni, la maggior parte tra i 16 e i 20 anni. Ma per loro è anche molto più facile imparare: ora è molto più accessibile.

risultati

Non ho ancora trovato una risposta concreta alla domanda se uno sviluppatore web backend principiante abbia bisogno di SQL oggi, ma ho corretto la mia idea della moderna popolazione di programmatori.

La prossima generazione di sviluppatori sono persone comuni, in qualche modo assomigliano alle precedenti, il problema degli alloggi li ha solo rovinati. Soddisfano la domanda creata dai datori di lavoro. La soglia per accedere alla professione è diventata più bassa grazie a strumenti e strutture più convenienti che consentono di ottenere rapidamente risultati. Sempre più persone stanno diventando programmatori; la generazione digitale (Generazione Z) vive nella tecnologia fin dalla nascita; per loro è una professione comune, non peggiore di altre.

Coloro che sanno che la latenza della cache L1 è di circa 4 cicli e che è meglio non mandare in crash le linee della cache inutilmente, stanno diventando sempre più piccoli come percentuale della dimensione totale della popolazione. Ma non devono preoccuparsi di trovare lavoro: qualcuno, dopotutto, deve pur scrivere cose di basso livello laddove ce n’è ancora bisogno. Allo stesso modo, coloro che hanno una profonda conoscenza fondamentale nella progettazione dei sistemi e l'hanno acquisita in sanguinose battaglie pratiche, e non seguono solo un culto del carico, non dovrebbero preoccuparsi. Perché ci saranno più persone nei team che sapranno “semplicemente scrivere codice” e “solo” usare i framework, e per “evitare il dolore lancinante di anni trascorsi vissuti senza meta” (c) dovranno essere bilanciati proprio da queste persone .

Le competenze trasversali stanno gradualmente migrando dalla categoria desiderabile a quella obbligatoria (non ho dati oggettivi per confermarlo, solo osservazioni pratiche). Il numero dei programmatori è in crescita e tutti hanno bisogno di essere indirizzati al raggiungimento dei risultati, attraverso il controllo diretto o indiretto, ed è proprio a questo che servono le soft skills.

"Enter IT" mi sembra una storia locale-regionale, tipica di quei luoghi in cui il reddito di un programmatore differisce significativamente dal reddito di uno specialista comparabile "non IT". A Minsk, dove vivo, questo è generalmente un movimento di massa, ogni giorno vedo annunci di nuovi corsi su come entrare nell'ambito IT e le aziende di pulizia si rivolgono ai programmatori con il messaggio “Capisci il codice in questa immagine? Ciò significa che puoi permetterti di non pulire il tuo appartamento, faremo tutto per te.” A quanto pare la stessa cosa sta accadendo in qualche India. Inoltre non ho dati per dimostrarlo.

In generale, secondo me, nulla minaccia la popolazione dei programmatori. È inutile blaterare sul fatto che di giorno in giorno non si trovano veri programmatori e che i candidati molto spesso “non sanno nulla”. Sono altrettanto intelligenti e capaci, forse anche più intelligenti e capaci dei “veri programmatori”; acquisiscono semplicemente la conoscenza che un mercato in rapida crescita richiede loro e rimandano a dopo ciò di cui non hanno ancora avuto bisogno e che non porterà buoni benefici Ora. Impareranno quando ne avranno bisogno, perché vogliono ancora imparare. Probabilmente non tutti ne saranno capaci, ma non tutti ne avranno bisogno, nel prossimo futuro il mercato accetterà facilmente persone che potranno mettere insieme rapidamente un altro concetto applicativo utilizzando un framework.

Solo gli utenti registrati possono partecipare al sondaggio. AccediPer favore.

Le interviste ai backender web richiedono conoscenze SQL?

  • Sì, lo richiedo perché mi serve per lavoro

  • Sì, lo faccio, anche se raramente è necessario al lavoro.

  • No, non ne ho bisogno, abbiamo NoSQL

  • No, non ne ho bisogno, ORM farà tutto

320 utenti hanno votato. 230 utenti si sono astenuti.

Fonte: habr.com

Aggiungi un commento