"Unde este acel tânăr punk care ne va șterge de pe fața pământului?"

Întrebarea existențială pusă în titlu în formularea lui Grebenshchikov, m-am pus după următoarea rundă de discuții într-una dintre comunități pe tema dacă un dezvoltator web backend începător are nevoie de cunoștințe de SQL, sau ORM va face totul oricum. Am decis să caut un răspuns puțin mai larg decât doar despre ORM și SQL și, în principiu, să încerc să sistematizez cine sunt oamenii care intervievează acum pentru posturi de dezvoltare junior și mediu, care este istoria lor și în ce lume trăiesc. . În general, am avut o părere, dar a fost formată din experiența personală de angajare și clar adaptată pentru piața locală. În general, a devenit curios. Iată ce am găsit.

Populația globală de dezvoltatori

Pentru a aborda cumva problema, am decis să încep prin a căuta date despre câți dezvoltatori există în lume, în principiu, și cum se modifică această populație în timp.
Estimările din diverse surse dau cifre de la 12 la 30 de milioane de oameni. Hotărât să se oprească date de la SlashData, pentru că metodologia lor mi s-a părut destul de echilibrată și potrivită nevoilor mele. În evaluarea lor, au luat în considerare numărul de conturi și depozite de pe Github, numărul de conturi de pe StackOverflow, conturi npm și datele oficiale de angajare în SUA și Europa. De asemenea, au corectat numerele rezultate folosind propriile lor 16 studii, care au inclus aproximativ 20 de persoane pentru fiecare sondaj.

Potrivit SlashData, în al patrulea trimestru din 2018, în lume erau aproximativ 18.9 milioane de dezvoltatori, dintre care 12.9 milioane sunt profesioniști, adică își câștigă programul de viață. Cei care nu sunt în prezent dezvoltatori profesioniști sunt oameni pentru care programarea este un hobby plus cei care acum studiază profesia (diverși studenți și autodidacți). Ei bine, adică, iată un indiciu despre dimensiunea grupului care mă interesează - 6 milioane de oameni. Sincer să fiu, este mai mult decât mă așteptam.

A doua surpriză pentru mine a fost ritmul de creștere a numărului de programatori: din trimestrul II 2017 până în trimestrul IV 2018 a crescut de la 14.7 la cele 18.9 milioane menționate, sau a crescut cu 21% în 2018! Dacă mi s-ar cere să estimez rata de creștere a numărului de programatori, atunci aș spune că este de aproximativ 5% pe an cu o ușoară creștere a ratei anual. Și aici se dovedește până la 20%.

