“Gdje su mladi pankeri koji će nas izbrisati s lica zemlje?”

Postavio sam sebi egzistencijalno pitanje postavljeno u naslovu u Grebenščikovovoj formulaciji nakon još jedne runde diskusije u jednoj od zajednica o tome da li je početnicima web backend developeru potrebno SQL znanje ili će ORM ipak učiniti sve. Odlučio sam potražiti odgovor malo šire od samo ORM-a i SQL-a, i u osnovi pokušati sistematizirati ko su ljudi koji sada idu na intervjue za mlađe i srednje razvojne pozicije, kakva je njihova povijest i koji svijet imaju zivjeti u. Generalno, imao sam mišljenje, ali ono je formirano ličnim iskustvom zapošljavanja i jasno prilagođeno lokalnom tržištu. Generalno, postalo je zanimljivo. Evo šta smo pronašli.

Globalna populacija programera

Kako bih se nekako približio tom pitanju, odlučio sam započeti traženjem podataka o tome koliko programera danas ima u svijetu i kako se ta populacija mijenja s vremenom.
Procjene u različitim izvorima navode brojke u rasponu od 12 do 30 miliona ljudi. Odlučio da se zaustavim na podaci iz SlashData, jer se njihova metodologija činila prilično izbalansiranom i prikladnom za moje potrebe. U svojoj procjeni uzeli su u obzir broj naloga i spremišta na Githubu, broj naloga na StackOverflowu, npm račune i podatke iz zvaničnih izvora o zapošljavanju u SAD-u i Evropi. Također su prilagodili rezultirajuće brojeve koristeći svojih 16 studija, koje su uključivale otprilike 20 ljudi za svaku anketu.

Prema SlashData-u, u četvrtom kvartalu 2018. godine u svijetu je bilo oko 18.9 miliona programera, od kojih su 12.9 miliona bili profesionalni programeri, odnosno zarađuju za život od programiranja. Oni koji trenutno nisu profesionalni programeri su ljudi kojima je programiranje hobi, plus oni koji trenutno studiraju struku (razni studenti i samouki). Pa, to jest, evo nagoveštaja o veličini grupe koja me zanima - 6 miliona ljudi. Da budem iskren, ovo je više nego što sam očekivao.

Drugo iznenađenje za mene je bila stopa rasta broja programera: od drugog kvartala 2017. do četvrtog kvartala 2018. povećana je sa 14.7 na pomenutih 18.9 miliona, odnosno povećana za 21% u 2018! Kada bi me pitali da procijenim stopu rasta broja programera, rekao bih da je to oko 5% godišnje uz blagi porast stope na godišnjem nivou. A ovdje se ispostavlja da je čak 20%.

