«Ո՞ւր են երիտասարդ պանկերը, որոնք մեզ կջնջեն աշխարհի երեսից»:

Ես ինքս ինձ հարցրեցի Գրեբենշչիկովի ձևակերպման վերնագրում դրված էքզիստենցիալ հարցը համայնքներից մեկում քննարկման հերթական փուլից հետո այն մասին, թե արդյոք սկսնակ վեբ ծրագրավորողը կարիք ունի SQL գիտելիքի, թե արդյոք ORM-ն ամեն ինչ կանի ամեն դեպքում: Ես որոշեցի պատասխանը փնտրել մի փոքր ավելի լայն, քան պարզապես ORM-ի և SQL-ի մասին, և հիմնականում փորձեցի համակարգել, թե ովքեր են այն մարդիկ, ովքեր այժմ գնում են հարցազրույցների կրտսեր և միջին մակարդակի զարգացման պաշտոնների համար, որն է նրանց պատմությունը և ինչպիսի աշխարհ են նրանք: ապրում են. Ընդհանուր առմամբ, ես կարծիք ունեի, բայց այն ձևավորվել է աշխատանքի ընդունվելու անձնական փորձով և հստակորեն հարմարեցված տեղական շուկային։ Ընդհանուր առմամբ, հետաքրքիր դարձավ. Ահա թե ինչ գտանք.

Համաշխարհային մշակողների բնակչություն

Հարցին ինչ-որ կերպ մոտենալու համար ես որոշեցի սկսել՝ փնտրելով տվյալներ, թե քանի մշակող կա այսօր աշխարհում և ինչպես է այս բնակչությունը փոխվում ժամանակի ընթացքում:
Տարբեր աղբյուրների գնահատականներով թվերը տատանվում են 12-ից 30 միլիոն մարդու միջև: Որոշել է կանգ առնել տվյալները SlashData-ից, քանի որ նրանց մեթոդաբանությունը բավականին հավասարակշռված ու հարմար էր թվում իմ կարիքներին։ Իրենց գնահատման ժամանակ նրանք հաշվի են առել Github-ում հաշիվների և պահոցների քանակը, StackOverflow-ի հաշիվների քանակը, npm հաշիվները և պաշտոնական աղբյուրներից ստացված տվյալները ԱՄՆ-ում և Եվրոպայում զբաղվածության վերաբերյալ: Նրանք նաև ճշգրտել են ստացված թվերը՝ օգտագործելով իրենց սեփական 16 հետազոտությունները, որոնք ներառում էին մոտավորապես 20 մարդ յուրաքանչյուր հարցման համար:

SlashData-ի տվյալներով՝ 2018 թվականի չորրորդ եռամսյակում աշխարհում եղել է մոտավորապես 18.9 միլիոն ծրագրավորող, որոնցից 12.9 միլիոնը պրոֆեսիոնալ ծրագրավորողներ են, այսինքն՝ նրանք ապրում են ծրագրավորմամբ։ Նրանք, ովքեր ներկայումս պրոֆեսիոնալ ծրագրավորողներ չեն, այն մարդիկ են, ում համար ծրագրավորումը հոբբի է, գումարած նրանք, ովքեր ներկայումս սովորում են մասնագիտություն (տարբեր ուսանողներ և ինքնուսույց): Դե, այսինքն, ահա ինձ հետաքրքրող խմբի չափի մասին ակնարկ՝ 6 միլիոն մարդ։ Ճիշտն ասած, սա ավելին է, քան ես սպասում էի։

Երկրորդ անակնկալն ինձ համար ծրագրավորողների թվի աճի տեմպերն էր՝ 2017 թվականի երկրորդ եռամսյակից մինչև 2018 թվականի չորրորդ եռամսյակը 14.7-ից հասել է նշված 18.9 միլիոնի, կամ 21 թվականին աճել է 2018 տոկոսով։ Եթե ​​ինձ խնդրեին գնահատել ծրագրավորողների թվի աճի տեմպերը, ապա կասեի, որ այն տարեկան մոտ 5% է՝ տարեկան տեմպերի մի փոքր աճով։ Եվ այստեղ պարզվում է, որ այն կազմում է 20%:

Բացի այդ, SlashData-ի գնահատմամբ՝ մինչև 2030 թվականը բնակչությունը կհասնի 45 միլիոնի։ Հեշտ է պարզել, որ դա ենթադրում է տարեկան 8%-ից մի փոքր ավելի աճ, ոչ թե 20%, բայց դրանք վերաբերում են ինտերնետի ներթափանցումը հաշվի առնելու ճշգրտմանը (ներկայումս մոտ 57% ամբողջ աշխարհում): ըստ Statista-ի) և մի քանի այլ գործոններ, օրինակ՝ մեկ շնչի հաշվով մշակողների թիվը: Աշխարհագրորեն, ծրագրավորողների թիվն ամենաուժեղ աճում է Հնդկաստանում և Չինաստանում; ակնկալվում է, որ մինչև 2023 թվականը Հնդկաստանը ծրագրավորողների թվով կգերազանցի Միացյալ Նահանգներին (սա արդեն C# Անկյունի տվյալներ).

Ընդհանրապես ծրագրավորողներ շատ կլինեն, ոնց էլ նայես, որովհետեւ պահանջարկը մեծանում է։ Ի դեպ, պահանջարկի մասին.

Ի՞նչ պահանջարկ կա.

Պահանջարկը գնահատելու համար ես օգտագործել եմ HackerRank-ի տվյալները 2018 и 2019 տարի.

Ծրագրավորման լեզուների առումով JavaScript-ի, Python-ի և Java-ի ամենամեծ պահանջարկը գրեթե բոլոր ոլորտներում, բացառությամբ համակարգչային տեխնիկայի: Վերջինիս մեջ ամենամեծ պահանջարկը կա C/C++-ի համար, ինչը հասկանալի է, ապարատային նախագծերը դեռևս պահանջներ ունեն ռեսուրսի ինտենսիվության և համապատասխան ծրագրաշարի կատարման համար։

«Ո՞ւր են երիտասարդ պանկերը, որոնք մեզ կջնջեն աշխարհի երեսից»:

Շրջանակների առումով AngularJS-ը, Node.js-ը և React-ն ունեն ամենամեծ պահանջարկը, և նրանք ունեն ամենամեծ բացը առաջարկի և պահանջարկի միջև, ինչը կարծես թե բացատրվում է JavaScript-ի էկոհամակարգի փոփոխման արագությամբ, քանի որ, օրինակ, ExpressJS-ի համար: , առաջարկն արդեն գերազանցում է պահանջարկը։

«Ո՞ւր են երիտասարդ պանկերը, որոնք մեզ կջնջեն աշխարհի երեսից»:

Իրավասությունների առումով գործատուները թեկնածուներից հիմնականում ակնկալում են խնդիրների լուծման հմտություններ: Գործատուների մոտ 95%-ը նշում է այս հմտությունները որպես կարևոր: Երկրորդ տեղում է ծրագրավորման լեզվի իմացությունը՝ 56%։ Ի դեպ, ալգորիթմների, տվյալների կառուցվածքների և այլ համակարգչային գիտությունների հիմնարար գիտելիքների հետ ընդհանրապես սահման չկա, կա՛մ այն ​​չկար հարցաշարում, կա՛մ ակադեմիական գիտելիքներն այլևս չեն պահանջվում մեծ մասշտաբով։

Տվյալների բազայի ձևավորումն անհրաժեշտ է մինչև 23.2 հոգի ունեցող ընկերությունների 100%-ին և 18.8 հոգուց ավելի ընկերությունների 1000%-ին: Այո, կարծես թե խոսքը ORM-ի և SQL-ի մասին է: Տրամաբանական, IMHO, բացատրությունն այն է, որ խոշոր ընկերություններում կա DBA-ի հատուկ դեր, որը պատասխանատու է այս ասպեկտի համար, և, հետևաբար, հնարավոր է մեղմել ծրագրավորողների պահանջները և ավելի արագ վարձել: Սակայն System Design-ի դեպքում դա հակառակն է՝ 37.0% փոքրերում, 44.1% խոշորներում: Թվում է, թե խոշորները պետք է ունենան նվիրված ճարտարապետներ, բայց գուցե նրանք պարզապես չեն կարողանում ծածկել ստեղծվող համակարգերի քանակը։ Կամ նույն հիմնարար ալգորիթմներն ու տվյալների կառուցվածքները դրվում են System Design-ի մեջ, հետո մի քիչ ավելի պարզ է դառնում։

Փոքր ընկերություններին ավելի ու ավելի քիչ է անհրաժեշտ Framework Proficiency վերը նշված System Design-ը, որից մենք կարող ենք նավապետի եզրակացությունը անել, որ ստարտափների համար կարևոր է հնարավորինս արագ գործարկել ինչ-որ կերպ աշխատող արտադրանք, իսկ վաղը կլինի վաղը:

«Ո՞ւր են երիտասարդ պանկերը, որոնք մեզ կջնջեն աշխարհի երեսից»:

Ի՞նչ են սովորում ուսանողները:

Այստեղ ես հիմնվեցի մեկ այլ տվյալների վրա HackerRank հետազոտություն.
Կարևոր է հաշվի առնել, որ չնայած այն հանգամանքին, որ ծրագրավորումն այս կամ այն ​​ձևով դասավանդվում է բուհերում (նկատի ունեմ համակարգչային գիտություն մասնագիտությունները), հարցվածների կեսից ավելին ասել է, որ իրենք նույնպես զբաղվում են ինքնակրթությամբ:

Ժամանակակից ուսանողները նախընտրում են սովորել YouTube-ից, մինչդեռ տարեց մշակողները հակված են դեպի ձեռնարկներ և գրքեր: Երկուսն էլ ակտիվորեն օգտագործում են StackOverflow-ը։ Ես դա բացատրում եմ նրանով, որ տեսանյութը ծանոթ մեդիա ալիք է Z սերնդի համար, մինչդեռ Y սերնդի ներկայացուցիչները դեռևս գտնվում են առանց բլոգերների դարաշրջանում:

Նրանք սովորեցնում են այն, ինչ պահանջված է գործատուների կողմից՝ JavaScript, Java, Python։ Նրանք նշում են, որ գիտեն C/C++, բայց դա հավանաբար այն պատճառով է, որ այս լեզուներն օգտագործվում են համալսարաններում դասավանդելու համար: Նրանք դասավանդում են JS շրջանակներ, բայց պահանջարկը զգալիորեն ավելի բարձր է, քան առաջարկը, ուստի, ըստ երևույթին, նրանք ակտիվորեն սովորում են իրենց առաջին աշխատանքը գտնելուց հետո:

«Ո՞ւր են երիտասարդ պանկերը, որոնք մեզ կջնջեն աշխարհի երեսից»:

Ընդհանուր առմամբ, ինչպես սպասվում էր, սովորեցնում են այն, ինչ պահանջված է։

Ուսանողները մասնագիտական ​​աճ են ակնկալում իրենց առաջին աշխատանքից, աշխատանք-կյանքի հավասարակշռությունը երկրորդ տեղում է (որոշ երկրներում առաջին տեղում), իսկ հետաքրքիր առաջադրանքները՝ երրորդ:

Մշակողների բնակչության դինամիկան ըստ ծրագրավորման լեզուների և ծրագրաշարի տեսակների

«Ո՞ւր են երիտասարդ պանկերը, որոնք մեզ կջնջեն աշխարհի երեսից»:

Վեբ հավելվածները առաջին տեղում են՝ մոտ 16.9 միլիոն մշակողներով: Սա կրկին SlashData-ն է: Հաջորդը Backend Services-ն է (13.6 մլն), բջջային հավելվածները (13.1 մլն) և աշխատասեղանները (12.3 մլն): AR/VR և IoT ոլորտներն աստիճանաբար դառնում են ժողովրդականություն, AI/ML/Data Science-ը զգալիորեն աճել է վերջին երկու տարիների ընթացքում:

Javascript-ն ամենաարագ աճում է, նրա համայնքն արդեն ամենամեծն է՝ միայն 2018 թվականին աճելով 2.5 միլիոնով: Նրանք նույնիսկ փորձում են դրանում գրել IoT և ML հատվածներում։
Python-ն աճել է 2018 միլիոնով 2.2 թվականին՝ շնորհիվ ML-ի աճող ժողովրդականության, որտեղ այն ավանդաբար ուժեղ է, ինչպես նաև ուսուցման հեշտության և լեզվի հարմարության շնորհիվ:

Java-ն, C/C++-ը և C#-ն աճում են ավելի դանդաղ տեմպերով, քան մշակողների ընդհանուր բնակչությունը: Նրանք այժմ հազվադեպ են ծրագրավորման լեզու, որով մարդիկ ընտրում են սկսել: Այստեղ մշակողների պահանջարկը քիչ թե շատ հավասարակշռված է առաջարկի հետ։ Ես կարծում եմ, որ Java-ն ավելի դանդաղ կզարգանա, եթե չլիներ Android-ը:

PHP-ն վեբ հավելվածների ծրագրավորման երկրորդ ամենահայտնի լեզուն է, և այն նույնպես զգալիորեն աճում է (32 թվականին 2018%-ով): Նրա համայնքը գնահատվում է 5.9 միլիոն ծրագրավորող: Չնայած PHP-ի բևեռացնող համբավին, այն բավականին հեշտ է սովորել և լայնորեն կիրառել:

Ինչպե՞ս են սովորում այսօրվա երիտասարդ թեկնածուները՝ համեմատած նախորդ սերունդների հետ։

Կրկին HackerRank-ի տվյալները: Նրանք, ովքեր այժմ 38-ից 53 տարեկան են, որպես իրենց առաջին նախագծերը նշում են խաղերը:

Ի դեպ, հաստատում եմ, որ իմ առաջին քիչ թե շատ աշխատանքային նախագիծը եղել է «tic-tac-toe» մինչև հինգ անընդմեջ՝ անսահմանափակ դաշտով, երկրորդը՝ 15-անոց խաղ: Այս ամենը գրել եմ. 010-01 մ.թ.ա, կար Վիլնյուսի հիմնական, aka BASIC-86 և կիզակետային: Էհ.

Ժամանակակից սկսնակ ծրագրավորողները (մինչև 21 տարեկան) որպես առաջին նախագծեր գրում են հաշվիչներ և կայքեր։

X սերնդի ներկայացուցիչների մոտ գրեթե կեսը սկսել է ծածկագիր գրել մինչև 16 տարեկանը, շատերը դա արել են 5-ից 10 տարեկանում (հիմնականում նրանք, ովքեր այժմ 35-ից 45 տարեկան են): Քիչ թե շատ պարզ է, թե ինչու. տեղեկատվության աղբյուրները քիչ էին, և ծրագրավորող դառնալու համար իսկապես պետք էր դա շատ ցանկանալ, իսկ նրանք, ովքեր իսկապես դա ուզում էին, սկսեցին ծրագրավորել վաղ: Նրանք, ովքեր այդքան չէին ուզում, ամենայն հավանականությամբ, այժմ այլ մասնագիտություն ունեն, ուստի սոցիոլոգիայում պատկերը հենց այսպիսին է.

«Ո՞ւր են երիտասարդ պանկերը, որոնք մեզ կջնջեն աշխարհի երեսից»:

Այսօրվա երիտասարդ թեկնածուները միայն 20%-ն են սկսում ծրագրավորել մինչև 16 տարեկանը, մեծամասնությունը՝ 16-ից 20 տարեկանում: Բայց նրանց համար նաև շատ ավելի հեշտ է սովորել, հիմա շատ ավելի մատչելի է։

Արդյունքները

Ես դեռ չեմ գտել կոնկրետ պատասխան այն հարցին, թե արդյոք սկսնակ վեբ ծրագրավորողին այսօր պետք է SQL, բայց ես ուղղել եմ իմ պատկերացումը ծրագրավորողների ժամանակակից բնակչության մասին:

Կառուցապատողների հաջորդ սերունդը սովորական մարդիկ են, ինչ-որ առումով նման են նախորդներին, բնակարանային խնդիրը միայն փչացրել է նրանց։ Նրանք բավարարում են գործատուների կողմից ստեղծված պահանջարկը։ Մասնագիտություն մուտք գործելու շեմն ավելի ցածր է դարձել ավելի հարմար գործիքների և շրջանակների շնորհիվ, որոնք թույլ են տալիս արագ արդյունքի հասնել: Ավելի շատ մարդիկ այժմ դառնում են ծրագրավորողներ, թվային սերունդը (Z սերունդ) ծնված օրվանից ապրում է տեխնոլոգիայի մեջ, նրանց համար դա սովորական մասնագիտություն է, ոչ ավելի վատ, քան մյուսները:

Նրանք, ովքեր գիտեն, որ L1 քեշի հետաձգումը կազմում է ~4 ցիկլ, և որ ավելի լավ է չխաթարել քեշի տողերն անհարկի, դառնում են ավելի փոքր՝ որպես բնակչության ընդհանուր չափի տոկոս: Այնուամենայնիվ, նրանք չպետք է անհանգստանան աշխատանք գտնելու համար, ինչ-որ մեկը, ի վերջո, պետք է գրի ցածր մակարդակի բաներ, որտեղ դա դեռ անհրաժեշտ է: Նմանապես, նրանք, ովքեր ունեն խորը հիմնարար գիտելիքներ համակարգի նախագծման մեջ և ձեռք են բերել այն արյունալի գործնական մարտերում և պարզապես չեն հետևում բեռների պաշտամունքին, չպետք է անհանգստանան: Քանի որ թիմերում ավելի շատ մարդիկ կլինեն, ովքեր կարող են «ուղղակի գրել կոդ» և «ուղղակի» օգտագործել շրջանակներ, և որպեսզի «խուսափեն աննպատակ ապրած տարիների տանջալից ցավից» (գ) նրանք պետք է հավասարակշռված լինեն հենց այդպիսի մարդկանց կողմից։ .

Փափուկ հմտությունները ցանկալիի կատեգորիայից աստիճանաբար անցնում են պարտադիրի (սա հաստատելու համար օբյեկտիվ տվյալներ չունեմ, ուղղակի գործնական դիտարկում): Ծրագրավորողների թիվն աճում է, և նրանց բոլորին պետք է ուղղորդել արդյունքի հասնելու համար՝ կա՛մ ուղղակի, կա՛մ անուղղակի հսկողության միջոցով, և հենց դրա համար են անհրաժեշտ փափուկ հմտությունները:

«Enter IT»-ը ինձ թվում է տեղական տարածաշրջանային պատմություն է, որը բնորոշ է այն վայրերին, որտեղ ծրագրավորողի եկամուտը զգալիորեն տարբերվում է համեմատելի «ոչ ՏՏ» մասնագետի եկամուտներից: Մինսկում, որտեղ ես ապրում եմ, սա ընդհանուր առմամբ զանգվածային շարժում է, ամեն օր ես տեսնում եմ նոր դասընթացների գովազդներ, թե ինչպես մտնել բաղձալի ՏՏ, և մաքրող ընկերությունները թիրախավորում են ծրագրավորողներին՝ «Հասկանու՞մ եք այս նկարի կոդը: Սա նշանակում է, որ դուք կարող եք ձեզ թույլ տալ չմաքրել ձեր բնակարանը, մենք ձեզ համար ամեն ինչ կանենք»։ Նույնը, ըստ երևույթին, տեղի է ունենում որոշ Հնդկաստանում։ Ես էլ դա ապացուցող տվյալներ չունեմ։

Ընդհանուր առմամբ, իմ կարծիքով, ծրագրավորողների բնակչությանը ոչինչ չի սպառնում։ Անիմաստ է բամբասել այն մասին, որ դուք չեք կարող օրվա ընթացքում իրական ծրագրավորողներ գտնել, և որ թեկնածուները շատ հաճախ «ոչինչ չգիտեն»: Նրանք նույնքան խելացի և ընդունակ են, գուցե նույնիսկ ավելի խելացի և ավելի ընդունակ, քան «իսկական ծրագրավորողները», նրանք պարզապես ձեռք են բերում այն ​​գիտելիքը, որ արագ աճող շուկան պահանջում է իրենցից և հետաձգում են այն, ինչ դեռ իրենց պետք չէր և ճիշտ օգուտ չի բերի։ հիմա. Նրանք կսովորեն, երբ պետք լինի, քանի որ դեռ ուզում են սովորել։ Հավանաբար, ոչ բոլորն են դա ունակ, բայց ոչ բոլորին դա պետք կգա, տեսանելի ապագայում շուկան հեշտությամբ կընդունի մարդկանց, ովքեր կարող են արագ հավաքել այլ հավելվածի հայեցակարգ՝ օգտագործելով ինչ-որ շրջանակ:

Հարցմանը կարող են մասնակցել միայն գրանցված օգտվողները։ Մուտք գործել, խնդրում եմ:

Արդյո՞ք վեբ աջակցող հարցազրույցները պահանջում են SQL գիտելիքներ:

  • Այո, ես դա պահանջում եմ, քանի որ դա ինձ պետք է աշխատանքի համար

  • Այո, ես անում եմ, չնայած այն հազվադեպ է անհրաժեշտ աշխատավայրում:

  • Ոչ, ես դա չեմ պահանջում, մենք ունենք NoSQL

  • Ոչ, ես դա չեմ պահանջում, ORM-ն ամեն ինչ կանի

Քվեարկել է 320 օգտատեր։ 230 օգտատեր ձեռնպահ է մնացել։

Source: www.habr.com

Добавить комментарий