Մոտ մեկ տարի առաջ ես սկսեցի հարցազրույցներ վերցնել մարդկանցից՝ ճակատային դիրքերի համար: Մենք աշխատում ենք «ժամանակակից» ստեկով (react, graphql, node և այլն), բայց գիտեինք, որ դժվար կլինի գտնել այս փորձառությամբ մարդկանց: Մարդկանց React-ից օգտվելու ուսուցումը խնդիր չէ, բայց մենք դեռևս ակնկալում ենք JavaScript-ի որոշակի ըմբռնում: Մենք հանդիպեցինք մարդկանց, ովքեր օգտագործում են JavaScript, բայց երբեք չեն խորացել լեզուն: Ոմանք պարզապես հայտնաբերում են լեզուն, շատերը գալիս են այլ լեզուներից և սովորում են օգտագործել JS-ը:

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

Ես սիրում եմ սկսել «Ի՞նչ է խոստումը» հարցադրումով: Հաճախ անձը սկսում է խոսել HTTP զանգերի, առբերման կամ Հանգստանալու մասին: Դա կարող է նշան լինել, որ ինչ-որ մեկը օգտագործում է, բայց հստակ չի հասկանում իր նպատակը: Ես ակնկալում եմ, որ մարդիկ ինչ-որ ձևով ըմբռնեն այն գործիքը, որն օգտագործում են, և չկարողանալը տարբերակել գործիքի և դրա օգտագործման միջև, լավ չէ: Ես նաև հարցնում եմ զրուցակցին, արդյոք նրանք գիտե՞ն այլ օրինաչափություններ/հատկանիշներ, որոնք կարող են օգտագործվել խոստումների փոխարեն (օրինակ՝ հետ կանչեր, համաժամեցում/սպասում, դիտարկելի): Այն, ինչ ինձ դուր է գալիս այս շարունակության հետ կապված, այն է, որ այն ցույց է տալիս, որ հարցազրույցի մասնակիցը հետևում է JavaScript-ի էվոլյուցիային: Օրինակ, ես չեմ կարծում, որ կարևոր է, թե ինչպես օգտագործել դիտելիները, բայց իմանալը, որ դրանք կան և ինչպես են դրանք աշխատում, առնվազն հետաքրքրասիրության նշան է:

Կախված նրանից, թե ինչպես են անցել նախորդ հարցերը, ես կարող եմ ավելի հեշտ գնալ, թե ոչ: Եթե ​​անձը չպատասխանեց, ավելի հեշտին հետևելը մի քանի առավելություններ ունի: Եթե ​​անձը նույնպես չի կարող պատասխանել, դա ուժեղ նշան է, որ անձը նոր է հայտնաբերում JavaScript-ը: Մյուս կողմից, շատ ժամանակ նրանք պատասխաններ կգտնեն, ինչը նրանց ավելի ինքնավստահ կդարձնի։ Հարցազրույց սկսելը այնպիսի հարցերի հոսքով, որոնց չես կարող պատասխանել, դժվար է բարոյականության համար:

Որպես հեշտ հարց, ես խնդրում եմ նշել Array-ի նախատիպի որոշ գործառույթներ (որոշ, կրճատել, քարտեզագրել և այլն) և ինչպես են դրանք աշխատում, ES2015/2016-ի առանձնահատկությունները (ես հաճախ նաև հարցնում եմ, թե արդյոք const-ով նշանակված օբյեկտը փոփոխական է: և տարբերությունը սլաքի ֆունկցիայի և սովորականի միջև (հուշում, սա է)):

Ես ունեմ մի քանի «ավելի դժվար» հարցեր, և դրանցից շատերը կապված են «ինչպես է աշխատում լեզուն», այլ ոչ թե «ինչ է այս անհասկանալի JS API»: JS գրելու այնքան շատ եղանակներ կան, այնքան գրադարաններ և այնքան շատ API-ներ, որ ես չեմ կարծում, որ դրանք իմանալը (կամ ոչ) կարևոր է: Քիչ առաջ Twitter-ում մի թեմա կար, որտեղ հայտնի ավագ ծրագրավորողներն ասում էին, թե որոնք են հիմնական API-ները, որոնք նրանք ամեն օր Google-ում են կոդավորելիս: Ինձ համար դա կտրատված է և միաձուլված: Ես չեմ կարող հիշել տարբերությունը և ինչպես են դրանք աշխատում: Բայց արդյո՞ք դա իսկապես կարևոր է: Ես կարող եմ ստուգել այն երեսուն վայրկյանում:

Ես նաև լեզուների տարօրինակություններ էի խնդրում, բայց ավելի ու ավելի քիչ եմ համոզված, որ դա կարևոր է (օրինակ՝0.1 + 0.1 + 0.1 !== 0.3, typeof null === 'object'): Ոչ մի ուժեղ զգացում այդ մասին:

Հիմա եկել է ժամանակը ստուգելու, թե արդյոք զրուցակիցը հասկանում է, թե ինչպես է աշխատում լեզուն: Ո՞րն է գործառույթի շրջանակը (սա կարելի է ներկայացնել փակման վերաբերյալ հարցով): Ո՞րն է դրա համատեքստը (կամ ո՞րն է ֆունկցիայի կապի դերը): Ինչպե՞ս է աշխատում ժառանգությունը JavaScript-ում, և ինչպես է աշխատում նախատիպային շղթան: Ի՞նչ է միջոցառման պատվիրակումը/տարածումը: Ինչպե՞ս է գործում իրադարձությունների հանգույցը: Առաջին անգամ, երբ ինձ տրվեց նախորդ հարցը, ես հստակ չգիտեի, թե ուր գնամ կամ ինչ բացատրեմ: Այնուհետև հարցազրուցավարն ինձ հարցրեց, թե ինչ է տեղի ունենում, երբ կա ինչու անսահման օղակ (մի քիչ ճիշտ է): Այստեղ այն, ինչ մենք ուզում ենք հասկանալ, այն է, որ այն արգելափակում է հիմնական շարանը, ինչպես նաև արգելափակում է միջերեսը՝ կանխելով օգտվողի ցանկացած փոխազդեցություն:

Այս հարցերը շրջանակային ագնոստիկ են, և դրանք ցույց են տալիս, որ հարցվողը ցանկանում է հասկանալ, թե ինչու է JavaScript-ն աշխատում այս կերպ: Կարծում եմ, որ սա կրտսեր ծրագրավորողի «ներուժի» ամենաուժեղ նշաններից մեկն է, և թե որքան լավ են նրանք սովորելու նոր բաներ: Հատուկ փորձ ունենալը, կողմնակի նախագծերը, վերջին գրադարանների մասին տեղյակ լինելը լավ է, բայց հիմնականում ցույց է տալիս ազատ ժամանակ (ոչ բոլորը կարող են իրենց թույլ տալ աշխատել իրենց ազատ ժամանակի վրա, և ես դա չեմ ակնկալում իմ գործընկերներից):

Եթե ​​կարծում եք, որ ես ինչ-որ բան բաց եմ թողնում, կամ եթե գիտեք այլ հարցեր, ես ամբողջ ականջն եմ: Ինձ հետ կարող եք կապվել նաև twitter-ում։

Սկզբնապես հրապարակվել է medium.com-ում 2018 թվականի օգոստոսի 24-ին:

Օգուստին Լը Ֆևրի կողմից, խորհրդատու @EXTIA: