"Var är de unga punkarna som kommer att utplåna oss från jordens yta?"

Jag ställde mig själv den existentiella frågan som ställdes i rubriken i Grebenshchikovs formulering efter ytterligare en diskussionsrunda i en av gemenskaperna om huruvida en nybörjarwebbbackend-utvecklare behöver SQL-kunskap, eller om ORM kommer att göra allt ändå. Jag bestämde mig för att söka svaret lite bredare än bara om ORM och SQL, och i princip försöka systematisera vilka personerna är som nu ska på intervju för junior- och mellannivåutvecklingstjänster, vad de har för historia och vilken värld de bo i. I allmänhet hade jag en åsikt, men den bildades av personlig anställningserfarenhet och tydligt anpassad till den lokala marknaden. I allmänhet blev det intressant. Här är vad vi hittade.

Global utvecklarpopulation

För att på något sätt närma mig frågan bestämde jag mig för att börja med att söka efter data om hur många utvecklare det finns i världen idag och hur denna population förändras över tid.
Uppskattningar i olika källor sätter siffrorna i intervallet från 12 till 30 miljoner människor. Bestämde mig för att stanna kl data från SlashData, eftersom deras metodik verkade ganska balanserad och lämplig för mina behov. I sin bedömning tog de hänsyn till antalet konton och repositories på Github, antalet konton på StackOverflow, npm-konton och data från officiella källor om sysselsättning i USA och Europa. De justerade också de resulterande siffrorna med hjälp av sina egna 16 studier, som inkluderade cirka 20 000 personer för varje undersökning.

Enligt SlashData fanns det cirka 2018 miljoner utvecklare i världen under fjärde kvartalet 18.9, varav 12.9 miljoner var professionella utvecklare, det vill säga de försörjer sig på programmering. De som för närvarande inte är professionella utvecklare är personer för vilka programmering är en hobby, plus de som för närvarande studerar ett yrke (olika studenter och självlärda). Jo, det vill säga, här är en antydan om storleken på gruppen som intresserar mig - 6 miljoner människor. För att vara ärlig så är detta mer än jag förväntat mig.

Den andra överraskningen för mig var tillväxttakten för antalet programmerare: från andra kvartalet 2017 till fjärde kvartalet 2018 ökade det från 14.7 till de nämnda 18.9 miljonerna, eller ökade med 21% under 2018! Om jag blev ombedd att uppskatta tillväxttakten för antalet programmerare, skulle jag säga att det är cirka 5% per år med en liten ökning av takten årligen. Och här visar det sig vara så mycket som 20%.