În plus, SlashData estimează că populația va ajunge la 2030 de milioane până în 45. Nu este greu de calculat că aceasta implică o creștere de puțin peste 8% anual și deloc de 20%, dar se referă la o corecție pentru penetrarea Internetului (acum aproximativ 57% la nivel global de către potrivit Statistica) și alți câțiva factori, cum ar fi numărul de dezvoltatori pe cap de locuitor. Din punct de vedere geografic, India și China sunt dezvoltatorii cu cea mai rapidă creștere, India se așteaptă să depășească SUA în ceea ce privește dezvoltatorii până în 2023 (acest lucru este deja Date de colț C#).

În general, vor fi o mulțime de programatori, orice s-ar spune, pentru că cererea este în creștere. Apropo, despre cerere.

Ce se cere?

Pentru a estima cererea, am folosit datele HackerRank pentru 2018 и 2019 ani.

În ceea ce privește limbajele de programare, cea mai mare cerere pentru JavaScript, Python și Java este în aproape toate industriile, cu excepția hardware-ului de computer. În cel din urmă, C/C++ este la cea mai mare cerere, ceea ce este de înțeles; în proiectele hardware, există încă cerințe pentru intensitatea resurselor și performanța software-ului corespunzător.

"Unde este acel tânăr punk care ne va șterge de pe fața pământului?"

În ceea ce privește cadrele, AngularJS, Node.js și React sunt cele mai solicitate, cu cele mai mari decalaje între cerere și ofertă, ceea ce pare să se explice prin viteza cu care se schimbă ecosistemul JavaScript, deoarece, de exemplu, în ExpressJS , oferta depășește deja cererea.

"Unde este acel tânăr punk care ne va șterge de pe fața pământului?"

În ceea ce privește competențele, angajatorii așteaptă de la candidați, în primul rând, abilități de rezolvare a problemelor. Aproximativ 95% dintre angajatori menționează aceste abilități ca fiind importante. Competența limbajului de programare este pe locul doi, cu 56%. Apropo, nu există o linie cu cunoștințele fundamentale despre algoritmi, structuri de date și alte informatică, fie că nu a fost în chestionar, fie cunoștințele academice nu mai sunt necesare la scară masivă.

Proiectarea bazelor de date este nevoie de 23.2% dintre companiile sub 100 de persoane și 18.8% dintre companiile de peste 1000 de persoane. Aha, aici este similar despre ORM și SQL! Explicația logică, IMHO, este că în companiile mari apare un rol de DBA dedicat, care este responsabil pentru acest aspect și, prin urmare, este posibil să se înmoaie cerințele pentru dezvoltatori și să se angajeze mai repede. Dar cu System Design, opusul este adevărat: 37.0% în cele mici, 44.1% în cele mari. S-ar părea că ar trebui să existe arhitecți dedicați în cele mari, dar poate pur și simplu nu sunt capabili să acopere numărul de sisteme generate. Sau, în același timp, acei algoritmi și structuri de date foarte fundamentale sunt investiți în System Design, apoi devine puțin mai clar.

Firmele mici au nevoie de Framework Proficiency din ce în ce mai puțin de System Design menționat mai sus, din care putem trage concluzia căpitanului că este important ca startup-urile să lanseze cumva un produs funcțional cât mai curând, iar mâine va fi mâine.

"Unde este acel tânăr punk care ne va șterge de pe fața pământului?"

Ce învață elevii?

Aici m-am bazat pe datele altuia Cercetare HackerRank.
Este important de reținut că, în ciuda faptului că programarea într-o formă sau alta se predă la universități (mă refer la specialități Informatică), mai mult de jumătate dintre respondenți au spus că sunt și ei angajați în autoeducație.

Studenții de astăzi preferă să învețe de pe YouTube, în timp ce dezvoltatorii mai în vârstă se orientează către tutoriale și cărți. Ambii folosesc în mod activ StackOverflow. Atribuiesc acest lucru faptului că videoclipul este un canal media familiar pentru generația Z, în timp ce reprezentanții generației Y au găsit încă o epocă fără bloggeri.

Ei învață ce este solicitat de angajatori: JavaScript, Java, Python. Ei indică faptul că cunosc C/C++, dar acest lucru se datorează probabil că aceste limbi sunt folosite pentru predare în universități. Ei predau cadre JS, dar cererea este mult mai mare decât oferta, așa că se pare că predau activ după ce au găsit deja primul loc de muncă.

"Unde este acel tânăr punk care ne va șterge de pe fața pământului?"

În general, este de așteptat ca ei să predea ceea ce este solicitat.

Studenții se așteaptă la creșterea profesională de la primul loc de muncă, pe locul doi (în unele țări, pe primul loc), echilibrul dintre viața profesională și cea privată, iar sarcinile interesante sunt pe locul al treilea.

Dinamica populației dezvoltatorilor prin limbaje de programare și tipuri de software

"Unde este acel tânăr punk care ne va șterge de pe fața pământului?"

Aplicațiile web sunt pe primul loc cu aproximativ 16.9 milioane de dezvoltatori. Acestea sunt din nou datele SlashData. Alte servicii de backend (13.6 milioane), aplicații mobile (13.1 milioane) și desktop (12.3 milioane). Sectoarele AR/VR și IoT câștigă treptat popularitate, AI/ML/Data Science a crescut semnificativ în ultimii doi ani.

Javascript se dezvoltă cel mai rapid, comunitatea sa este deja cea mai mare, crescând cu 2018 milioane doar în 2.5. Ei încearcă să scrie pe el chiar și în sectoarele IoT și ML.
Python a crescut cu 2018 milioane în 2.2 datorită creșterii popularității ML, unde este în mod tradițional puternic, precum și datorită ușurinței de învățare și comoditatea limbii.

Java, C/C++ și C# cresc într-un ritm mai lent decât populația generală de dezvoltatori. Acum sunt rareori limbajul de programare cu care oamenii aleg să înceapă. Cererea de dezvoltatori aici este mai mult sau mai puțin echilibrată cu oferta. Cred că Java ar crește și mai lent dacă nu pentru Android.

PHP este al doilea cel mai popular limbaj de programare a aplicațiilor web și este, de asemenea, în creștere semnificativă (cu 32% în 2018). Comunitatea sa este estimată la 5.9 milioane de dezvoltatori. În ciuda opiniei polarizante despre reputația PHP, este destul de ușor de învățat și utilizat pe scară largă.

Cum învață tinerii candidați de astăzi în comparație cu generațiile trecute

Datele HackerRank din nou. Cei care au acum între 38 și 53 de ani indică jocurile ca primele lor proiecte.

Apropo, confirm că primul meu proiect mai mult sau mai puțin de lucru a fost tic-tac-toe până la cinci la rând cu un teren nelimitat, al doilea a fost un joc de 15. Am scris toate astea pe 010-01 î.Hr, a fost Vilnius de bază, alias BASIC-86 și focal. Eh.

Programatorii începători moderni (sub 21 de ani) scriu calculatoare și site-uri web ca primele lor proiecte.

Dintre generația X, aproape jumătate au început să codifice înainte de vârsta de 16 ani, mulți de la 5 la 10 ani (mai ales cei care au acum între 35 și 45 de ani). Este mai mult sau mai puțin clar de ce: existau puține surse de informații, iar pentru a deveni programator trebuia să-ți dorești cu adevărat, iar cei care și-o doreau cu adevărat au început să programeze devreme. Cei care nu și-au dorit atât de multe, până acum au cel mai probabil o altă profesie, așa că tabloul în sociologie este exact așa.

"Unde este acel tânăr punk care ne va șterge de pe fața pământului?"

Tinerii candidați de azi doar 20% din timp încep să programeze înainte de vârsta de 16 ani, majoritatea undeva între 16 și 20 de ani. Dar le este mult mai ușor să învețe, acum este mult mai accesibil.

Constatări

Nu am găsit un răspuns concret la întrebarea dacă un dezvoltator de backend web începător are nevoie de SQL astăzi, dar mi-am corectat înțelegerea asupra populației moderne de programatori.

Următoarea generație de dezvoltatori sunt oameni obișnuiți, amintesc oarecum de cei anteriori, problema locuințelor doar i-a stricat. Ele satisfac cererea creată de angajatori. Pragul de intrare în profesie a devenit mai scăzut datorită instrumentelor și cadrelor mai convenabile care vă permit să obțineți rapid rezultate. Mai mulți oameni devin acum programatori, generația digitală (generația Z) trăiește în tehnologie încă de la naștere, pentru ei aceasta este o profesie comună, nu mai rea decât alții.

Cei care știu că latența cache-ului L1 este de ~4 cicluri și că este mai bine să nu eliminați liniile cache în mod inutil, devine mai mic ca procent din dimensiunea totală a populației. Cu toate acestea, nu ar trebui să-și facă griji în privința obținerii unui loc de muncă, la urma urmei, cineva trebuie să scrie lucruri de nivel scăzut acolo unde este încă nevoie. La fel ca cei care au cunoștințe fundamentale profunde în proiectarea sistemelor și le-au dobândit în bătălii practice sângeroase și nu urmează doar un cult al mărfurilor, nu ar trebui să-și facă griji. Deoarece vor fi mai mulți oameni care pot „scrie doar cod” și „doar” să folosească cadrele în echipe și, pentru a „nu fi chinuitor de dureroși pentru anii trăiți fără țintă” (c), vor trebui să fie echilibrați de așa ceva. oameni.

Soft skills din categoria celor dezirabile migrează treptat către cele solicitate (nu am date obiective care să confirme acest lucru, doar o observație practică). Numărul de programatori este în creștere și toți trebuie direcționați pentru a obține rezultate, fie prin control direct, fie indirect, și tocmai pentru asta sunt necesare abilitățile soft.

„Intrarea în IT” mi se pare o istorie regională locală, tipică pentru acele locații în care veniturile unui programator diferă semnificativ de veniturile unui specialist comparabil în ceea ce privește calificările „non-IT”. În Minsk, unde locuiesc, aceasta este în general o mișcare de masă, în fiecare zi văd reclame pentru următoarele cursuri despre cum să intru în râvnitul IT, iar companiile de curățenie vizează programatorii cu mesajul „Înțelegi codul din această imagine? Deci vă puteți permite să nu curățați apartamentul, vom face totul pentru dvs..” Același lucru pare să se întâmple în unele India. Nici eu nu am date care să dovedească acest lucru.

În general, nimic nu amenință populația de programatori în opinia mea. Nu merită să vorbiți despre faptul că nu puteți găsi programatori adevărați după-amiaza cu foc, iar candidații tot timpul „nu știu nimic”. Sunt la fel de inteligenți și capabili, poate chiar mai deștepți și mai capabili decât „programatorii adevărați”, pur și simplu dobândesc cunoștințele pe care o piață în creștere rapidă le cere de la ei și amână pentru mai târziu ceea ce nu au nevoie încă și nu le va aduce beneficii corecte. acum. Vor învăța când va fi nevoie, pentru că tot vor să învețe. Probabil, nu toată lumea va putea face acest lucru, dar nici toți nu vor avea nevoie de el, cu siguranță piața va accepta cu ușurință în viitorul prezis oameni care pot asambla rapid un alt concept de aplicație pe un cadru.

Numai utilizatorii înregistrați pot participa la sondaj. Loghează-te, Vă rog.

Aveți nevoie de cunoștințe de SQL pentru interviurile web backender?

  • Da, da, pentru că am nevoie de el la serviciu

  • Da, da, chiar dacă este rar necesar la serviciu.

  • Nu, nu, avem NoSQL

  • Nu, eu nu, ORM va face totul

Au votat 320 utilizatori. 230 utilizatori s-au abținut.

Sursa: www.habr.com

Adauga un comentariu