"Kje so mladi pankerji, ki nas bodo izbrisali z obličja zemlje?"

Po drugem krogu razprave v eni od skupnosti o tem, ali začetni razvijalec spletnega zaledja potrebuje znanje SQL, ali bo ORM vseeno naredil vse, sem si zastavil eksistencialno vprašanje, ki je bilo postavljeno v naslov Grebenščikove formulacije. Odločil sem se, da bom odgovor poiskal malo širše kot le o ORM in SQL, in v bistvu poskusil sistematizirati, kdo so ljudje, ki zdaj hodijo na razgovore za junior in midlevel development položaje, kakšna je njihova zgodovina in kakšen svet imajo. živeti v. Na splošno sem imel svoje mnenje, ki pa je bilo oblikovano na podlagi osebnih izkušenj pri zaposlovanju in jasno prilagojeno lokalnemu trgu. Na splošno je postalo zanimivo. Evo, kaj smo našli.

Globalna populacija razvijalcev

Da bi se nekako približal vprašanju, sem se odločil za začetek poiskati podatke o tem, koliko razvijalcev je danes na svetu in kako se ta populacija spreminja skozi čas.
Ocene v različnih virih se gibljejo med 12 in 30 milijoni ljudi. Odločil se ustaviti pri podatki iz SlashData, ker se je njihova metodologija zdela precej uravnotežena in primerna za moje potrebe. Pri oceni so upoštevali število računov in repozitorijev na Githubu, število računov na StackOverflow, npm račune ter podatke iz uradnih virov o zaposlovanju v ZDA in Evropi. Dobljene številke so prilagodili tudi z lastnimi 16 študijami, ki so za vsako raziskavo vključevale približno 20 ljudi.

Po podatkih SlashData je bilo v četrtem četrtletju 2018 na svetu približno 18.9 milijona razvijalcev, od tega 12.9 milijona profesionalnih razvijalcev, torej se preživljajo s programiranjem. Tisti, ki trenutno niso profesionalni razvijalci, so ljudje, ki jim je programiranje hobi, ter tisti, ki trenutno študirajo poklic (razni študenti in samouki). No, to je, tukaj je namig o velikosti skupine, ki me zanima - 6 milijonov ljudi. Če sem iskren, je to več, kot sem pričakoval.

Drugo presenečenje zame je bila stopnja rasti števila programerjev: od drugega četrtletja 2017 do četrtega četrtletja 2018 se je povečalo s 14.7 na omenjenih 18.9 milijona oziroma se je v letu 21 povečalo za 2018 %! Če bi me vprašali za oceno stopnje rasti števila programerjev, bi rekel, da je približno 5% na leto z rahlim povečanjem stopnje letno. In tukaj se izkaže, da je kar 20%.