Dessutom uppskattar SlashData att befolkningen kommer att nå 2030 miljoner år 45. Det är lätt att räkna ut att detta innebär en tillväxt på lite mer än 8 % årligen, inte 20 %, men de hänvisar till en justering för att ta hänsyn till internetpenetration (för närvarande cirka 57 % över hela världen). enligt Statista) och flera andra faktorer, såsom antalet utvecklare per capita. Geografiskt växer antalet utvecklare starkast i Indien och Kina; Indien förväntas gå om USA i antal utvecklare till 2023 (detta är redan C# Hörndata).

Generellt kommer det att finnas många programmerare, hur man än ser på det, eftersom efterfrågan växer. Förresten, om efterfrågan.

Vad efterfrågas?

För att uppskatta efterfrågan använde jag HackerRank-data för 2018 и 2019 år.

När det gäller programmeringsspråk är det störst efterfrågan på JavaScript, Python och Java i nästan alla branscher, med undantag för Hårdvara. I det senare är det störst efterfrågan på C/C++, vilket är förståeligt, hårdvaruprojekt har fortfarande krav på resursintensitet och prestanda för motsvarande mjukvara.

"Var är de unga punkarna som kommer att utplåna oss från jordens yta?"

När det gäller ramverk är AngularJS, Node.js och React mest efterfrågade, och de har det största gapet mellan utbud och efterfrågan, vilket tycks förklaras av den hastighet med vilken JavaScript-ekosystemet förändras, eftersom till exempel för ExpressJS , utbudet överstiger redan efterfrågan.

"Var är de unga punkarna som kommer att utplåna oss från jordens yta?"

När det gäller kompetens förväntar sig arbetsgivare främst problemlösningsförmåga från kandidater. Cirka 95 % av arbetsgivarna nämner dessa färdigheter som viktiga. Programmeringsspråkkunskap ligger på andra plats med 56%. Det finns förresten ingen linje alls med grundläggande kunskaper om algoritmer, datastrukturer och annan datavetenskap, antingen fanns det inte i enkäten eller så krävs det inte längre akademisk kunskap i stor skala.

Databasdesign behövs av 23.2 % av företagen under 100 personer och 18.8 % av företagen över 1000 37.0 personer. Ja, det verkar som att det handlar om ORM och SQL! Den logiska, IMHO, förklaringen är att det i stora företag finns en dedikerad roll som DBA, som ansvarar för denna aspekt, och därför är det möjligt att mildra kraven på utvecklare och anställa snabbare. Men med systemdesign är det tvärtom: 44.1 % i små, XNUMX % i stora. Det verkar som att stora sådana borde ha dedikerade arkitekter, men kanske kan de helt enkelt inte täcka antalet system som genereras. Eller så sätts samma grundläggande algoritmer och datastrukturer in i System Design, då blir det lite tydligare.

Små företag behöver Framework Proficiency mer och mindre den tidigare nämnda Systemdesignen, från vilken vi kan dra kaptenens slutsats att det är viktigt för startups att lansera en på något sätt fungerande produkt så snabbt som möjligt, och imorgon är det imorgon.

"Var är de unga punkarna som kommer att utplåna oss från jordens yta?"

Vad lär sig eleverna?

Här förlitade jag mig på data från en annan HackerRank forskning.
Det är viktigt att tänka på att trots att programmering i en eller annan form lärs ut vid universitet (jag menar datavetenskapliga huvudämne) så sa mer än hälften av de tillfrågade att de också ägnar sig åt självutbildning.

Moderna elever föredrar att lära sig av YouTube, medan äldre utvecklare lutar åt handledningar och böcker. Båda använder StackOverflow aktivt. Jag tillskriver detta det faktum att video är en välbekant mediekanal för generation Z, medan företrädare för generation Y fortfarande befinner sig i en tid utan bloggare.

De lär ut vad som efterfrågas av arbetsgivare: JavaScript, Java, Python. De anger att de kan C/C++, men det beror förmodligen på att dessa språk används för undervisning på universitet. De lär ut JS-ramverk, men efterfrågan är betydligt högre än utbudet, så tydligen lär de sig aktivt efter att ha hittat sitt första jobb.

"Var är de unga punkarna som kommer att utplåna oss från jordens yta?"

I allmänhet lär de som förväntat ut det som efterfrågas.

Studenter förväntar sig professionell tillväxt från sitt första jobb, balansen mellan arbete och privatliv kommer på andra plats (i vissa länder först), och intressanta uppgifter kommer på tredje plats.

Dynamik hos utvecklarpopulationen efter programmeringsspråk och mjukvarutyper

"Var är de unga punkarna som kommer att utplåna oss från jordens yta?"

Webbapplikationer ligger på första plats med uppskattningsvis 16.9 miljoner utvecklare. Det här är SlashData igen. Nästa är Backend Services (13.6 miljoner), mobila applikationer (13.1 miljoner) och desktop (12.3 miljoner). AR/VR och IoT-sektorerna vinner gradvis popularitet, AI/ML/Data Science har vuxit avsevärt under de senaste två åren.

Javascript växer snabbast; dess community är redan den största och växte med 2018 miljoner bara under 2.5. De försöker till och med skriva i det i IoT- och ML-sektorerna.
Python växte med 2018 miljoner under 2.2 på grund av den växande populariteten för ML, där det traditionellt är starkt, samt på grund av att det är lätt att lära sig och språket är bekvämt.

Java, C/C++ och C# växer i en långsammare takt än den totala utvecklarpopulationen. De är nu sällan det programmeringsspråk som folk väljer att börja med. Efterfrågan på utvecklare här är mer eller mindre balanserad med utbudet. Jag tror att Java skulle ha växt ännu långsammare om det inte hade varit för Android.

PHP är det näst mest populära programmeringsspråket för webbapplikationer och det växer också avsevärt (med 32 % 2018). Dess community uppskattas till 5.9 miljoner utvecklare. Trots det polariserande ryktet om PHP är det ganska lätt att lära sig och används ofta.

Hur studerar dagens unga kandidater jämfört med tidigare generationer?

HackerRank-data igen. De som nu är mellan 38 och 53 listar spel som sina första projekt.

Förresten, jag bekräftar att mitt första mer eller mindre fungerande projekt var "tic-tac-toe" upp till fem i rad med ett obegränsat fält, det andra var ett spel om 15. Jag skrev allt detta på BC 010-01, det var Vilnius grundläggande, aka BASIC-86 och focal. Va.

Moderna nybörjare programmerare (upp till 21 år) skriver miniräknare och webbplatser som sina första projekt.

Bland företrädare för generation X började nästan hälften skriva kod före 16 års ålder, många gjorde det från 5 till 10 år (främst de som nu är mellan 35 och 45 år). Det är mer eller mindre tydligt varför: det fanns få informationskällor, och för att bli programmerare var man verkligen tvungen att vilja det illa, och de som verkligen ville ha det började programmera tidigt. De som inte ville ha det så mycket har troligen nu ett annat yrke, så bilden i sociologi är exakt så här.

"Var är de unga punkarna som kommer att utplåna oss från jordens yta?"

Dagens unga kandidater börjar bara 20% av tiden programmera före 16 års ålder, majoriteten någonstans mellan 16 och 20. Men det är också mycket lättare för dem att lära sig, nu är det mycket mer tillgängligt.

Resultat

Jag har fortfarande inte hittat något konkret svar på frågan om huruvida en nybörjarwebbbackend-utvecklare behöver SQL idag, men jag har korrigerat min uppfattning om den moderna populationen av programmerare.

Nästa generation av utvecklare är vanliga människor, på något sätt liknar de de tidigare; bostadsproblemet förstörde dem bara. De tillgodoser efterfrågan som skapas av arbetsgivare. Tröskeln för att komma in i yrket har blivit lägre på grund av mer bekväma verktyg och ramar som gör att du snabbt kan uppnå resultat. Fler människor blir nu programmerare, den digitala generationen (Generation Z) har levt i tekniken sedan födseln, för dem är det ett vanligt yrke, inte värre än andra.

De som vet att L1-cache-latensen är ~4 cykler, och att det är bättre att inte krascha cache-rader i onödan, blir mindre som en procentandel av den totala populationsstorleken. Men de borde inte oroa sig för att få ett jobb, någon måste trots allt skriva saker på låg nivå där det fortfarande behövs. Likaså bör de som har djupa grundläggande kunskaper i systemdesign och förvärvade den i blodiga praktiska strider, och inte bara följer en lastkult, inte oroa sig. Eftersom det kommer att finnas fler människor i team som kan "bara skriva kod" och "bara" använda ramverk, och för att "undvika den olidliga smärtan av år som tillbringats planlöst liv" (c) kommer de att behöva balanseras av just sådana människor .

Mjuka färdigheter migrerar gradvis från kategorin önskvärda till obligatoriska (jag har inga objektiva uppgifter som bekräftar detta, bara praktisk observation). Antalet programmerare växer, och de måste alla styras för att uppnå resultat, antingen genom direkt eller indirekt kontroll, och det är precis vad mjuka färdigheter behövs för.

"Enter IT" förefaller mig vara en lokal regional historia, typisk för de platser där inkomsten för en programmerare skiljer sig väsentligt från inkomsten för en jämförbar "icke-IT"-specialist. I Minsk, där jag bor, är det här generellt sett en massrörelse, varje dag ser jag annonser om nya kurser om hur man kommer in i den eftertraktade IT, och städföretagen riktar sig till programmerare med budskapet ”Förstår du koden i den här bilden? Det betyder att du har råd att inte städa din lägenhet, vi kommer att göra allt åt dig.” Samma sak händer tydligen i vissa Indien. Jag har heller inga uppgifter som bevisar detta.

I allmänhet, enligt min mening, hotar ingenting befolkningen av programmerare. Det är ingen idé att babbla om det faktum att du inte kan hitta riktiga programmerare under dagen, och att kandidater ofta "vet ingenting." De är lika smarta och kapabla, kanske till och med smartare och mer kapabla än "riktiga programmerare"; de skaffar sig helt enkelt den kunskap som en snabbt växande marknad kräver av dem och skjuter upp det som de ännu inte har behövt och inte kommer att ge rätt till nytta. nu. De kommer att lära sig när de behöver, eftersom de fortfarande vill lära sig. Förmodligen kommer inte alla att kunna detta, men inte alla kommer att behöva det heller, inom överskådlig framtid kommer marknaden lätt att acceptera människor som snabbt kan sätta ihop ett annat applikationskoncept med hjälp av något ramverk.

Endast registrerade användare kan delta i undersökningen. Logga in, Snälla du.

Kräver webbbackender-intervjuer SQL-kunskaper?

  • Ja, jag kräver det för att jag behöver det för jobbet

  • Ja, det gör jag, även om det sällan behövs på jobbet.

  • Nej, jag kräver det inte, vi har NoSQL

  • Nej, jag kräver det inte, ORM kommer att göra allt

320 användare röstade. 230 användare avstod från att rösta.

Källa: will.com

Lägg en kommentar