Pored toga, SlashData procjenjuje da će populacija dostići 2030 miliona do 45. godine. Lako je zaključiti da to podrazumijeva rast od nešto više od 8% godišnje, a ne 20%, ali se oni odnose na prilagođavanje kako bi se uračunala penetracija interneta (trenutno oko 57% širom svijeta). prema Statistici) i nekoliko drugih faktora, kao što je broj programera po glavi stanovnika. Geografski, broj programera najviše raste u Indiji, a očekuje se da će Indija prestići Sjedinjene Države po broju programera do 2023. godine (to je već C# Corner data).

Generalno, programera će biti puno, kako god gledali, jer potražnja raste. Usput, o potražnji.

Šta je traženo?

Za procjenu potražnje koristio sam HackerRank podatke za 2018 и 2019 godina.

Što se tiče programskih jezika, najveća potražnja je za JavaScript, Python i Java u gotovo svim industrijama, sa izuzetkom računarskog hardvera. U potonjem, najveća potražnja je za C/C++, što je razumljivo, hardverski projekti i dalje imaju zahtjeve za intenzitetom resursa i performansama odgovarajućeg softvera.

“Gdje su mladi pankeri koji će nas izbrisati s lica zemlje?”

Što se tiče okvira, najveću potražnju imaju AngularJS, Node.js i React, koji imaju najveći jaz između ponude i potražnje, što se čini da se objašnjava brzinom kojom se JavaScript ekosistem mijenja, jer na primjer za ExpressJS , ponuda već premašuje potražnju.

“Gdje su mladi pankeri koji će nas izbrisati s lica zemlje?”

U pogledu kompetencija, poslodavci od kandidata prvenstveno očekuju vještine rješavanja problema. Oko 95% poslodavaca navodi ove vještine kao važne. Poznavanje programskog jezika je na drugom mjestu sa 56%. Inače, nema nikakve linije sa osnovnim poznavanjem algoritama, struktura podataka i ostalih informatika, ili to nije bilo u upitniku, ili akademsko znanje više nije potrebno u velikom obimu.

Dizajn baze podataka je potreban 23.2% kompanija ispod 100 ljudi i 18.8% kompanija preko 1000 ljudi. Da, izgleda da se radi o ORM-u i SQL-u! Logično, IMHO, objašnjenje je da u velikim kompanijama postoji namjenska uloga DBA, koji je odgovoran za ovaj aspekt, pa je stoga moguće ublažiti zahtjeve programera i brže zapošljavati. Ali sa dizajnom sistema je obrnuto: 37.0% u malim, 44.1% u velikim. Čini se da bi velike trebale imati posvećene arhitekte, ali možda jednostavno nisu u stanju pokriti broj sistema koji se generiraju. Ili se isti fundamentalni algoritmi i strukture podataka stavljaju u sistemski dizajn, onda postaje malo jasnije.

Malim kompanijama je Framework Proficiency sve manje potreban gore spomenuti System Design, iz čega možemo izvući kapetanov zaključak da je startupima važno da što prije lansiraju nekako funkcionirajući proizvod, a sutra će to biti sutra.

“Gdje su mladi pankeri koji će nas izbrisati s lica zemlje?”

Šta učenici uče?

Ovdje sam se oslonio na podatke drugog HackerRank istraživanje.
Važno je uzeti u obzir da uprkos činjenici da se programiranje u ovom ili onom obliku predaje na univerzitetima (mislim na smjerove informatike), više od polovine ispitanih reklo je da se bavi i samoobrazovanjem.

Moderni studenti više vole da uče sa YouTube-a, dok stariji programeri naginju tutorijalima i knjigama. Obojica aktivno koriste StackOverflow. To pripisujem činjenici da je video poznat medijski kanal za generaciju Z, dok su predstavnici generacije Y još uvijek u eri bez blogera.

Oni podučavaju ono što poslodavci traže: JavaScript, Java, Python. Oni navode da znaju C/C++, ali to je vjerovatno zato što se ti jezici koriste za nastavu na univerzitetima. Oni podučavaju JS frameworke, ali potražnja je znatno veća od ponude, tako da očigledno aktivno uče nakon što pronađu svoj prvi posao.

“Gdje su mladi pankeri koji će nas izbrisati s lica zemlje?”

Općenito, očekivano, oni podučavaju ono što se traži.

Studenti očekuju profesionalni rast od svog prvog posla, na drugom mjestu je balans između poslovnog i privatnog života (u nekim zemljama prvi), a na trećem su zanimljivi zadaci.

Dinamika populacije programera prema programskim jezicima i tipovima softvera

“Gdje su mladi pankeri koji će nas izbrisati s lica zemlje?”

Web aplikacije su na prvom mjestu sa oko 16.9 miliona programera. Ovo je opet SlashData. Slede Backend Services (13.6 miliona), mobilne aplikacije (13.1 milion) i desktop (12.3 miliona). AR/VR i IoT sektori postepeno dobijaju na popularnosti, AI/ML/Data Science je značajno porasla u posljednje dvije godine.

Javascript raste najbrže, njegova zajednica je već najveća, samo u 2018. godini porasla je za 2.5 miliona. Čak pokušavaju da pišu u njemu u sektorima IoT i ML.
Python je porastao za 2018 miliona u 2.2. zbog rastuće popularnosti ML-a, gdje je tradicionalno jak, kao i zbog lakoće učenja i pogodnosti jezika.

Java, C/C++ i C# rastu sporije od ukupne populacije programera. Oni su sada retko programski jezik sa kojim se ljudi odlučuju za početak. Potražnja za programerima ovdje je manje-više izbalansirana sa ponudom. Mislim da bi Java rasla još sporije da nije Android.

PHP je drugi najpopularniji programski jezik za web aplikacije i takođe značajno raste (za 32% u 2018.). Njegova zajednica se procjenjuje na 5.9 miliona programera. Uprkos polarizovanoj reputaciji PHP-a, prilično je jednostavan za učenje i široko se koristi.

Kako studiraju današnji mladi kandidati u odnosu na prethodne generacije?

Opet HackerRank podaci. Oni koji sada imaju između 38 i 53 godine navode igre kao svoje prve projekte.

Inače, potvrđujem da je moj prvi manje-više radni projekat bio “tic-tac-toe” do pet u nizu sa neograničenim poljem, drugi je bila igra od 15. Sve sam ovo napisao na BC 010-01, bilo je Vilnius basic, aka BASIC-86 i focal. Eh.

Moderni programeri početnici (do 21 godine) pišu kalkulatore i web stranice kao svoje prve projekte.

Među predstavnicima generacije X, gotovo polovina je počela pisati kod prije 16. godine, mnogi su to činili od 5 do 10 godina (uglavnom oni koji sada imaju između 35 i 45 godina). Manje-više je jasno zašto: bilo je malo izvora informacija, a da biste postali programer, morali ste to jako htjeti, a oni koji su to zaista željeli počeli su rano programirati. Oni koji to nisu toliko hteli najverovatnije sada imaju drugačiju profesiju, pa je slika u sociologiji upravo ovakva.

“Gdje su mladi pankeri koji će nas izbrisati s lica zemlje?”

Današnji mladi kandidati samo u 20% vremena počinju programirati prije 16. godine, većina negdje između 16. i 20. godine. Ali i njima je mnogo lakše naučiti;

nalazi

Još uvijek nisam našao konkretan odgovor na pitanje da li je početnim web backend developerima potreban SQL danas, ali sam ispravio svoju ideju o modernoj populaciji programera.

Sljedeća generacija graditelja su obični ljudi, na neki način liče na prethodne; Oni zadovoljavaju potražnju koju stvaraju poslodavci. Prag za ulazak u profesiju postao je niži zbog praktičnijih alata i okvira koji vam omogućuju brzo postizanje rezultata. Sve više ljudi sada postaje programeri (Generacija Z) živi u tehnologiji od rođenja, za njih je to uobičajena profesija;

Oni koji znaju da je latencija keš memorije L1 ~4 ciklusa i da je bolje ne rušiti keš linije nepotrebno, postaju sve manji kao postotak ukupne veličine populacije. Međutim, oni ne bi trebali brinuti o tome da će neko, na kraju krajeva, pisati niske stvari tamo gdje je to još potrebno. Isto tako, oni koji imaju duboko temeljno znanje o dizajnu sistema i stekli ga u krvavim praktičnim bitkama, a ne slijede samo cargo kult, ne bi trebali brinuti. Zato što će u timovima biti više ljudi koji mogu “samo pisati kod” i “samo” koristiti okvire, a kako bi se “izbjegao neopisivi bol besciljno proživljenih godina” (c) morat će ih balansirati upravo takvi ljudi .

Soft skills postepeno migriraju iz kategorije poželjnih u obavezne (nemam objektivnih podataka koji bi to potvrdili, samo praktična opservacija). Broj programera raste i sve ih je potrebno usmjeravati na postizanje rezultata, bilo direktnom ili indirektnom kontrolom, a upravo za to su potrebne soft skills.

“Ulazak u IT” mi se čini kao lokalna regionalna priča, tipična za one lokacije gdje se prihod programera značajno razlikuje od prihoda uporedivog “ne-IT” stručnjaka. U Minsku, gdje živim, ovo je uglavnom masovni pokret, svaki dan vidim reklame za nove kurseve o tome kako ući u željeni IT, a kompanije za čišćenje ciljaju programere s porukom „Razumijete li kod na ovoj slici? To znači da možete sebi priuštiti da ne čistite svoj stan, mi ćemo učiniti sve za vas.” Ista stvar se očigledno dešava u nekoj Indiji. Takođe nemam podataka koji bi to dokazali.

Generalno, po mom mišljenju, ništa ne prijeti populaciji programera. Nema smisla brbljati o tome da ne možete naći prave programere tokom dana i da kandidati vrlo često „ništa ne znaju“. Oni su jednako pametni i sposobni, možda čak i pametniji i sposobniji od „pravih programera“ jednostavno stiču znanje koje od njih zahtijeva brzo rastuće tržište i odlažu za kasnije ono što im još nije potrebno i neće donijeti dobrobit; sad. Oni će učiti kada zatreba, jer i dalje žele da uče. Vjerovatno neće svi biti sposobni za to, ali neće svima trebati u dogledno vrijeme, tržište će lako prihvatiti ljude koji mogu brzo sastaviti drugi koncept aplikacije koristeći neki okvir;

Samo registrovani korisnici mogu učestvovati u anketi. Prijavite semolim.

Da li web backender intervjui zahtijevaju SQL znanje?

  • Da, zahtijevam jer mi treba za posao

  • Da, imam, iako je to rijetko potrebno na poslu.

  • Ne, ne treba mi, imamo NoSQL

  • Ne, ne treba mi, ORM će učiniti sve

Glasalo je 320 korisnika. Uzdržano je bilo 230 korisnika.

izvor: www.habr.com

Dodajte komentar