"Waar is die jong punks wat ons van die aarde sal afvee?"

Ek het myself die eksistensiële vraag wat in die titel in Grebenshchikov se formulering gestel is, gevra na nog 'n rondte van bespreking in een van die gemeenskappe oor of 'n begin-web backend-ontwikkelaar SQL-kennis nodig het, en of ORM in elk geval alles sal doen. Ek het besluit om die antwoord 'n bietjie wyer te soek as net oor ORM en SQL, en basies te probeer sistematiseer wie die mense is wat nou vir onderhoude vir junior- en middelvlakontwikkelingsposte gaan, wat hul geskiedenis is en watter wêreld hulle bly in. Oor die algemeen het ek 'n mening gehad, maar dit is gevorm deur persoonlike aanstellingservaring en duidelik aangepas by die plaaslike mark. Oor die algemeen het dit interessant geword. Hier is wat ons gevind het.

Globale ontwikkelaarbevolking

Om op een of ander manier die vraag te benader, het ek besluit om te begin deur data te soek oor hoeveel ontwikkelaars daar vandag in die wêreld is en hoe hierdie bevolking met verloop van tyd verander.
Ramings in verskeie bronne stel die getalle in die reeks van 12 tot 30 miljoen mense. Besluit om te stop by data van SlashData, want hul metodologie het redelik gebalanseerd gelyk en geskik vir my behoeftes. In hul beoordeling het hulle die aantal rekeninge en bewaarplekke op Github, die aantal rekeninge op StackOverflow, npm-rekeninge en data van amptelike bronne oor indiensneming in die VSA en Europa in ag geneem. Hulle het ook die gevolglike getalle aangepas deur hul eie 16 studies te gebruik, wat ongeveer 20 000 mense vir elke opname ingesluit het.

Volgens SlashData was daar in die vierde kwartaal van 2018 ongeveer 18.9 miljoen ontwikkelaars in die wêreld, van wie 12.9 miljoen professionele ontwikkelaars was, dit wil sê hulle maak 'n lewe van programmering. Diegene wat nie tans professionele ontwikkelaars is nie, is mense vir wie programmering 'n stokperdjie is, plus diegene wat tans 'n beroep studeer (verskeie studente en selfonderrig). Wel, dit wil sê, hier is 'n wenk oor die grootte van die groep wat my interesseer - 6 miljoen mense. Om eerlik te wees, dit is meer as wat ek verwag het.

Die tweede verrassing vir my was die groeikoers van die aantal programmeerders: vanaf die tweede kwartaal van 2017 tot die vierde kwartaal van 2018 het dit van 14.7 tot die genoemde 18.9 miljoen toegeneem, of in 21 met 2018% toegeneem! As ek gevra word om die groeikoers van die aantal programmeerders te skat, sou ek sê dit is sowat 5% per jaar met 'n effense toename in die koers jaarliks. En hier blyk dit soveel as 20% te wees.

