"Kie estas la junaj punkoj, kiuj forviŝos nin de sur la tero?"

Mi demandis al mi la ekzistecan demandon metita en la titolon en la formulo de Grebenshchikov post alia rondo de diskuto en unu el la komunumoj pri ĉu komencanta retejo-backend-programisto bezonas SQL-scion, aŭ ĉu ORM faros ĉion ĉiukaze. Mi decidis serĉi la respondon iom pli larĝe ol nur pri ORM kaj SQL, kaj esence provi sistemigi kiuj estas la homoj, kiuj nun iras por intervjuoj por junaj kaj meznivelaj evoluaj postenoj, kio estas ilia historio kaj kia mondo ili estas. vivi en. Ĝenerale, mi havis opinion, sed ĝi estis formita de persona dunga sperto kaj klare adaptita al la loka merkato. Ĝenerale, ĝi fariĝis interesa. Jen kion ni trovis.

Tutmonda programista loĝantaro

Por iel alproksimiĝi al la demando, mi decidis komenci serĉante datumojn pri kiom da programistoj estas hodiaŭ en la mondo kaj kiel ĉi tiu loĝantaro ŝanĝiĝas laŭlonge de la tempo.
Taksoj en diversaj fontoj metas la nombrojn en la intervalo de 12 ĝis 30 milionoj da homoj. Decidis ĉesi ĉe datumoj de SlashData, ĉar ilia metodaro ŝajnis sufiĉe ekvilibra kaj taŭga por miaj bezonoj. En sia takso, ili konsideris la nombron da kontoj kaj deponejoj sur Github, la nombron da kontoj sur StackOverflow, npm-kontojn kaj datumojn de oficialaj fontoj pri dungado en Usono kaj Eŭropo. Ili ankaŭ alĝustigis la rezultajn nombrojn uzante siajn proprajn 16 studojn, kiuj inkludis proksimume 20 homojn por ĉiu enketo.

Laŭ SlashData, estis proksimume 2018 milionoj da programistoj en la mondo en la kvara trimonato de 18.9, 12.9 milionoj el kiuj estis profesiaj programistoj, tio estas, ili vivtenas programadon. Tiuj, kiuj nuntempe ne estas profesiaj programistoj, estas homoj, por kiuj programado estas ŝatokupo, plus tiuj, kiuj nuntempe studas profesion (diversaj studentoj kaj memlernantoj). Nu, tio estas, jen aludo pri la grandeco de la grupo, kiu interesas min - 6 milionoj da homoj. Verdire, ĉi tio estas pli ol mi atendis.

La dua surprizo por mi estis la kreskorapideco de la nombro da programistoj: de la dua trimonato de 2017 ĝis la kvara trimonato de 2018, ĝi pliiĝis de 14.7 al la menciitaj 18.9 milionoj, aŭ pliiĝis je 21% en 2018! Se mi estus demandita taksi la kreskorapidecon de la nombro da programistoj, mi dirus, ke ĝi estas ĉirkaŭ 5% jare kun iometa pliiĝo de la indico ĉiujare. Kaj ĉi tie ĝi rezultas esti eĉ 20%.

