"Kus on noored punkarid, kes meid maa pealt pühivad?"

Esitasin endale Grebenštšikovi sõnastuses pealkirjas pandud eksistentsiaalse küsimuse pärast järjekordset aruteluringi ühes kogukonnas selle kohta, kas alustaval veebitausta arendajal on vaja SQL-teadmisi või kas ORM teeb nagunii kõik ära. Otsustasin otsida vastust veidi laiemalt kui ainult ORM-i ja SQL-i kohta ning põhimõtteliselt püüda süstematiseerida, kes on need inimesed, kes lähevad nüüd noorema ja keskmise tasemega arenduskohtadele intervjuudele, milline on nende ajalugu ja mis maailmas nad on. elama. Üldiselt mul oli arvamus, kuid see kujunes isiklikust värbamiskogemusest ja oli selgelt kohanenud kohaliku turuga. Üldiselt läks asi huvitavaks. Siin on see, mida me leidsime.

Ülemaailmne arendajate populatsioon

Et küsimusele kuidagi läheneda, otsustasin alustada andmete otsimisega selle kohta, kui palju arendajaid maailmas praegu on ja kuidas see populatsioon ajas muutub.
Erinevate allikate hinnangud jäävad vahemikku 12–30 miljonit inimest. Otsustas peatuda kell SlashData andmed, sest nende metoodika tundus üsna tasakaalukas ja minu vajadustele sobiv. Oma hinnangus võtsid nad arvesse Githubi kontode ja hoidlate arvu, StackOverflow kontode arvu, npm-kontosid ning ametlikest allikatest pärit andmeid USA ja Euroopa tööhõive kohta. Samuti korrigeerisid nad saadud numbreid, kasutades oma 16 uuringut, mis hõlmasid iga uuringu jaoks ligikaudu 20 000 inimest.

SlashData andmetel oli maailmas 2018. aasta neljandas kvartalis ligikaudu 18.9 miljonit arendajat, kellest 12.9 miljonit olid professionaalsed arendajad ehk elatuvad programmeerimisega. Need, kes ei ole hetkel professionaalsed arendajad, on inimesed, kellele programmeerimine on hobi, pluss need, kes õpivad hetkel eriala (erinevad õpilased ja iseõppijad). Noh, see tähendab, et siin on vihje mind huvitava grupi suurusele - 6 miljonit inimest. Ausalt öeldes on see rohkem, kui ma ootasin.

Teiseks üllatuseks oli minu jaoks programmeerijate arvu kasvutempo: 2017. aasta teisest kvartalist 2018. aasta IV kvartalini kasvas see 14.7-lt mainitud 18.9 miljonile ehk kasvas 21. aastal 2018%! Kui mul palutaks hinnata programmeerijate arvu kasvutempot, siis ma ütleksin, et see on umbes 5% aastas, kusjuures iga-aastane tempo on veidi tõusnud. Ja siin selgub, et see on koguni 20%.

