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

Postavio sam si egzistencijalno pitanje stavljeno u naslov Grebenshchikovljeve formulacije nakon još jednog kruga rasprave u jednoj od zajednica o tome treba li početnik web backend developer znanje SQL-a ili će ORM svejedno učiniti sve. Odlučio sam potražiti odgovor malo šire nego samo o ORM-u i SQL-u, te u biti pokušati sistematizirati tko su ljudi koji sada idu na razgovore za junior i mid-level development pozicije, koja je njihova povijest i kakav je svijet živjeti u. Općenito, imao sam svoje mišljenje, ali ono je nastalo osobnim iskustvom zapošljavanja i jasno prilagođeno lokalnom tržištu. Općenito, postalo je zanimljivo. Evo što smo pronašli.

Globalna populacija programera

Kako bih nekako pristupio pitanju, odlučio sam za početak potražiti podatke o tome koliko programera danas ima u svijetu i kako se ta populacija mijenja kroz vrijeme.
Procjene u različitim izvorima govore o brojevima od 12 do 30 milijuna ljudi. Odlučio se zaustaviti na podaci iz SlashData, jer se njihova metodologija činila prilično uravnoteženom i prikladnom za moje potrebe. U procjeni su uzeli u obzir broj računa i repozitorija na Githubu, broj računa na StackOverflowu, npm račune te podatke iz službenih izvora o zapošljavanju u SAD-u i Europi. Također su prilagodili dobivene brojke pomoću vlastitih 16 studija, koje su uključivale približno 20 ljudi za svaku anketu.

Prema podacima SlashData, u četvrtom tromjesečju 2018. godine u svijetu je bilo oko 18.9 milijuna programera, od kojih su 12.9 milijuna bili profesionalni programeri, odnosno žive 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 naznake veličine grupe koja me zanima - 6 milijuna 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. porastao je sa 14.7 na spomenutih 18.9 milijuna, odnosno za 21% u 2018. godini! Kada bi se mene pitalo za procjenu stope rasta broja programera, rekao bih da je ona oko 5% godišnje s blagim povećanjem stope godišnje. A ovdje ispada čak 20%.