Aldone, SlashData taksas, ke la populacio atingos 2030 milionojn antaŭ 45. Estas facile konstati, ke tio implicas kreskon de iom pli ol 8% ĉiujare, ne 20%, sed ili referencas al alĝustigo por kalkuli interretan penetradon (nuntempe ĉirkaŭ 57% tutmonde). laŭ Statista) kaj pluraj aliaj faktoroj, kiel la nombro da programistoj pokape. Geografie, la nombro da programistoj kreskas plej forte en Barato kaj Ĉinio; Barato estas atendita superi Usonon en la nombro da programistoj antaŭ 2023 (tio jam estas C# Angulaj datumoj).

Ĝenerale, estos multaj programistoj, kiel ajn vi rigardas ĝin, ĉar la postulo kreskas. Cetere, pri postulo.

Kio estas postulata?

Por taksi postulon, mi uzis HackerRank-datumojn por 2018 и 2019 jaro.

Koncerne programlingvojn, la plej granda postulo estas por JavaScript, Python kaj Java en preskaŭ ĉiuj industrioj, escepte de Komputila Aparataro. En ĉi-lasta, la plej granda postulo estas je C/C++, kio estas komprenebla; hardvarprojektoj daŭre havas postulojn por rimedintenseco kaj efikeco de la ekvivalenta programaro.

"Kie estas la junaj punkoj, kiuj forviŝos nin de sur la tero?"

Koncerne kadrojn, AngularJS, Node.js kaj React estas plej postulataj, kaj ili havas la plej grandan interspacon inter oferto kaj postulo, kio ŝajnas esti klarigita per la rapideco kun kiu la JavaScript-ekosistemo ŝanĝiĝas, ĉar ekzemple, por ExpressJS , provizo jam superas postulon.

"Kie estas la junaj punkoj, kiuj forviŝos nin de sur la tero?"

Koncerne kompetentecojn, dungantoj ĉefe atendas Problemsolvantajn kapablojn de kandidatoj. Ĉirkaŭ 95% de dungantoj mencias ĉi tiujn kapablojn kiel gravaj. Programa Lingvo-Kompetenteco estas en la dua loko kun 56%. Cetere, tute ne ekzistas linio kun fundamenta scio pri algoritmoj, datumstrukturoj kaj aliaj Komputiko, aŭ ĝi ne estis en la demandaro, aŭ akademia scio ne plu estas bezonata grandskale.

Database Design estas bezonata de 23.2% de kompanioj sub 100 homoj, kaj 18.8% de kompanioj pli ol 1000 homoj. Jes, ŝajnas, ke ĝi temas pri ORM kaj SQL! La logika, MIHO, klarigo estas, ke en grandaj kompanioj estas dediĉita rolo de DBA, kiu respondecas pri ĉi tiu aspekto, kaj tial eblas mildigi la postulojn por programistoj kaj dungi pli rapide. Sed kun System Design estas inverse: 37.0% en malgrandaj, 44.1% en grandaj. Ŝajnus, ke grandaj devus havi dediĉitajn arkitektojn, sed eble ili simple ne kapablas kovri la nombron da sistemoj estantaj generitaj. Aŭ la samaj fundamentaj algoritmoj kaj datumstrukturoj estas metitaj en System Design, tiam ĝi fariĝas iom pli klara.

Malgrandaj kompanioj bezonas Framework Proficiency pli kaj malpli la menciitan Sisteman Dezajnon, el kiu ni povas tiri la konkludon de la kapitano, ke gravas por noventreprenoj lanĉi iel laborantan produkton kiel eble plej rapide, kaj morgaŭ estos morgaŭ.

"Kie estas la junaj punkoj, kiuj forviŝos nin de sur la tero?"

Kion lernas studentoj?

Ĉi tie mi fidis al datumoj de alia HackerRank-esplorado.
Gravas konsideri, ke malgraŭ la fakto, ke programado en unu aŭ alia formo estas instruata en universitatoj (mi volas diri pri Komputika fakoj), pli ol duono de la enketitaj diris, ke ili ankaŭ okupiĝas pri memedukado.

Modernaj studentoj preferas lerni de Jutubo, dum pli maljunaj programistoj klinas al lerniloj kaj libroj. Ambaŭ el ili aktive uzas StackOverflow. Mi atribuas tion al la fakto, ke video estas konata amaskomunikila kanalo por la generacio Z, dum reprezentantoj de la generacio Y estas ankoraŭ en epoko sen blogantoj.

Ili instruas tion, kio estas postulata de dungantoj: JavaScript, Java, Python. Ili indikas, ke ili konas C/C++, sed ĉi tio verŝajne estas ĉar ĉi tiuj lingvoj estas uzataj por instruado en universitatoj. Ili instruas JS-kadrojn, sed la postulo estas signife pli alta ol la provizo, do ŝajne ili aktive lernas post trovi sian unuan laboron.

"Kie estas la junaj punkoj, kiuj forviŝos nin de sur la tero?"

Ĝenerale, kiel atendite, ili instruas tion, kio estas postulata.

Studentoj atendas profesian kreskon de sia unua laboro, labor-viva ekvilibro venas due (en kelkaj landoj unue), kaj interesaj taskoj venas trie.

Dinamiko de la programista loĝantaro per programlingvoj kaj softvartipoj

"Kie estas la junaj punkoj, kiuj forviŝos nin de sur la tero?"

Retaj aplikaĵoj estas en la unua loko kun ĉirkaŭ 16.9 milionoj da programistoj. Ĉi tio estas SlashData denove. Sekvas Backend Services (13.6 milionoj), moveblaj aplikoj (13.1 milionoj) kaj labortablo (12.3 milionoj). AR/VR kaj IoT-sektoroj iom post iom akiras popularecon, AI/ML/Data Science kreskis signife dum la lastaj du jaroj.

Javascript kreskas plej rapide; ĝia komunumo jam estas la plej granda, kreskanta je 2018 milionoj nur en 2.5. Ili eĉ provas skribi en ĝi en la sektoroj IoT kaj ML.
Python kreskis je 2018 milionoj en 2.2 pro la kreskanta populareco de ML, kie ĝi estas tradicie forta, kaj ankaŭ pro la facileco de lernado kaj oportuno de la lingvo.

Java, C/C++ kaj C# kreskas kun pli malrapida rapideco ol la totala programista loĝantaro. Ili nun malofte estas la programlingvo per kiu homoj elektas komenci. La postulo je programistoj ĉi tie estas pli-malpli ekvilibra kun provizo. Mi pensas, ke Java estus eĉ pli malrapida se ne por Android.

PHP estas la dua plej populara programlingvo de retejo kaj ĝi ankaŭ signife kreskas (je 32% en 2018). Ĝia komunumo estas taksita je 5.9 milionoj da programistoj. Malgraŭ la polariga reputacio de PHP, ĝi estas sufiĉe facile lernebla kaj vaste uzata.

Kiel studas la nuntempaj junaj kandidatoj kompare kun antaŭaj generacioj?

HackerRank datumoj denove. Tiuj kiuj nun estas inter 38 kaj 53 listigas ludojn kiel siajn unuajn projektojn.

Cetere, mi konfirmas, ke mia unua pli-malpli laboranta projekto estis "tic-tac-toe" ĝis kvin en vico kun senlima kampo, la dua estis ludo de 15. Mi skribis ĉion ĉi sur BC 010-01, estis Vilno baza, alinome BASIC-86 kaj fokuso. Eh.

Modernaj komencaj programistoj (ĝis 21 jaroj) verkas kalkulilojn kaj retejojn kiel siajn unuajn projektojn.

Inter reprezentantoj de la X-a generacio preskaŭ duono komencis verki kodon antaŭ la aĝo de 16 jaroj, multaj faris tion de 5 ĝis 10 jaroj (ĉefe tiuj, kiuj nun estas inter 35 kaj 45 jaroj). Estas pli-malpli klare kial: estis malmultaj informfontoj, kaj por fariĝi programisto oni ja devis tre deziri ĝin, kaj tiuj, kiuj vere volis ĝin, komencis programi frue. Tiuj, kiuj ne tiom volis ĝin, plej verŝajne nun havas alian profesion, do la bildo en sociologio estas ĝuste tia.

"Kie estas la junaj punkoj, kiuj forviŝos nin de sur la tero?"

La nunaj junaj kandidatoj nur 20% de la tempo komencas programi antaŭ la aĝo de 16 jaroj, la plimulto ie inter 16 kaj 20 jaroj. Sed ankaŭ estas multe pli facile por ili lerni; nun ĝi estas multe pli alirebla.

trovoj

Mi ankoraŭ ne trovis konkretan respondon al la demando ĉu komencanta retejo-backend-programisto bezonas SQL hodiaŭ, sed mi korektis mian ideon pri la moderna loĝantaro de programistoj.

La sekva generacio de programistoj estas ordinaraj homoj, iel ili similas al la antaŭaj; la problemo pri loĝado nur ruinigis ilin. Ili kontentigas la postulon kreitan de dungantoj. La sojlo por eniri la profesion malpliiĝis pro pli oportunaj iloj kaj kadroj, kiuj permesas vin rapide atingi rezultojn. Pli da homoj nun fariĝas programistoj; la cifereca generacio (Generacio Z) vivas en teknologio ekde naskiĝo; por ili ĝi estas ofta profesio, ne pli malbona ol aliaj.

Tiuj, kiuj scias, ke L1 kaŝmemoro latenteco estas ~4 cikloj, kaj ke estas pli bone ne kraŝi kaŝmemorliniojn nenecese, iĝas pli malgrandaj kiel procento de la totala loĝantargrandeco. Tamen, ili ne devas zorgi pri akiro de laboro; iu, finfine, devas skribi malaltnivelajn aferojn kie ĝi ankoraŭ bezonas. Same, tiuj, kiuj havas profundajn fundamentajn sciojn pri sistema dezajno kaj akiris ĝin en sangaj praktikaj bataloj, kaj ne nur sekvas kargokulton, ne zorgu. Ĉar estos pli da homoj en teamoj, kiuj povas "nur skribi kodon" kaj "nur" uzi kadrojn, kaj por "eviti la turmentan doloron de jaroj pasigitaj sencele vivitaj" (c) ili devos esti ekvilibrigitaj de ĝuste tiaj homoj. .

Molaj kapabloj iom post iom migras de la kategorio de dezirinda al deviga (mi ne havas objektivajn datumojn por konfirmi tion, nur praktikan observadon). La nombro da programistoj kreskas, kaj ili ĉiuj devas esti direktitaj por atingi rezultojn, ĉu per rekta aŭ nerekta kontrolo, kaj ĝuste por tio necesas mildaj kapabloj.

"Enigu IT" ŝajnas al mi esti loka regiona rakonto, tipa por tiuj lokoj kie la enspezo de programisto signife diferencas de la enspezo de komparebla "ne-IT" specialisto. En Minsko, kie mi loĝas, ĉi tio ĝenerale estas amasa movado, ĉiutage mi vidas reklamojn por novaj kursoj pri kiel eniri la aviditan IT, kaj purigadkompanioj celas programistojn kun la mesaĝo "Ĉu vi komprenas la kodon en ĉi tiu bildo? Ĉi tio signifas, ke vi povas pagi ne purigi vian loĝejon, ni faros ĉion por vi." La sama afero ŝajne okazas en iu Hindio. Mi ankaŭ ne havas datumojn por pruvi tion.

Ĝenerale, laŭ mi, nenio minacas la loĝantaron de programistoj. Ne utilas babiladi pri tio, ke oni ne povas trovi verajn programistojn dum la tago, kaj ke kandidatoj tre ofte "scias nenion." Ili estas same inteligentaj kaj kapablaj, eble eĉ pli lertaj kaj kapablaj ol "veraj programistoj"; ili simple akiras la scion, kiun postulas de ili rapide kreskanta merkato kaj prokrastas por poste tion, kion ili ankoraŭ ne bezonis kaj ne alportos ĝuste profiton. nun. Ili lernos kiam ili bezonos, ĉar ili ankoraŭ volas lerni. Verŝajne, ne ĉiuj povos tion, sed ankaŭ ne ĉiuj bezonos ĝin; en antaŭvidebla estonteco, la merkato facile akceptos homojn, kiuj povas rapide kunmeti alian aplikan koncepton uzante iun kadron.

Nur registritaj uzantoj povas partopreni la enketon. Ensaluti, bonvolu.

Ĉu intervjuoj pri interreto-backender postulas SQL-scion?

  • Jes, mi postulas ĝin ĉar mi bezonas ĝin por laboro

  • Jes, mi faras, kvankam ĝi estas malofte necesa ĉe la laboro.

  • Ne, mi ne postulas ĝin, ni havas NoSQL

  • Ne, mi ne postulas ĝin, ORM faros ĉion

320 uzantoj voĉdonis. 230 uzantoj sindetenis.

fonto: www.habr.com

Aldoni komenton