"Kde sú mladí pankáči, ktorí nás zničia z povrchu zemského?"

Existenčnú otázku uvedenú v názve Grebenshchikovovej formulácie som si položil po ďalšom kole diskusie v jednej z komunít o tom, či začínajúci web backend vývojár potrebuje znalosti SQL, alebo či tak či tak urobí všetko ORM. Rozhodol som sa hľadať odpoveď trochu širšie ako len o ORM a SQL a v podstate sa pokúsim systematizovať, kto sú ľudia, ktorí teraz chodia na pohovory na juniorské a stredné vývojové pozície, aká je ich história a v akom svete sa pohybujú žiť v. Vo všeobecnosti som mal názor, ale bol vytvorený osobnou skúsenosťou s náborom a jasne prispôsobený miestnemu trhu. Vo všeobecnosti sa to stalo zaujímavým. Tu je to, čo sme našli.

Globálna populácia vývojárov

Aby som sa k otázke nejako priblížil, rozhodol som sa začať hľadaním údajov o tom, koľko vývojárov je dnes na svete a ako sa táto populácia mení v čase.
Odhady v rôznych zdrojoch uvádzajú čísla v rozmedzí od 12 do 30 miliónov ľudí. Rozhodol sa zastaviť na údaje zo SlashData, pretože ich metodika sa mi zdala celkom vyvážená a vhodná pre moje potreby. Pri hodnotení brali do úvahy počet účtov a úložísk na Github, počet účtov na StackOverflow, npm účty a údaje z oficiálnych zdrojov o zamestnanosti v USA a Európe. Výsledné čísla upravili aj pomocou vlastných 16 štúdií, ktoré zahŕňali približne 20 000 ľudí v každom prieskume.

Podľa SlashData bolo vo svete v štvrtom štvrťroku 2018 približne 18.9 milióna vývojárov, z ktorých 12.9 milióna tvorili profesionálni vývojári, teda živili sa programovaním. Tí, ktorí momentálne nie sú profesionálnymi vývojármi, sú ľudia, pre ktorých je programovanie koníčkom, plus tí, ktorí momentálne študujú nejaké povolanie (rôzni študenti a samoukovia). To znamená, že tu je náznak veľkosti skupiny, ktorá ma zaujíma - 6 miliónov ľudí. Úprimne povedané, je to viac, ako som očakával.

Druhým prekvapením pre mňa bolo tempo rastu počtu programátorov: od druhého kvartálu 2017 do štvrtého kvartálu 2018 vzrástol zo 14.7 na spomínaných 18.9 milióna, respektíve v roku 21 vzrástol o 2018 %! Ak by som mal odhadnúť tempo rastu počtu programátorov, povedal by som, že je to asi 5% ročne s miernym nárastom miery ročne. A tu sa ukazuje, že je to až 20%.

Okrem toho SlashData odhaduje, že populácia dosiahne do roku 2030 45 miliónov. Je ľahké zistiť, že to znamená rast o niečo viac ako 8% ročne, nie 20%, ale ide o úpravu zohľadňujúcu penetráciu internetu (v súčasnosti asi 57% na celom svete). podľa Statista) a niekoľko ďalších faktorov, ako napríklad počet vývojárov na obyvateľa. Geograficky najviac rastie počet vývojárov v Indii a Číne, očakáva sa, že India do roku 2023 v počte vývojárov predbehne USA (to je už Údaje C# Corner).

Vo všeobecnosti bude veľa programátorov, bez ohľadu na to, ako sa na to pozeráte, pretože dopyt rastie. Mimochodom, o dopyte.

Čo je žiadané?

Na odhad dopytu som použil údaje HackerRank pre 2018 и 2019 rok.

Z hľadiska programovacích jazykov je najväčší dopyt po JavaScripte, Pythone a Jave takmer vo všetkých odvetviach, s výnimkou počítačového hardvéru. V druhom prípade je najväčší dopyt po C/C++, čo je pochopiteľné, hardvérové ​​projekty majú stále požiadavky na náročnosť zdrojov a výkon príslušného softvéru.

"Kde sú mladí pankáči, ktorí nás zničia z povrchu zemského?"

Pokiaľ ide o frameworky, AngularJS, Node.js a React sú najviac žiadané a majú najväčší rozdiel medzi ponukou a dopytom, čo sa zdá byť vysvetlené rýchlosťou, s akou sa mení ekosystém JavaScriptu, pretože napríklad pre ExpressJS , ponuka už prevyšuje dopyt.

"Kde sú mladí pankáči, ktorí nás zničia z povrchu zemského?"

Čo sa týka kompetencií, zamestnávatelia od kandidátov očakávajú predovšetkým zručnosti v riešení problémov. Asi 95 % zamestnávateľov uvádza tieto zručnosti ako dôležité. Znalosť programovacieho jazyka je na druhom mieste s 56 %. Mimochodom, so základnými znalosťami o algoritmoch, dátových štruktúrach a inej informatike vôbec nie je v súlade, buď to nebolo v dotazníku, alebo akademické znalosti už nie sú vo veľkom meradle potrebné.

Návrh databázy potrebuje 23.2 % spoločností do 100 ľudí a 18.8 % spoločností nad 1000 ľudí. Áno, zdá sa, že ide o ORM a SQL! Logickým, IMHO, vysvetlením je, že vo veľkých spoločnostiach je dedikovaná úloha DBA, ktorý je za tento aspekt zodpovedný, a preto je možné zjemniť požiadavky na vývojárov a najímať rýchlejšie. Ale s dizajnom systému je to naopak: 37.0 % v malých a 44.1 % vo veľkých. Zdalo by sa, že veľké by mali mať oddaných architektov, no možno jednoducho nedokážu pokryť množstvo generovaných systémov. Alebo sa do návrhu systému vložia rovnaké základné algoritmy a dátové štruktúry, potom je to trochu jasnejšie.

Malé firmy potrebujú Framework Proficiency viac a menej už spomínaný System Design, z ktorého môžeme vyvodiť kapitánov záver, že pre startupy je dôležité čo najrýchlejšie spustiť ako-tak fungujúci produkt a zajtra bude zajtra.

"Kde sú mladí pankáči, ktorí nás zničia z povrchu zemského?"

Čo sa študenti učia?

Tu som sa spoliehal na údaje od iného Prieskum HackerRank.
Je dôležité si uvedomiť, že napriek tomu, že sa programovanie v tej či onej forme vyučuje na univerzitách (mám na mysli odbory informatiky), viac ako polovica opýtaných uviedla, že sa venuje aj samovzdelávaniu.

Moderní študenti sa radšej učia z YouTube, zatiaľ čo starší vývojári sa prikláňajú k návodom a knihám. Obaja aktívne využívajú StackOverflow. Pripisujem to tomu, že video je pre generáciu Z známym mediálnym kanálom, zatiaľ čo predstavitelia generácie Y sú stále v dobe bez blogerov.

Učia to, čo je žiadané zamestnávateľmi: JavaScript, Java, Python. Uvádzajú, že ovládajú C/C++, ale je to pravdepodobne preto, že tieto jazyky sa používajú na výučbu na univerzitách. Učia JS frameworky, ale dopyt je výrazne vyšší ako ponuka, takže zrejme sa aktívne učia po tom, ako si nájdu svoju prvú prácu.

"Kde sú mladí pankáči, ktorí nás zničia z povrchu zemského?"

Vo všeobecnosti, ako sa očakávalo, učia to, čo je žiadané.

Študenti očakávajú od svojho prvého zamestnania profesionálny rast, na druhom mieste je rovnováha medzi pracovným a súkromným životom (v niektorých krajinách na prvom mieste) a zaujímavé úlohy na treťom mieste.

Dynamika populácie vývojárov podľa programovacích jazykov a typov softvéru

"Kde sú mladí pankáči, ktorí nás zničia z povrchu zemského?"

Webové aplikácie sú na prvom mieste s odhadovaným počtom 16.9 milióna vývojárov. Toto je opäť SlashData. Ďalej sú to Backend Services (13.6 milióna), mobilné aplikácie (13.1 milióna) a desktop (12.3 milióna). Sektory AR/VR a IoT si postupne získavajú na popularite, AI/ML/Data Science za posledné dva roky výrazne vzrástla.

Javascript rastie najrýchlejšie, jeho komunita je už teraz najväčšia, len v roku 2018 vzrástla o 2.5 milióna. Dokonca sa v ňom pokúšajú písať v sektoroch IoT a ML.
Python v roku 2018 vzrástol o 2.2 milióna vďaka rastúcej popularite jazyka ML, kde je tradične silný, ako aj vďaka jednoduchosti učenia a pohodlia jazyka.

Java, C/C++ a C# rastú pomalšie ako celková populácia vývojárov. Teraz sú len zriedka programovacím jazykom, s ktorým sa ľudia rozhodnú začať. Dopyt po developeroch je tu viac-menej vyrovnaný s ponukou. Myslím, že Java by rástla ešte pomalšie, keby nebolo Androidu.

PHP je druhý najpopulárnejší programovací jazyk webových aplikácií a tiež výrazne rastie (o 32 % v roku 2018). Jeho komunita sa odhaduje na 5.9 milióna vývojárov. Napriek polarizujúcej povesti PHP sa dá pomerne ľahko naučiť a široko sa používa.

Ako študujú dnešní mladí kandidáti v porovnaní s predchádzajúcimi generáciami?

HackerRank dáta znova. Tí, ktorí majú teraz medzi 38 a 53, uvádzajú hry ako svoje prvé projekty.

Mimochodom, potvrdzujem, že môj prvý viac-menej pracovný projekt bol „piškvorák“ až päť za sebou s neobmedzeným poľom, druhý bola hra 15. Toto všetko som napísal na BC 010-01, Tu bol Základné Vilnius, aka BASIC-86 a ohnisko. Eh

Moderní začínajúci programátori (do 21 rokov) píšu ako prvé projekty kalkulačky a webové stránky.

Spomedzi predstaviteľov generácie X takmer polovica začala písať kód pred dosiahnutím veku 16 rokov, mnohí tak robili od 5 do 10 rokov (hlavne tí, ktorí sú teraz vo veku 35 až 45 rokov). Je viac-menej jasné prečo: bolo málo zdrojov informácií a aby ste sa stali programátorom, museli ste to naozaj veľmi chcieť a tí, ktorí to naozaj chceli, začali programovať skoro. Tí, ktorí to tak veľmi nechceli, majú s najväčšou pravdepodobnosťou inú profesiu, takže obraz v sociológii je presne takýto.

"Kde sú mladí pankáči, ktorí nás zničia z povrchu zemského?"

Dnešní mladí kandidáti len 20 % času začínajú programovať pred dovŕšením 16. roku života, väčšina medzi 16. a 20. rokom života. Ale je pre nich tiež oveľa jednoduchšie učiť sa, teraz je to oveľa dostupnejšie.

Závery

Stále som nenašiel konkrétnu odpoveď na otázku, či dnes začínajúci web backend vývojár potrebuje SQL, ale poopravil som svoju predstavu o modernej populácii programátorov.

Ďalšia generácia developerov sú obyčajní ľudia, v niečom sa podobajú tým predchádzajúcim, problém s bývaním ich len pokazil. Uspokojujú dopyt, ktorý vytvárajú zamestnávatelia. Hranica pre vstup do profesie sa znížila vďaka pohodlnejším nástrojom a rámcom, ktoré vám umožňujú rýchlo dosahovať výsledky. Viac ľudí sa dnes stáva programátormi, digitálna generácia (generácia Z) žije v technológiách od narodenia, je to pre nich bežná profesia, o nič horšia ako ostatné.

Tí, ktorí vedia, že latencia vyrovnávacej pamäte L1 je ~ 4 cykly a že je lepšie zbytočne nezhadzovať linky vyrovnávacej pamäte, sa zmenšujú ako percento z celkovej veľkosti populácie. Nemali by si však robiť starosti so získaním práce, niekto predsa musí písať veci na nízkej úrovni tam, kde je to ešte potrebné. Rovnako tí, ktorí majú hlboké základné znalosti v oblasti navrhovania systémov a získali ich v krvavých praktických bitkách a nesledujú len kult nákladu, by sa nemali obávať. Pretože v tímoch bude viac ľudí, ktorí dokážu „len písať kód“ a „len“ používať frameworky, a aby sa „vyhli neznesiteľnej bolesti z rokov strávených bezcieľne prežitými“ (c) budú musieť byť vyvážení práve takýmito ľuďmi. .

Mäkké zručnosti postupne migrujú z kategórie žiaducich na povinné (nemám žiadne objektívne údaje, ktoré by to potvrdili, len praktické pozorovanie). Počet programátorov rastie a všetkých treba nasmerovať k dosiahnutiu výsledkov či už priamou alebo nepriamou kontrolou a práve na to sú potrebné mäkké zručnosti.

„Enter IT“ mi pripadá ako lokálny regionálny príbeh, typický pre tie lokality, kde sa príjem programátora výrazne líši od príjmu porovnateľného „ne-IT“ špecialistu. V Minsku, kde žijem, je to vo všeobecnosti masové hnutie, denne vidím reklamy na nové kurzy, ako sa dostať k vytúženému IT a upratovacie firmy cielia na programátorov s hláškou „Rozumiete kódu na tomto obrázku? To znamená, že si môžete dovoliť neupratovať svoj byt, my urobíme všetko za vás.“ To isté sa zrejme deje v nejakej Indii. Tiež nemám žiadne údaje, ktoré by to dokázali.

Vo všeobecnosti podľa mňa populáciu programátorov nič neohrozuje. Nemá zmysel bľabotať o tom, že cez deň nenájdete skutočných programátorov a že kandidáti veľmi často „nič nevedia“. Sú rovnako bystrí a schopní, možno ešte múdrejší a schopnejší ako „skutoční programátori“; jednoducho získajú vedomosti, ktoré od nich vyžaduje rýchlo rastúci trh, a odložia na neskôr to, čo ešte nepotrebujú a neprinesú úžitok. teraz. Naučia sa, keď budú potrebovať, pretože sa stále chcú učiť. Zrejme nie každý toho bude schopný, ale nie každý to bude ani potrebovať, trh v dohľadnej dobe bez problémov prijme ľudí, ktorí dokážu rýchlo zostaviť ďalší koncept aplikácie pomocou nejakého frameworku.

Do prieskumu sa môžu zapojiť iba registrovaní užívatelia. Prihlásiť saProsím.

Vyžadujú pohovory s webovým backenderom znalosti SQL?

  • Áno, vyžadujem to, pretože to potrebujem k práci

  • Áno, mám, aj keď je to v práci málokedy potrebné.

  • Nie, nevyžadujem to, máme NoSQL

  • Nie, nevyžadujem to, ORM urobí všetko

Hlasovalo 320 užívateľov. 230 užívateľov sa zdržalo hlasovania.

Zdroj: hab.com

Pridať komentár