Lisaks sellele prognoosib SlashData, et rahvaarv ulatub 2030. aastaks 45 miljonini. On lihtne aru saada, et see tähendab kasvu veidi rohkem kui 8% aastas, mitte 20%, kuid need viitavad kohandamisele, et võtta arvesse Interneti levikut (praegu umbes 57% kogu maailmas). Statistika järgi) ja mitmed muud tegurid, näiteks arendajate arv elaniku kohta. Geograafiliselt kasvab arendajate arv enim Indias ja Hiinas, India edestab 2023. aastaks arendajate arvult USA-d (see on juba C# nurga andmed).

Üldiselt on programmeerijaid palju, hoolimata sellest, kuidas seda vaadata, sest nõudlus kasvab. Muide, nõudluse kohta.

Mille järele on nõudlus?

Nõudluse hindamiseks kasutasin HackerRanki andmeid 2018 и 2019 aastal.

Programmeerimiskeelte osas on peaaegu kõigis tööstusharudes suurim nõudlus JavaScripti, Pythoni ja Java järele, välja arvatud arvutiriistvara. Viimases on suurim nõudlus C/C++ järele, mis on arusaadav, riistvaraprojektidel on endiselt nõuded ressursimahukuse ja vastava tarkvara jõudluse osas.

"Kus on noored punkarid, kes meid maa pealt pühivad?"

Raamistiku osas on suurima nõudlusega AngularJS, Node.js ja React ning neil on suurim lõhe pakkumise ja nõudluse vahel, mis näib olevat seletatav JavaScripti ökosüsteemi muutumise kiirusega, sest näiteks ExpressJS-i jaoks , pakkumine ületab juba nõudluse.

"Kus on noored punkarid, kes meid maa pealt pühivad?"

Pädevuste osas ootavad tööandjad kandidaatidelt eelkõige Probleemide lahendamise oskusi. Umbes 95% tööandjatest nimetab neid oskusi oluliseks. Programmeerimiskeele oskus on teisel kohal 56%. Muide, algoritmide, andmestruktuuride ja muu arvutiteaduse fundamentaalteadmistega pole üldse ridagi, kas seda küsimustikus polnud või pole akadeemilisi teadmisi enam suures plaanis vaja.

Andmebaasi disaini vajab 23.2% alla 100 inimesega ettevõtetest ja 18.8% üle 1000 inimesega ettevõtetest. Jah, tundub, et see puudutab ORM-i ja SQL-i! Loogiline, IMHO, seletus on see, et suurtes ettevõtetes on selle aspekti eest vastutavale DBA-le pühendatud roll ja seetõttu on võimalik arendajatele esitatavaid nõudeid pehmendada ja kiiremini tööle võtta. Süsteemikujundusega on aga vastupidi: 37.0% väikestes, 44.1% suurtes. Näib, et suurtel peaks olema pühendunud arhitektid, kuid võib-olla ei suuda nad lihtsalt katta loodavate süsteemide arvu. Või pannakse samad fundamentaalsed algoritmid ja andmestruktuurid ka System Designi, siis saab veidi selgemaks.

Väikeettevõtted vajavad Framework Proficiency’t rohkem ja vähem eelmainitud System Designi, millest saame teha kapteni järelduse, et startup’idel on oluline võimalikult kiiresti turule tuua kuidagi toimiv toode ja homme on homme.

"Kus on noored punkarid, kes meid maa pealt pühivad?"

Mida õpilased õpivad?

Siin tuginesin teise andmetele HackerRanki uuring.
Oluline on arvestada, et hoolimata sellest, et programmeerimist ühel või teisel kujul õpetatakse ülikoolides (pean silmas arvutiteaduse erialasid), vastas üle poole küsitletutest, et tegeleb ka eneseharimisega.

Kaasaegsed õpilased eelistavad õppida YouTube'ist, samas kui vanemad arendajad kalduvad õpetuste ja raamatute poole. Mõlemad kasutavad aktiivselt StackOverflow'd. Selle põhjuseks on asjaolu, et video on Z-põlvkonnale tuttav meediakanal, samas kui Y-generatsiooni esindajad on endiselt ajajärgul ilma ajaveebipidajateta.

Nad õpetavad seda, mida tööandjad nõuavad: JavaScript, Java, Python. Nad näitavad, et nad oskavad C/C++ keelt, kuid see on ilmselt tingitud sellest, et neid keeli kasutatakse ülikoolides õpetamiseks. Nad õpetavad JS-i raamistikke, kuid nõudlus on oluliselt suurem kui pakkumine, nii et ilmselt õpivad nad pärast oma esimese töökoha leidmist aktiivselt.

"Kus on noored punkarid, kes meid maa pealt pühivad?"

Üldiselt õpetavad nad ootuspäraselt seda, mida nõutakse.

Õpilased ootavad oma esimeselt töökohalt ametialast kasvu, töö- ja eraelu tasakaal on teisel kohal (mõnes riigis esikohal) ja kolmandal kohal huvitavad ülesanded.

Arendajate populatsiooni dünaamika programmeerimiskeelte ja tarkvaratüüpide järgi

"Kus on noored punkarid, kes meid maa pealt pühivad?"

Esikohal on veebirakendused hinnanguliselt 16.9 miljoni arendajaga. See on jälle SlashData. Järgmised on taustateenused (13.6 miljonit), mobiilirakendused (13.1 miljonit) ja töölauad (12.3 miljonit). AR/VR ja IoT sektorid koguvad järk-järgult populaarsust, AI/ML/Data Science on viimase kahe aasta jooksul oluliselt kasvanud.

Javascript kasvab kõige kiiremini; selle kogukond on juba praegu suurim, kasvades ainuüksi 2018. aastal 2.5 miljoni võrra. Nad isegi üritavad sellesse kirjutada IoT ja ML sektorites.
Python kasvas 2018. aastal 2.2 miljoni võrra nii tänu ML-i populaarsuse kasvule, kus see on traditsiooniliselt tugev, kui ka tänu keele õppimise lihtsusele ja mugavusele.

Java, C/C++ ja C# kasvavad aeglasemalt kui üldine arendajate populatsioon. Nüüd on need harva see programmeerimiskeel, millega inimesed alustavad. Siinne nõudlus arendajate järele on enam-vähem tasakaalus pakkumisega. Ma arvan, et Java oleks veelgi aeglasemalt kasvanud, kui mitte Androidi jaoks.

PHP on populaarsuselt teine ​​veebirakenduste programmeerimiskeel ja see kasvab samuti märkimisväärselt (32. aastal 2018%). Selle kogukonnas on hinnanguliselt 5.9 miljonit arendajat. Vaatamata PHP polariseerivale mainele on seda üsna lihtne õppida ja laialdaselt kasutatav.

Kuidas õpivad tänapäeva noored kandidaadid võrreldes eelmiste põlvkondadega?

Jälle HackerRanki andmed. Need, kes on praegu vanuses 38–53, loetlevad oma esimeste projektidena mänge.

Muide, kinnitan, et minu esimene enam-vähem töötav projekt oli “tik-tac-toe” kuni viis järjest piiramatu väljaga, teine ​​oli mäng 15. Kirjutasin selle kõik eKr 010-01, seal oli Vilniuse põhi, ehk BASIC-86 ja fokaalne. Eh.

Kaasaegsed algajad programmeerijad (kuni 21-aastased) kirjutavad oma esimeste projektidena kalkulaatoreid ja veebisaite.

X põlvkonna esindajatest hakkasid ligi pooled koodi kirjutama enne 16. eluaastat, paljud tegid seda 5–10 aasta vanuselt (peamiselt need, kes on praegu 35–45 aasta vanused). On enam-vähem selge, miks: teabeallikaid oli vähe ja programmeerijaks saamiseks pidi seda väga tahtma ja need, kes seda väga tahtsid, hakkasid programmeerima varakult. Neil, kes seda nii väga ei tahtnud, on nüüd tõenäoliselt teine ​​amet, nii et sotsioloogias on pilt täpselt selline.

"Kus on noored punkarid, kes meid maa pealt pühivad?"

Tänased noored kandidaadid vaid 20% juhtudest alustavad programmeerimist enne 16. eluaastat, enamus kuskil 16–20. Kuid neil on ka palju lihtsam õppida, nüüd on see palju kättesaadavam.

Järeldused

Ma ei ole ikka veel leidnud konkreetset vastust küsimusele, kas alustav veebitausta arendaja vajab täna SQL-i, kuid olen parandanud oma ettekujutust tänapäevasest programmeerijate populatsioonist.

Järgmise põlvkonna arendajad on tavalised inimesed, mõnes mõttes meenutavad nad eelmisi, eluasemeprobleem ainult rikkus neid. Need rahuldavad tööandjate tekitatud nõudlust. Erialale sisenemise lävi on muutunud madalamaks tänu mugavamatele tööriistadele ja raamistikele, mis võimaldavad kiiresti tulemusi saavutada. Nüüd on üha rohkem inimesi programmeerijaks, digitaalne põlvkond (Z-põlvkond) on tehnoloogia vallas elanud sünnist saati, nende jaoks on see tavaline elukutse, mitte halvem kui teistel.

Need, kes teavad, et L1 vahemälu latentsus on ~4 tsüklit ja vahemälu ridu on parem mitte asjatult kokkujooksda, on protsentuaalselt kogu populatsiooni suurusest vähenemas. Töö saamise pärast aga muretsema ei peaks, keegi peab ju madalatasemelisi asju kirjutama sinna, kuhu ikka vaja läheb. Samuti ei tasu muretseda need, kes omavad sügavaid fundamentaalseid teadmisi süsteemikujunduses ja omandasid need veristes praktilistes lahingutes ning ei järgi pelgalt kaubakultust. Kuna meeskondades on rohkem inimesi, kes oskavad "lihtsalt koodi kirjutada" ja "lihtsalt" raamistikke kasutada, ning selleks, et "vältida sihitult elatud aastate piinavat valu" (c) peavad neid tasakaalustama just sellised inimesed. .

Pehmed oskused rändavad järk-järgult soovitavatelt kohustuslikuks (mul puuduvad objektiivsed andmed selle kinnituseks, lihtsalt praktiline tähelepanek). Programmeerijate arv kasvab ja neid kõiki tuleb kas otsese või kaudse juhtimise kaudu tulemusteni suunata ja just selleks on vaja pehmeid oskusi.

“Enter IT” tundub mulle kohaliku regionaalse loona, mis on tüüpiline nendele asukohtadele, kus programmeerija sissetulek erineb oluliselt võrreldava “mitte-IT” spetsialisti sissetulekust. Minskis, kus ma elan, on see üldiselt massiliikumine, iga päev näen uute kursuste kuulutusi, kuidas pääseda ihaldatud IT-sse ja puhastusfirmad sihivad programmeerijaid sõnumiga “Kas te mõistate sellel pildil olevat koodi? See tähendab, et saate endale lubada oma korteri koristamata jätmist, me teeme kõik teie eest ära. Sama asi toimub ilmselt mõnes Indias. Mul pole ka andmeid selle tõestuseks.

Üldiselt ei ohusta minu arvates programmeerijate elanikkonda miski. Pole mõtet lobiseda selle üle, et te ei leia päeva jooksul tõelisi programmeerijaid ja kandidaadid ei tea sageli midagi. Nad on sama targad ja võimekad, võib-olla isegi targemad ja võimekamad kui "päris programmeerijad"; nad lihtsalt omandavad teadmise, mida kiiresti kasvav turg neilt nõuab ja lükkavad hilisemaks selle, mida nad pole veel vajanud ja mis ei too õiget kasu. nüüd. Nad õpivad, kui nad seda vajavad, sest nad tahavad ikkagi õppida. Tõenäoliselt ei saa kõik selleks võimelised, kuid kõigil pole seda ka vaja, nähtavas tulevikus võtab turg hõlpsasti vastu inimesi, kes suudavad mõnda raamistikku kasutades kiiresti kokku panna mõne muu rakenduse kontseptsiooni.

Küsitluses saavad osaleda ainult registreerunud kasutajad. Logi sissepalun.

Kas veebitaustaja intervjuud nõuavad SQL-i teadmisi?

  • Jah, ma nõuan seda, sest mul on seda tööks vaja

  • Jah, ma teen, kuigi seda läheb tööl harva vaja.

  • Ei, ma ei nõua seda, meil on NoSQL

  • Ei, ma ei nõua seda, ORM teeb kõik

320 kasutajat hääletas. 230 kasutajat jäi erapooletuks.

Allikas: www.habr.com

Lisa kommentaar