Poleg tega SlashData ocenjuje, da bo prebivalstvo do leta 2030 doseglo 45 milijonov. Zlahka je ugotoviti, da to pomeni rast nekaj več kot 8 % letno, ne 20 %, vendar se nanašajo na prilagoditev za upoštevanje prodora interneta (trenutno približno 57 % po vsem svetu). po podatkih Statista) in več drugih dejavnikov, kot je število razvijalcev na prebivalca. Geografsko gledano število razvijalcev najmočneje raste v Indiji in na Kitajskem, Indija naj bi po številu razvijalcev do leta 2023 prehitela ZDA (to je že Kotni podatki C#).

Sploh programerjev bo veliko, kakorkoli že pogledaš, saj povpraševanje raste. Mimogrede, o povpraševanju.

Kaj je povpraševanje?

Za oceno povpraševanja sem uporabil podatke HackerRank za 2018 и 2019 leto.

Pri programskih jezikih je največje povpraševanje po JavaScriptu, Pythonu in Javi v skoraj vseh panogah z izjemo računalniške strojne opreme. Pri slednjem je največje povpraševanje po C/C++, kar je razumljivo, strojni projekti še vedno postavljajo zahteve po intenzivnosti virov in zmogljivosti ustrezne programske opreme.

"Kje so mladi pankerji, ki nas bodo izbrisali z obličja zemlje?"

Kar zadeva ogrodja, je največje povpraševanje po AngularJS, Node.js in React, ki imajo tudi največji razkorak med ponudbo in povpraševanjem, kar je verjetno razloženo s hitrostjo spreminjanja ekosistema JavaScript, ker npr. ponudba že presega povpraševanje.

"Kje so mladi pankerji, ki nas bodo izbrisali z obličja zemlje?"

Kar zadeva kompetence, delodajalci od kandidatov pričakujejo predvsem sposobnosti reševanja problemov. Približno 95 % delodajalcev te veščine omenja kot pomembne. Znanje programskega jezika je na drugem mestu s 56 %. Mimogrede, sploh ni vrstice s temeljnim znanjem algoritmov, podatkovnih struktur in drugega računalništva, bodisi ni bilo v vprašalniku bodisi akademsko znanje ni več potrebno v velikem obsegu.

Oblikovanje baze podatkov potrebuje 23.2 % podjetij z manj kot 100 ljudmi in 18.8 % podjetij z več kot 1000 ljudmi. Ja, izgleda, da gre za ORM in SQL! Logična, IMHO, razlaga je, da je v velikih podjetjih namenska vloga DBA, ki je odgovoren za ta vidik, zato je mogoče omiliti zahteve za razvijalce in hitreje zaposlovati. Toda pri sistemskem oblikovanju je ravno obratno: 37.0 % pri majhnih, 44.1 % pri velikih. Zdi se, da bi morali veliki imeti namenske arhitekte, a morda preprosto ne zmorejo pokriti števila ustvarjenih sistemov. Ali pa se isti temeljni algoritmi in podatkovne strukture vnesejo v System Design, potem postane nekoliko jasnejše.

Mala podjetja bolj potrebujejo Framework Proficiency in manj prej omenjeno System Design, iz česar lahko potegnemo kapitanov zaključek, da je za startupe pomembno, da čim hitreje lansirajo nekako delujoč izdelek in jutri bo jutri.

"Kje so mladi pankerji, ki nas bodo izbrisali z obličja zemlje?"

Kaj se učenci naučijo?

Tukaj sem se zanašal na podatke drugega Raziskava HackerRank.
Pomembno je upoštevati, da kljub temu, da se programiranje v takšni ali drugačni obliki poučuje na univerzah (mislim na smeri Računalništvo), več kot polovica anketiranih pravi, da se tudi samoizobražuje.

Sodobni študentje se raje učijo od YouTuba, medtem ko se starejši razvijalci nagibajo k vajam in knjigam. Oba aktivno uporabljata StackOverflow. To pripisujem dejstvu, da je video poznan medijski kanal generacije Z, medtem ko so predstavniki generacije Y še vedno v dobi brez blogerjev.

Učijo tisto, kar delodajalci povprašujejo: JavaScript, Java, Python. Navajajo, da poznajo C/C++, vendar je to verjetno zato, ker se ti jeziki uporabljajo za poučevanje na univerzah. Učijo ogrodja JS, vendar je povpraševanje bistveno večje od ponudbe, tako da se očitno po prvi zaposlitvi aktivno učijo.

"Kje so mladi pankerji, ki nas bodo izbrisali z obličja zemlje?"

Na splošno po pričakovanjih poučujejo tisto, kar je povpraševanje.

Študenti od prve zaposlitve pričakujejo poklicno rast, ravnotežje med poklicnim in zasebnim življenjem je na drugem mestu (v nekaterih državah na prvem), zanimive naloge pa na tretjem mestu.

Dinamika populacije razvijalcev glede na programske jezike in vrste programske opreme

"Kje so mladi pankerji, ki nas bodo izbrisali z obličja zemlje?"

Na prvem mestu so spletne aplikacije z ocenjenimi 16.9 milijoni razvijalcev. To je spet SlashData. Sledijo zaledne storitve (13.6 milijona), mobilne aplikacije (13.1 milijona) in namizne (12.3 milijona). Sektorji AR/VR in IoT postopoma pridobivajo na priljubljenosti, AI/ML/Data Science se je v zadnjih dveh letih znatno povečal.

Javascript raste najhitreje; njegova skupnost je že zdaj največja, samo v letu 2018 se je povečala za 2.5 milijona. Vanj poskušajo pisati celo v sektorjih IoT in ML.
Python je v letu 2018 zrasel za 2.2 milijona zaradi vse večje priljubljenosti ML, kjer je tradicionalno močan, pa tudi zaradi enostavnosti učenja in priročnosti jezika.

Java, C/C++ in C# rastejo počasneje kot splošna populacija razvijalcev. Zdaj so redko tisti programski jezik, s katerim se ljudje odločijo za začetek. Povpraševanje po razvijalcih je pri nas bolj ali manj uravnoteženo s ponudbo. Mislim, da bi Java rasla še počasneje, če ne bi bilo Androida.

PHP je drugi najbolj priljubljen programski jezik za spletne aplikacije in tudi močno raste (za 32 % v 2018). Njegova skupnost je ocenjena na 5.9 milijona razvijalcev. Kljub polarizirajočemu slovesu PHP-ja se ga je zelo enostavno naučiti in široko uporabljati.

Kako poteka študij današnjih mladih kandidatov v primerjavi s prejšnjimi generacijami?

Spet podatki HackerRank. Tisti, ki so zdaj med 38 in 53 leti, kot prve projekte navajajo igre.

Mimogrede potrjujem, da je bil moj prvi bolj ali manj delujoč projekt "tik-tak" do pet v vrsto z neomejenim poljem, drugi je bila igra 15. Vse to sem napisal na BC 010-01, tam je bilo Vilna osnovna, znan kot BASIC-86 in focal. Eh.

Sodobni programerji začetniki (stari do 21 let) pišejo kalkulatorje in spletne strani kot svoje prve projekte.

Med predstavniki generacije X jih je skoraj polovica začela pisati kodo pred 16. letom, mnogi so to počeli od 5. do 10. leta (predvsem tisti, ki so danes stari med 35 in 45 let). Bolj ali manj je jasno, zakaj: virov informacij je bilo malo in da si postal programer, si je moral to res močno želeti, in tisti, ki so to res želeli, so začeli programirati zgodaj. Tisti, ki si tega niso tako zelo želeli, imajo zdaj najverjetneje drug poklic, zato je slika v sociologiji točno takšna.

"Kje so mladi pankerji, ki nas bodo izbrisali z obličja zemlje?"

Današnji mladi kandidati šele v 20% primerov začnejo programirati pred 16. letom, večina nekje med 16. in 20. letom. Vendar se tudi veliko lažje učijo, zdaj je veliko bolj dostopno.

Ugotovitve

Še vedno nisem našel konkretnega odgovora na vprašanje, ali začetni spletni backend razvijalec danes potrebuje SQL, vendar sem popravil svojo predstavo o sodobni populaciji programerjev.

Naslednja generacija razvijalcev so navadni ljudje, na nek način so podobni prejšnjim, stanovanjski problem jih je le pokvaril. Zadovoljujejo povpraševanje, ki ga ustvarjajo delodajalci. Prag za vstop v poklic je postal nižji zaradi bolj priročnih orodij in okvirov, ki vam omogočajo hitro doseganje rezultatov. Vse več ljudi postaja programerji, digitalna generacija (generacija Z) že od rojstva živi v tehnologiji, zanjo je to običajen poklic, nič slabši od drugih.

Tisti, ki vedo, da je zakasnitev predpomnilnika L1 približno 4 cikle in da je bolje, da ne zrušite vrstic predpomnilnika po nepotrebnem, postajajo manjši kot odstotek skupne velikosti populacije. Za zaposlitev pa naj jih ne skrbi, saj mora nekdo navsezadnje pisati nizkotne stvari tam, kjer je še treba. Prav tako naj ne skrbijo tisti, ki imajo globoko temeljno znanje o načrtovanju sistemov in so ga pridobili v krvavih praktičnih bitkah in ne sledijo zgolj kultu tovora. Ker bo v ekipah več ljudi, ki znajo »samo pisati kodo« in »samo« uporabljati okvire, in da bi se »izognili neznosni bolečini brezciljno preživetih let« (c), bodo morali biti uravnoteženi s prav takimi ljudmi .

Mehke veščine se postopoma selijo iz kategorije zaželenih v obvezne (nimam objektivnih podatkov, ki bi to potrdili, le praktično opazovanje). Število programerjev narašča in vse jih je treba usmerjati v doseganje rezultatov, bodisi z neposrednim ali posrednim nadzorom, in ravno za to so potrebne mehke veščine.

»Vstop v IT« se mi zdi lokalna regionalna zgodba, značilna za tiste kraje, kjer se dohodek programerja bistveno razlikuje od dohodka primerljivega »neinformatorja«. V Minsku, kjer živim, je to na splošno množično gibanje, vsak dan vidim oglase za nove tečaje o tem, kako priti v želeni IT, čistilna podjetja pa ciljajo na programerje s sporočilom »Ali razumete kodo na tej sliki? To pomeni, da si lahko privoščite, da stanovanja ne pospravite, vse bomo naredili namesto vas.” Enako se očitno dogaja v neki Indiji. Tudi nimam podatkov, ki bi to dokazovali.

Na splošno po mojem mnenju nič ne ogroža populacije programerjev. Nima smisla blebetati o tem, da čez dan ne najdeš pravih programerjev in da kandidati pogosto "nič ne vedo". So prav tako pametni in sposobni, morda celo pametnejši in sposobnejši od »pravih programerjev«, preprosto pridobijo znanje, ki ga od njih zahteva hitro rastoči trg, in odložijo na pozneje tisto, česar še niso potrebovali in jim ne bo prav koristilo. zdaj. Naučili se bodo, ko bo treba, saj se še vedno želijo učiti. Verjetno tega ne bo zmogel vsak, a tudi ne bo vsakdo potreboval, v doglednem času bo trg zlahka sprejel ljudi, ki bodo z nekim ogrodjem hitro sestavili drug koncept aplikacije.

V anketi lahko sodelujejo samo registrirani uporabniki. Prijaviti se, prosim.

Ali intervjuji s spletnimi podporniki zahtevajo znanje SQL?

  • Ja, zahtevam, ker ga potrebujem za delo

  • Da, vem, čeprav je to redko potrebno v službi.

  • Ne, ne potrebujem ga, imamo NoSQL

  • Ne, ne potrebujem ga, ORM bo naredil vse

Glasovalo je 320 uporabnikov. 230 uporabnikov se je vzdržalo.

Vir: www.habr.com

Dodaj komentar