Dodatno, SlashData procjenjuje da će populacija dosegnuti 2030 milijuna do 45. godine. Lako je shvatiti da to implicira rast od nešto više od 8% godišnje, a ne 20%, ali oni se odnose na prilagodbu za penetraciju interneta (trenutačno oko 57% u cijelom svijetu). prema Statisti) i nekoliko drugih čimbenika, kao što je broj programera po glavi stanovnika. Geografski, broj programera najviše raste u Indiji i Kini; očekuje se da će Indija prestići Sjedinjene Države po broju programera do 2023. (to je već C# kutni podaci).

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

Što je traženo?

Za procjenu potražnje koristio sam podatke HackerRank-a 2018 и 2019 godine.

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

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

Što se tiče okvira, najveća je potražnja za AngularJS, Node.js i React, te imaju najveći jaz između ponude i potražnje, što se čini objašnjava brzinom kojom se ekosustav JavaScripta mijenja, jer npr. za ExpressJS , ponuda već premašuje potražnju.

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

Što se tiče kompetencija, poslodavci od kandidata prije svega očekuju vještine rješavanja problema. Oko 95% poslodavaca navodi ove vještine kao važne. Poznavanje programskog jezika je na drugom mjestu s 56%. Usput, uopće nema linije s temeljnim poznavanjem algoritama, struktura podataka i drugih računalnih znanosti, ili nije bilo u upitniku, ili akademsko znanje više nije potrebno u velikoj mjeri.

Dizajn baze podataka treba 23.2% tvrtki ispod 100 ljudi i 18.8% tvrtki s više od 1000 ljudi. Da, izgleda da se radi o ORM-u i SQL-u! Logično, IMHO, objašnjenje je da u velikim tvrtkama postoji posvećena uloga DBA, koji je odgovoran za ovaj aspekt, pa je stoga moguće ublažiti zahtjeve za programere i brže zapošljavati. Ali kod System Designa je obrnuto: 37.0% u malim, 44.1% u velikim. Čini se da bi veliki trebali imati posvećene arhitekte, ali možda oni jednostavno nisu u stanju pokriti broj sustava koji se generiraju. Ili se isti temeljni algoritmi i strukture podataka stavljaju u dizajn sustava, tada postaje malo jasnije.

Malim tvrtkama više treba Framework Proficiency, a manje spomenuti System Design, iz čega možemo izvući kapetanov zaključak da je startupima važno lansirati proizvod koji funkcionira što je brže moguće, a sutra će biti sutra.

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

Što učenici uče?

Ovdje sam se oslonio na podatke od drugog HackerRank istraživanje.
Važno je uzeti u obzir da unatoč činjenici da se programiranje u ovom ili onom obliku uči na sveučilištima (mislim na smjerove Računarstva), više od polovice ispitanih reklo je da se također bavi samoobrazovanjem.

Moderni studenti više vole učiti s YouTubea, dok stariji programeri naginju udžbenicima i knjigama. Obojica aktivno koriste StackOverflow. To pripisujem činjenici da je video poznati 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 pokazuju da znaju C/C++, ali to je vjerojatno zato što se ti jezici koriste za nastavu na sveučilištima. Podučavaju JS frameworke, no potražnja je znatno veća od ponude, pa očito aktivno uče nakon pronalaska prvog posla.

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

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

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

Dinamika populacije programera prema programskim jezicima i vrstama softvera

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

Web aplikacije su na prvom mjestu s procijenjenih 16.9 milijuna programera. Ovo je opet SlashData. Slijede Backend usluge (13.6 milijuna), mobilne aplikacije (13.1 milijun) i desktop (12.3 milijuna). AR/VR i IoT sektori postupno dobivaju na popularnosti, AI/ML/Data Science značajno su porasli u posljednje dvije godine.

Javascript najbrže raste; njegova je zajednica već sada najveća, porasla je za 2018 milijuna samo u 2.5. godini. Čak pokušavaju pisati u njemu u sektorima IoT i ML.
Python je porastao za 2018 milijuna u 2.2. zahvaljujući sve većoj popularnosti ML-a, gdje je tradicionalno jak, kao i zbog lakoće učenja i praktičnosti jezika.

Java, C/C++ i C# rastu sporije od ukupne populacije programera. Oni su sada rijetko programski jezik s kojim ljudi odlučuju započeti. Potražnja za programerima ovdje je više-manje uravnotežena s ponudom. Mislim da bi Java rasla još sporije da nije bilo Androida.

PHP je drugi najpopularniji programski jezik za web aplikacije i također značajno raste (za 32% u 2018.). Njegova se zajednica procjenjuje na 5.9 milijuna programera. Unatoč polarizirajućoj reputaciji PHP-a, prilično ga je lako naučiti i široko se koristi.

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

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

Usput, potvrđujem da je moj prvi koliko-toliko radni projekt bio “tic-tac-toe” do pet u nizu s neograničenim poljem, drugi je bila igra 15. Sve sam ovo napisao na prije Krista 010-01, bilo je Vilnius osnovni, 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 polovica je počela pisati kod prije 16. godine, mnogi su to učinili s 5 do 10 godina (uglavnom oni koji sada imaju između 35 i 45 godina). Više-manje je jasno zašto: bilo je malo izvora informacija, a da biste postali programer morali ste to jako željeti, a oni koji su to željeli rano su počeli programirati. Oni koji to nisu toliko željeli najvjerojatnije sada imaju drugu struku, pa je slika u sociologiji upravo takva.

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

Današnji mladi kandidati samo 20% vremena počnu programirati prije 16. godine, većina negdje između 16. i 20. godine. No, također im je puno lakše učiti; sada im je puno dostupnije.

Zaključci

Još uvijek nisam pronašao konkretan odgovor na pitanje treba li početnom web backend developeru danas SQL, ali sam korigirao svoju predodžbu o modernoj populaciji programera.

Sljedeća generacija programera su obični ljudi, na neki način nalikuju prethodnima, stambeni problem ih je samo razmazio. 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 programer; digitalna generacija (Generacija Z) od rođenja živi u tehnologiji; za njih je to uobičajena profesija, ništa lošija od drugih.

Oni koji znaju da je latencija predmemorije L1 ~4 ciklusa i da je bolje ne rušiti linije predmemorije bez potrebe, postaju sve manji kao postotak ukupne veličine populacije. No, ne bi se trebali brinuti oko dobivanja posla, netko, ipak, mora pisati prizemne stvari tamo gdje još treba. Isto tako, oni koji imaju duboko temeljno znanje o dizajnu sustava i stekli su ga u krvavim praktičnim borbama, a ne slijede samo kargo kult, ne trebaju brinuti. Zato što će u timovima biti više ljudi koji mogu "samo pisati kod" i "samo" koristiti okvire, a kako bi "izbjegli nesnošljivu bol besciljno proživljenih godina" (c) morat će ih uravnotežiti upravo takvi ljudi .

Meke vještine postupno migriraju iz kategorije poželjnih u obvezne (nemam objektivnih podataka koji bi to potvrdili, samo praktična opažanja). Broj programera raste i sve ih treba usmjeravati na postizanje rezultata, bilo kroz izravnu ili neizravnu kontrolu, a upravo su za to potrebne soft skills.

“Enter IT” mi se čini kao lokalna regionalna priča, tipična za one krajeve gdje se primanja programera bitno razlikuju od primanja usporedivog “ne-IT” stručnjaka. U Minsku, gdje živim, ovo je općenito masovni pokret, svaki dan vidim reklame za nove tečajeve o tome kako ući u željeni IT, a tvrtke za čišćenje ciljaju programere s porukom “Razumijete li kod na ovoj slici? To znači da si možete priuštiti da ne čistite svoj stan, mi ćemo učiniti sve za vas.” Ista stvar se očito događa u nekoj Indiji. Također nemam podataka koji bi to dokazali.

Općenito, po mom mišljenju, ništa ne prijeti populaciji programera. Nema smisla brbljati o tome da preko dana ne možete pronaći prave programere i da kandidati vrlo često “ne znaju ništa”. Oni su jednako pametni i sposobni, možda i pametniji i sposobniji od “pravih programera”; oni jednostavno steknu 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 pravu korist. sada. Naučit će kad treba, jer još žele učiti. Vjerojatno neće svatko to moći, ali neće svima ni trebati, tržište će u dogledno vrijeme lako prihvatiti ljude koji mogu brzo složiti neki drugi koncept aplikacije koristeći neki framework.

U anketi mogu sudjelovati samo registrirani korisnici. Prijaviti se, molim.

Zahtijevaju li intervjui s web backenderom poznavanje SQL-a?

  • 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

Glasovalo je 320 korisnika. Suzdržano je bilo 230 korisnika.

Izvor: www.habr.com

Dodajte komentar