Boonop skat SlashData dat die bevolking teen 2030 45 miljoen sal bereik. Dit is maklik om uit te vind dat dit groei van 'n bietjie meer as 8% per jaar impliseer, nie 20% nie, maar hulle verwys na 'n aanpassing om rekening te hou met internetpenetrasie (tans sowat 57% wêreldwyd). volgens Statista) en verskeie ander faktore, soos die aantal ontwikkelaars per capita. Geografies groei die aantal ontwikkelaars die sterkste in Indië en China; Indië sal na verwagting die Verenigde State in die aantal ontwikkelaars teen 2023 verbysteek (dit is reeds C# Hoek data).

Oor die algemeen sal daar baie programmeerders wees, maak nie saak hoe jy daarna kyk nie, want die vraag groei. Terloops, oor vraag.

Wat is in aanvraag?

Om die vraag te skat, het ek HackerRank-data gebruik vir 2018 и 2019 jaar.

Wat programmeertale betref, is die grootste vraag na JavaScript, Python en Java in byna alle industrieë, met die uitsondering van rekenaarhardeware. In laasgenoemde is die grootste vraag na C/C++, wat verstaanbaar is; hardewareprojekte het steeds vereistes vir hulpbronintensiteit en werkverrigting van die ooreenstemmende sagteware.

"Waar is die jong punks wat ons van die aarde sal afvee?"

Wat raamwerke betref, is AngularJS, Node.js en React in die grootste aanvraag, en hulle het die grootste gaping tussen vraag en aanbod, wat blykbaar verklaar word deur die spoed waarmee die JavaScript-ekosisteem verander, want byvoorbeeld vir ExpressJS , die aanbod oorskry reeds die vraag.

"Waar is die jong punks wat ons van die aarde sal afvee?"

Wat bevoegdhede betref, verwag werkgewers hoofsaaklik Probleemoplossingsvaardighede van kandidate. Sowat 95% van werkgewers noem hierdie vaardighede as belangrik. Programmeringstaalvaardigheid is in die tweede plek met 56%. Terloops, daar is glad nie 'n lyn met fundamentele kennis van algoritmes, datastrukture en ander Rekenaarwetenskap nie, of dit was nie in die vraelys nie, of akademiese kennis word nie meer op groot skaal vereis nie.

Databasisontwerp word benodig deur 23.2% van maatskappye onder 100 mense, en 18.8% van maatskappye meer as 1000 mense. Ja, dit lyk of dit oor ORM en SQL gaan! Die logiese, IMHO, verduideliking is dat daar in groot maatskappye 'n toegewyde rol is van DBA, wat verantwoordelik is vir hierdie aspek, en daarom is dit moontlik om die vereistes vir ontwikkelaars te versag en vinniger aan te stel. Maar met System Design is dit andersom: 37.0% in kleins, 44.1% in grotes. Dit wil voorkom asof grotes toegewyde argitekte moet hê, maar miskien is hulle eenvoudig nie in staat om die aantal stelsels wat gegenereer word, te dek nie. Of dieselfde fundamentele algoritmes en datastrukture word in Stelselontwerp geplaas, dan word dit 'n bietjie duideliker.

Klein maatskappye benodig Raamwerkvaardigheid meer en minder die voorgenoemde Stelselontwerp, waaruit ons die kaptein se gevolgtrekking kan maak dat dit belangrik is vir beginners om so vinnig as moontlik 'n werkende produk te begin, en môre sal môre wees.

"Waar is die jong punks wat ons van die aarde sal afvee?"

Wat leer studente?

Hier het ek staatgemaak op data van 'n ander HackerRank navorsing.
Dit is belangrik om in ag te neem dat ten spyte van die feit dat programmering in een of ander vorm by universiteite onderrig word (ek bedoel Rekenaarwetenskap hoofvakke), het meer as die helfte van die ondervraagdes gesê dat hulle ook by selfonderrig betrokke is.

Moderne studente verkies om van YouTube te leer, terwyl ouer ontwikkelaars na tutoriale en boeke neig. Beide van hulle gebruik StackOverflow aktief. Ek skryf dit toe aan die feit dat video 'n bekende mediakanaal vir generasie Z is, terwyl verteenwoordigers van generasie Y steeds in 'n era sonder bloggers is.

Hulle leer wat deur werkgewers in aanvraag is: JavaScript, Java, Python. Hulle dui aan dat hulle C/C++ ken, maar dit is waarskynlik omdat hierdie tale vir onderrig aan universiteite gebruik word. Hulle leer JS-raamwerke, maar die vraag is aansienlik hoër as die aanbod, so blykbaar leer hulle aktief nadat hulle hul eerste werk gekry het.

"Waar is die jong punks wat ons van die aarde sal afvee?"

Oor die algemeen, soos verwag, leer hulle wat in aanvraag is.

Studente verwag professionele groei vanaf hul eerste werk, werk-lewe-balans kom tweede (in sommige lande eerste), en interessante take kom derde.

Dinamika van die ontwikkelaarpopulasie deur programmeertale en sagtewaretipes

"Waar is die jong punks wat ons van die aarde sal afvee?"

Webtoepassings is in die eerste plek met 'n geskatte 16.9 miljoen ontwikkelaars. Dit is weer SlashData. Volgende is Backend Services (13.6 miljoen), mobiele toepassings (13.1 miljoen) en rekenaars (12.3 miljoen). AR/VR en IoT-sektore word geleidelik gewild, KI/ML/Datawetenskap het die afgelope twee jaar aansienlik gegroei.

Javascript groei die vinnigste; sy gemeenskap is reeds die grootste en het in 2018 alleen met 2.5 miljoen gegroei. Hulle probeer selfs om daarin te skryf in die IoT- en ML-sektore.
Python het in 2018 met 2.2 miljoen gegroei as gevolg van die groeiende gewildheid van ML, waar dit tradisioneel sterk is, sowel as as gevolg van die gemak van aanleer en gerief van die taal.

Java, C/C++ en C# groei teen 'n stadiger tempo as die algehele ontwikkelaarpopulasie. Hulle is nou selde die programmeertaal waarmee mense kies om mee te begin. Die vraag na ontwikkelaars hier is min of meer gebalanseer met aanbod. Ek dink Java sou selfs stadiger gegroei het as dit nie vir Android was nie.

PHP is die tweede gewildste webtoepassingsprogrammeertaal en dit groei ook aansienlik (met 32% in 2018). Sy gemeenskap word geskat op 5.9 miljoen ontwikkelaars. Ten spyte van die polariserende reputasie van PHP, is dit redelik maklik om te leer en wyd gebruik.

Hoe studeer vandag se jong kandidate in vergelyking met vorige generasies?

HackerRank data weer. Diegene wat nou tussen 38 en 53 is, noem speletjies as hul eerste projekte.

Terloops, ek bevestig dat my eerste min of meer werkende projek "tik-tak-toe" was tot vyf in 'n ry met 'n onbeperkte veld, die tweede was 'n wedstryd van 15. Ek het dit alles geskryf op BC 010-01, daar was Vilnius basiese, aka BASIC-86 en fokus. Eh.

Moderne beginnerprogrammeerders (tot 21 jaar oud) skryf sakrekenaars en webwerwe as hul eerste projekte.

Onder verteenwoordigers van generasie X het byna die helfte voor die ouderdom van 16 begin om kode te skryf, baie het dit van 5 tot 10 jaar oud gedoen (hoofsaaklik diegene wat nou tussen 35 en 45 jaar oud is). Dit is min of meer duidelik hoekom: daar was min bronne van inligting, en om 'n programmeerder te word moes jy dit regtig graag wou hê, en diegene wat dit regtig wou hê, het vroeg begin programmeer. Diegene wat dit nie so graag wou gehad het nie, het heel waarskynlik nou 'n ander beroep, so die prentjie in sosiologie is presies so.

"Waar is die jong punks wat ons van die aarde sal afvee?"

Vandag se jong kandidate begin net 20% van die tyd programmeer voor die ouderdom van 16, die meerderheid iewers tussen 16 en 20. Maar dit is ook baie makliker vir hulle om te leer; nou is dit baie meer toeganklik.

Bevindinge

Ek het nog steeds nie 'n konkrete antwoord gevind op die vraag of 'n begin-web backend-ontwikkelaar SQL vandag nodig het nie, maar ek het my idee van die moderne bevolking van programmeerders reggestel.

Die volgende generasie ontwikkelaars is gewone mense, in sekere opsigte lyk hulle soos die voriges; die behuisingsprobleem het hulle net bederf. Hulle voldoen aan die vraag wat deur werkgewers geskep word. Die drempel om die beroep te betree het laer geword as gevolg van geriefliker gereedskap en raamwerke wat jou toelaat om vinnig resultate te behaal. Meer mense word nou programmeerders; die digitale generasie (Generasie Z) leef sedert geboorte in tegnologie; vir hulle is dit 'n algemene beroep, nie erger as ander nie.

Diegene wat weet dat L1-kas-latensie ~4 siklusse is, en dat dit beter is om nie kaslyne onnodig te verongeluk nie, word kleiner as 'n persentasie van die totale bevolkingsgrootte. Hulle moet egter nie bekommerd wees om werk te kry nie; iemand moet immers laevlak goed skryf waar dit nog nodig is. Net so moet diegene wat diep fundamentele kennis in stelselontwerp het en dit in bloedige praktiese gevegte verwerf het, en nie net 'n vragkultus volg nie, nie bekommerd wees nie. Omdat daar meer mense in spanne sal wees wat “net kode kan skryf” en “net” raamwerke kan gebruik, en om “die ondraaglike pyn van jare wat doelloos geleef is te vermy” (c) sal hulle met net sulke mense gebalanseer moet word .

Sagte vaardighede migreer geleidelik van die kategorie van wenslik na verpligtend (ek het geen objektiewe data om dit te bevestig nie, net praktiese waarneming). Die aantal programmeerders groei, en hulle moet almal gerig word om resultate te behaal, hetsy deur direkte of indirekte beheer, en dit is presies waarvoor sagte vaardighede nodig is.

"Enter IT" lyk vir my na 'n plaaslike streekstorie, tipies vir daardie plekke waar die inkomste van 'n programmeerder aansienlik verskil van die inkomste van 'n vergelykbare "nie-IT" spesialis. In Minsk, waar ek woon, is dit oor die algemeen 'n massabeweging, elke dag sien ek advertensies vir nuwe kursusse oor hoe om by die gesogte IT in te kom, en skoonmaakmaatskappye teiken programmeerders met die boodskap “Verstaan ​​jy die kode in hierdie prentjie? Dit beteken jy kan bekostig om nie jou woonstel skoon te maak nie, ons sal alles vir jou doen.” Dieselfde ding gebeur glo in sommige Indië. Ek het ook geen data om dit te bewys nie.

In die algemeen, na my mening, bedreig niks die bevolking van programmeerders nie. Daar is geen sin om te babbel oor die feit dat jy nie regte programmeerders gedurende die dag kan vind nie, en dat kandidate baie dikwels "niks weet nie." Hulle is net so slim en bekwaam, miskien selfs slimmer en meer bekwaam as "regte programmeerders"; hulle verkry eenvoudig die kennis wat 'n vinnig groeiende mark van hulle vereis en stel dit wat hulle nog nie nodig het nie en nie reg sal bring vir later nie. nou. Hulle sal leer wanneer hulle moet, want hulle wil nog leer. Waarskynlik sal nie almal daartoe in staat wees nie, maar nie almal sal dit ook nodig hê nie; in die afsienbare toekoms sal die mark maklik mense aanvaar wat vinnig 'n ander toepassingskonsep kan saamstel met behulp van een of ander raamwerk.

Slegs geregistreerde gebruikers kan aan die opname deelneem. Meld aan, asseblief.

Vereis web-ondersteuneronderhoude SQL-kennis?

  • Ja, ek eis dit omdat ek dit nodig het vir werk

  • Ja, ek doen, al is dit selde by die werk nodig.

  • Nee, ek het dit nie nodig nie, ons het NoSQL

  • Nee, ek vereis dit nie, ORM sal alles doen

320 gebruikers het gestem. 230 gebruikers het buite stemming gebly.

Bron: will.com

Voeg 'n opmerking