"Nasaan ang mga batang punk na lilipol sa atin sa balat ng lupa?"

Tinanong ko sa sarili ko ang eksistensyal na tanong na inilagay sa pamagat sa pormulasyon ni Grebenshchikov pagkatapos ng isa pang round ng talakayan sa isa sa mga komunidad tungkol sa kung kailangan ng isang nagsisimulang web backend developer ng kaalaman sa SQL, o kung gagawin pa rin ng ORM ang lahat. Napagpasyahan kong hanapin ang sagot nang medyo mas malawak kaysa sa tungkol lamang sa ORM at SQL, at karaniwang subukang i-systematize kung sino ang mga tao na pupunta ngayon para sa mga panayam para sa junior at mid-level na mga posisyon sa pag-unlad, kung ano ang kanilang kasaysayan at kung anong mundo sila manirahan. Sa pangkalahatan, mayroon akong opinyon, ngunit ito ay nabuo sa pamamagitan ng personal na karanasan sa pag-hire at malinaw na nababagay sa lokal na merkado. Sa pangkalahatan, naging kawili-wili ito. Narito ang aming nahanap.

Populasyon ng pandaigdigang developer

Upang kahit papaano matugunan ang tanong, nagpasya akong magsimula sa pamamagitan ng paghahanap ng data sa kung gaano karaming mga developer ang mayroon sa mundo ngayon at kung paano nagbabago ang populasyon na ito sa paglipas ng panahon.
Ang mga pagtatantya sa iba't ibang mapagkukunan ay naglalagay ng mga numero sa hanay mula 12 hanggang 30 milyong tao. Nagpasya na huminto sa data mula sa SlashData, dahil ang kanilang pamamaraan ay tila medyo balanse at angkop para sa aking mga pangangailangan. Sa kanilang pagtatasa, isinaalang-alang nila ang bilang ng mga account at repository sa Github, ang bilang ng mga account sa StackOverflow, npm account at data mula sa mga opisyal na mapagkukunan tungkol sa trabaho sa US at Europe. Inayos din nila ang mga resultang numero gamit ang kanilang sariling 16 na pag-aaral, na kinabibilangan ng humigit-kumulang 20 katao para sa bawat survey.

Ayon sa SlashData, mayroong humigit-kumulang 2018 milyong developer sa mundo noong ikaapat na quarter ng 18.9, 12.9 milyon sa kanila ay mga propesyonal na developer, iyon ay, gumagawa sila ng isang buhay na programming. Ang mga hindi kasalukuyang propesyonal na developer ay mga taong libangan ang programming, kasama ang mga kasalukuyang nag-aaral ng isang propesyon (iba't ibang estudyante at self-taught). Well, iyon ay, narito ang isang pahiwatig sa laki ng grupo na interesado ako - 6 na milyong tao. Sa totoo lang, ito ay higit pa sa inaasahan ko.

Ang pangalawang sorpresa para sa akin ay ang rate ng paglago ng bilang ng mga programmer: mula sa ikalawang quarter ng 2017 hanggang sa ikaapat na quarter ng 2018, tumaas ito mula 14.7 hanggang sa nabanggit na 18.9 milyon, o tumaas ng 21% noong 2018! Kung hihilingin sa akin na tantyahin ang rate ng paglago ng bilang ng mga programmer, sasabihin ko na ito ay humigit-kumulang 5% bawat taon na may bahagyang pagtaas sa rate taun-taon. At dito lumalabas na kasing dami ng 20%.

Bukod pa rito, tinatantya ng SlashData na ang populasyon ay aabot sa 2030 milyon pagsapit ng 45. Madaling malaman na nagpapahiwatig ito ng paglago ng higit sa 8% taun-taon, hindi 20%, ngunit tumutukoy sila sa isang pagsasaayos sa account para sa internet penetration (kasalukuyang mga 57% sa buong mundo). ayon sa Statista) at ilang iba pang salik, gaya ng bilang ng mga developer per capita. Sa heograpiya, ang bilang ng mga developer ay higit na lumalaki sa India at China; Inaasahang aabutan ng India ang Estados Unidos sa bilang ng mga developer sa 2023 (ito ay C# Corner data).

Sa pangkalahatan, magkakaroon ng maraming programmer, anuman ang iyong pagtingin dito, dahil lumalaki ang demand. Sa pamamagitan ng paraan, tungkol sa demand.

Ano ang hinihiling?

Upang matantya ang demand, ginamit ko ang data ng HackerRank para sa 2018 ΠΈ 2019 taon.

Sa mga tuntunin ng mga programming language, ang pinakamalaking pangangailangan ay para sa JavaScript, Python at Java sa halos lahat ng mga industriya, maliban sa Computer Hardware. Sa huli, ang pinakamalaking pangangailangan ay para sa C/C++, na mauunawaan; ang mga proyekto ng hardware ay mayroon pa ring mga kinakailangan para sa intensity ng mapagkukunan at pagganap ng kaukulang software.

"Nasaan ang mga batang punk na lilipol sa atin sa balat ng lupa?"

Sa mga tuntunin ng mga balangkas, ang AngularJS, Node.js at React ay nasa pinakamalaking pangangailangan, at sila ang may pinakamalaking agwat sa pagitan ng supply at demand, na tila ipinaliwanag sa bilis ng pagbabago ng JavaScript ecosystem, dahil halimbawa, para sa ExpressJS , lumampas na ang supply sa demand.

"Nasaan ang mga batang punk na lilipol sa atin sa balat ng lupa?"

Sa mga tuntunin ng mga kakayahan, pangunahing inaasahan ng mga tagapag-empleyo ang mga kasanayan sa Paglutas ng Problema mula sa mga kandidato. Humigit-kumulang 95% ng mga tagapag-empleyo ang nagbanggit ng mga kasanayang ito bilang mahalaga. Nasa pangalawang pwesto ang Programming Language Proficiency na may 56%. Sa pamamagitan ng paraan, walang linya sa lahat na may pangunahing kaalaman sa mga algorithm, istruktura ng data at iba pang Computer Science, alinman ito ay wala sa talatanungan, o hindi na kinakailangan ang kaalaman sa akademiko sa isang malaking sukat.

Ang Disenyo ng Database ay kailangan ng 23.2% ng mga kumpanyang wala pang 100 katao, at 18.8% ng mga kumpanyang higit sa 1000 katao. Oo, mukhang tungkol ito sa ORM at SQL! Ang lohikal, IMHO, paliwanag ay na sa malalaking kumpanya ay may nakalaang papel ng DBA, na responsable para sa aspetong ito, at samakatuwid posible na mapahina ang mga kinakailangan para sa mga developer at umarkila nang mas mabilis. Ngunit sa Disenyo ng System ito ay kabaligtaran: 37.0% sa maliliit, 44.1% sa malalaking. Tila ang mga malalaki ay dapat magkaroon ng mga dedikadong arkitekto, ngunit marahil ay hindi nila kayang masakop ang bilang ng mga system na nabuo. O ang parehong mga pangunahing algorithm at istruktura ng data ay inilalagay sa Disenyo ng System, pagkatapos ay nagiging mas malinaw ito ng kaunti.

Ang mga maliliit na kumpanya ay nangangailangan ng Framework Proficiency nang higit pa at mas kaunti ang nabanggit na Disenyo ng Sistema, kung saan maaari nating makuha ang konklusyon ng kapitan na mahalaga para sa mga startup na maglunsad ng isang gumaganang produkto sa anumang paraan nang mabilis hangga't maaari, at bukas ay bukas.

"Nasaan ang mga batang punk na lilipol sa atin sa balat ng lupa?"

Ano ang natutunan ng mga mag-aaral?

Dito ako umasa sa data mula sa isa pa Pananaliksik sa HackerRank.
Mahalagang isaalang-alang na sa kabila ng katotohanan na ang programming sa isang form o iba pa ay itinuturo sa mga unibersidad (I mean Computer Science majors), higit sa kalahati ng mga na-survey ang nagsabi na sila ay nakikibahagi din sa self-education.

Mas gusto ng mga modernong mag-aaral na matuto mula sa YouTube, habang ang mga nakatatandang developer ay nahilig sa mga tutorial at aklat. Pareho silang aktibong gumagamit ng StackOverflow. Iniuugnay ko ito sa katotohanan na ang video ay isang pamilyar na channel ng media para sa henerasyong Z, habang ang mga kinatawan ng henerasyong Y ay nasa panahon pa rin na walang mga blogger.

Itinuturo nila kung ano ang hinihiling ng mga employer: JavaScript, Java, Python. Ipinapahiwatig nila na alam nila ang C/C++, ngunit ito ay marahil dahil ang mga wikang ito ay ginagamit para sa pagtuturo sa mga unibersidad. Nagtuturo sila ng mga framework ng JS, ngunit mas mataas ang demand kaysa sa supply, kaya tila aktibong natututo sila pagkatapos mahanap ang kanilang unang trabaho.

"Nasaan ang mga batang punk na lilipol sa atin sa balat ng lupa?"

Sa pangkalahatan, tulad ng inaasahan, itinuturo nila kung ano ang hinihiling.

Inaasahan ng mga mag-aaral ang propesyonal na paglago mula sa kanilang unang trabaho, ang balanse sa trabaho-buhay ay pumapangalawa (sa ilang mga bansa muna), at ang mga kagiliw-giliw na gawain ay pumapangatlo.

Ang dinamika ng populasyon ng developer sa pamamagitan ng mga programming language at mga uri ng software

"Nasaan ang mga batang punk na lilipol sa atin sa balat ng lupa?"

Ang mga web application ay nasa unang lugar na may tinatayang 16.9 milyong developer. Ito na naman ang SlashData. Susunod ay ang Backend Services (13.6 milyon), mobile application (13.1 milyon) at desktop (12.3 milyon). Ang mga sektor ng AR/VR at IoT ay unti-unting nagiging popular, ang AI/ML/Data Science ay lumago nang husto sa nakalipas na dalawang taon.

Ang Javascript ay pinakamabilis na lumalago; ang komunidad nito ay ang pinakamalaki, lumaki ng 2018 milyon sa 2.5 lamang. Sinusubukan pa nilang magsulat dito sa sektor ng IoT at ML.
Ang Python ay lumago ng 2018 milyon noong 2.2 dahil sa lumalagong katanyagan ng ML, kung saan ito ay tradisyonal na malakas, gayundin dahil sa kadalian ng pag-aaral at kaginhawahan ng wika.

Ang Java, C/C++ at C# ay lumalaki sa mas mabagal na rate kaysa sa pangkalahatang populasyon ng developer. Bihira na sila ngayon ang programming language na pinipili ng mga tao na magsimula. Ang demand para sa mga developer dito ay halos balanse sa supply. Sa tingin ko, mas mabagal ang paglaki ng Java kung hindi para sa Android.

Ang PHP ay ang pangalawang pinakasikat na web application programming language at ito ay lumalaki din nang malaki (sa pamamagitan ng 32% noong 2018). Ang komunidad nito ay tinatayang nasa 5.9 milyong developer. Sa kabila ng polarizing na reputasyon ng PHP, medyo madali itong matutunan at malawakang ginagamit.

Paano nag-aaral ang mga kabataang kandidato ngayon kumpara sa mga nakaraang henerasyon?

Data ng HackerRank muli. Ang mga nasa pagitan na ngayon ng 38 at 53 ay naglilista ng mga laro bilang kanilang mga unang proyekto.

Oo nga pala, kinukumpirma ko na ang una kong mas marami o mas kaunting gumaganang proyekto ay "tic-tac-toe" hanggang sa limang sunod-sunod na may walang limitasyong field, ang pangalawa ay isang laro ng 15. Isinulat ko ang lahat ng ito sa BC 010-01, nagkaroon Pangunahing Vilnius, aka BASIC-86 at focal. Eh.

Ang mga modernong baguhan na programmer (hanggang 21 taong gulang) ay sumusulat ng mga calculator at website bilang kanilang mga unang proyekto.

Sa mga kinatawan ng henerasyon X, halos kalahati ay nagsimulang magsulat ng code bago ang edad na 16, marami ang gumawa nito mula 5 hanggang 10 taong gulang (pangunahin ang mga nasa pagitan na ngayon ng 35 at 45 taong gulang). Ito ay higit pa o hindi gaanong malinaw kung bakit: kakaunti ang mga mapagkukunan ng impormasyon, at upang maging isang programmer ay kailangan mo talagang gusto ito, at ang mga talagang gusto nito ay nagsimulang magprograma nang maaga. Ang mga hindi nagnanais nito ay malamang na ngayon ay may ibang propesyon, kaya ang larawan sa sosyolohiya ay eksaktong ganito.

"Nasaan ang mga batang punk na lilipol sa atin sa balat ng lupa?"

Ang mga kabataang kandidato ngayon ay 20% lamang ng oras ang nagsisimula ng programming bago ang edad na 16, ang karamihan ay nasa pagitan ng 16 at 20. Ngunit ito ay mas madali para sa kanila na matuto; ngayon ito ay mas madaling ma-access.

Natuklasan

Hindi pa rin ako nakakahanap ng konkretong sagot sa tanong kung ang isang nagsisimulang web backend developer ay nangangailangan ng SQL ngayon, ngunit naitama ko ang aking ideya ng modernong populasyon ng mga programmer.

Ang mga susunod na henerasyon ng mga developer ay mga ordinaryong tao, sa ilang mga paraan ay kahawig nila ang mga nauna; sinira lamang sila ng problema sa pabahay. Natutugunan nila ang pangangailangan na nilikha ng mga employer. Ang threshold para sa pagpasok sa propesyon ay naging mas mababa dahil sa mas maginhawang mga tool at frameworks na nagbibigay-daan sa iyo upang mabilis na makamit ang mga resulta. Mas maraming tao na ngayon ang nagiging programmer; ang digital generation (Generation Z) ay nabubuhay na sa teknolohiya mula nang ipanganak; para sa kanila ito ay isang pangkaraniwang propesyon, hindi mas masahol pa kaysa sa iba.

Ang mga nakakaalam na ang L1 cache latency ay ~4 na cycle, at mas mabuting huwag mag-crash ng mga linya ng cache nang hindi kinakailangan, ay nagiging mas maliit bilang isang porsyento ng kabuuang laki ng populasyon. Gayunpaman, hindi sila dapat mag-alala tungkol sa pagkuha ng trabaho; ang isang tao, pagkatapos ng lahat, ay kailangang magsulat ng mga bagay na mababa ang antas kung saan kailangan pa rin ito. Gayundin, ang mga may malalim na pangunahing kaalaman sa disenyo ng system at nakuha ito sa madugong praktikal na mga laban, at hindi lamang sumusunod sa isang kulto ng kargamento, ay hindi dapat mag-alala. Dahil magkakaroon ng mas maraming mga tao sa mga koponan na maaaring "magsulat lamang ng code" at "lamang" gumamit ng mga balangkas, at upang "iwasan ang masakit na sakit ng mga taon na ginugol nang walang layunin" (c) kailangan nilang balansehin ang mga ganoong tao. .

Ang mga malambot na kasanayan ay unti-unting lumilipat mula sa kategorya ng kanais-nais hanggang sa mandatory (Wala akong layunin na data upang kumpirmahin ito, praktikal na pagmamasid lamang). Ang bilang ng mga programmer ay lumalaki, at lahat sila ay kailangang idirekta upang makamit ang mga resulta, alinman sa pamamagitan ng direkta o hindi direktang kontrol, at ito mismo ang kailangan ng mga soft skill.

Ang β€œEnter IT” ay para sa akin ay isang lokal na kuwentong pangrehiyon, karaniwan para sa mga lokasyong iyon kung saan malaki ang pagkakaiba ng kita ng isang programmer sa kita ng isang maihahambing na espesyalista na β€œhindi IT”. Sa Minsk, kung saan ako nakatira, ito ay karaniwang isang kilusang masa, araw-araw akong nakakakita ng mga patalastas para sa mga bagong kurso kung paano makapasok sa hinahangad na IT, at ang mga kumpanya ng paglilinis ay nagta-target ng mga programmer na may mensaheng "Naiintindihan mo ba ang code sa larawang ito? Ibig sabihin kaya mong hindi linisin ang apartment mo, gagawin namin ang lahat para sa iyo.” Ang parehong bagay ay tila nangyayari sa ilang India. Wala rin akong data para patunayan ito.

Sa pangkalahatan, sa aking opinyon, walang nagbabanta sa populasyon ng mga programmer. Walang kwenta ang pagbibiro tungkol sa katotohanang hindi mo mahahanap ang mga tunay na programmer sa araw, at ang mga kandidato ay madalas na "walang alam." Pareho silang matalino at may kakayahan, marahil ay mas matalino pa at mas may kakayahan kaysa sa "mga tunay na programmer"; nakukuha lang nila ang kaalaman na kinakailangan sa kanila ng mabilis na lumalagong merkado at ipagpaliban ang hindi pa nila kailangan at hindi na maghahatid ng benepisyo nang tama. ngayon. Matututo sila kapag kailangan nila, dahil gusto pa rin nilang matuto. Malamang, hindi lahat ay makakaya nito, ngunit hindi rin lahat ay mangangailangan nito; sa nakikinita na hinaharap, ang merkado ay madaling tanggapin ang mga tao na maaaring mabilis na magsama-sama ng isa pang konsepto ng aplikasyon gamit ang ilang balangkas.

Ang mga rehistradong user lamang ang maaaring lumahok sa survey. Mag-sign in, pakiusap

Nangangailangan ba ng kaalaman sa SQL ang mga panayam sa web backender?

  • Oo, hinihiling ko ito dahil kailangan ko ito para sa trabaho

  • Oo, ginagawa ko, kahit na bihirang kailanganin ito sa trabaho.

  • Hindi, hindi ko ito kailangan, mayroon kaming NoSQL

  • Hindi, hindi ko ito kailangan, gagawin ng ORM ang lahat

320 user ang bumoto. 230 na user ang umiwas.

Pinagmulan: www.habr.com

Magdagdag ng komento