JAVASCRIPT ԾՐԱԳՐԱՎՈՐՈՂ. ԼԻՆԵԼ, ԹԵ՞ ՉԼԻՆԵԼ

Մաս 2


Նախորդ բլոգում մենք հանգամանալից զրույց ունեցանք փորձառու JS ծրագրավորողների հետ։ Արդյունքում հաջողվեց պարզել, թե ինչպես և ինչու նրանք մտան JavaScript-ի բազմաշերտ աշխարհ։
Շարունակելով զրույցն՝ այսօր մենք կխոսենք նույն մասնագետների հետ, բայց արդեն դժվարություններից ու սխալներից։ Անկասկած, սա նույնպես շատ արժեքավոր տեղեկատվություն է թե՛ սկսնակի, թե՛ արդեն որոշակի փորձ ունեցող ծրագրավորողի համար։


Հիմա, երբ որոշակի ճանապարհ եք անցել ոլորտում և կայացած մասնագետ եք, ի՞նչ խորհուրդներ կտաք այն մարդկանց, ովքեր դեռ նոր են կատարելու առաջին քայլերը ծրագրավորման աշխարհում։ 


Առաջին հերթին նշեմ, որ ծրագրավորումը պարզապես կոդ գրել չէ։ Իսկ ծրագրավորում սովորելը բնավ էլ անհնարին գորոծողություն չէ, ինչպես որ թվում է շատերին։ Սակայն իրականում լավ մասնագետ դառնալու համար կպահանջվի բավականին երկար ժամանակ և մեծ ծավալի աշխատանք։ Այս տեսակետից խորհուրդ կտամ կենտրոնանալ ոչ միայն կոնկրետ լեզվի առանձնահատկությունների վրա, այլ նաև փորձել հասկանալ «software development»-ի փուլերը՝ քո տեղն ու դերը այդ բոլոր փուլերում։ Հասկանալ՝ ինչ փոփոխություններ կարող ես առաջացնել քո գործունեությամբ։ Այսինքն՝ չսահմանափակվել միայն առանձին վերցրած լեզվի շրջանակներով, փոխարենը ցուցաբերել առավել ամբողջական մոտեցում։ Կառաջարկեի նաև խուսափել հանձնարարությունը մեխանիկորերեն կատարելու ոճից, այլ փորձել հասկանալ խնդրի էությունը, այնպես որ հնարավորինս քիչ անհայտներ մնան հենց քեզ մոտ։ Եվ անշուշտ, մշտապես զբաղվել ինքնակրթությամբ։

Մկրտիչ Մուրադյան (JavaScript Development Team Lead)


Սկսնակներին խորհուրդ կտամ շատ կարդալ՝ փորձելով հաճախակի լուծել գործնական խնդիրներ։ Ինչպես նաև ընտրել լավ մենթորի, ով կօգնի մասնագիտական ճիշտ ուղղություն ստանալ։ Դե, կամ էլ ընտրել այնպիսի ուսումնական կենտրոն, որն առաջարկում է մրցունակ, լավ մշակված դասընթաց և, որն ունակ է շուկայում մրցունակ մասնագետներ պատրաստել։

Մանվել Եղիազարյան  (Senior Software Engineer Live Scouting Team Lead)


Աշխատասիրությունը առաջնային է: Պարտադիր է նաև տիրապետել որևի «framework»-ի կամ «library»-ի, օրինակ՝ React, Angular, Node.js, Vue: Բացի հիմնական աշխատանքից, շատ կարևոր է ունենալ գիտելիքներ նաև այլ ոլորտներից, որպեսզի շուկայում պահանջված լինես, և հեշտությամբ կարողանաս անցնել հացրազրույցի փուլը։ Նշեմ մի քանիսը՝ Strict Тyping, CI/CD, Testing, Scrum/Kanban, Docker, Soft Skills։

Արմեն Բալդրյան (Senior Software Engineer)

 

Ապագա ծրագրավորողներին խորհուրդ կտամ ավելի շատ գրքեր կարդալ: Սա կարող է սկզբից մի քիչ բարդ թվալ, բայց միևնույն է պետք է շարունակել և փորձել առավելապես կենտրոնանալ JS-ի հիմնական հենասյունային գիտելիքների վրա։ Այսինքն՝ ոչ թե կանգ առնել լոկ գրադարանների կամ «framework»- երի վրա, այլ խորանալ հենց լեզվի հիմքերի ուսումնասիրության մեջ։

Սասուն Ստեփանյան (Senior Software Engineer)



Ըստ Ձեզ, որո՞նք են այն հիմնական գիտելիքները կամ հմտությունները, որոնք առավելապես կարևոր են որպես JS ծրագարվորող հաջողելու կամ աշխատաշուկայում պահանջված լինելու համար:

 

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

Կախված ոլորտից՝ գիտելիքների պահանջը կարող է լինել տարբեր, օրինակ՝ սերվերների հետ աշխատելիս (Node․js, Deno) միայն JS գիտելիքները երկարաժամկետ կտրվածքով բավարար չեն լինի։ Այս դեպքում անհրաժեշտ են արդեն բազաների, ֆայլ համակարգերի այլ «back-end» տեխնոլոգիաների մասով գիտելիքներ։

Մկրտիչ Մուրադյան  (JavaScript Development Team Lead)



Կարևոր է շատ աշխատել ու սովորել՝ չդադարել սերտել նոր նյութ։ Հետևել նոր տեխնոլոգիաներին ու մոտեցումներին։ Յուրացնել և զարգացնել «soft skill»-եր, որոնք ոչ պակաս կարևոր են այս ոլորտում։ Լինել աշխատասեր ու պատասխանատու։

Մանվել Եղիազարյան  (Senior Software Engineer Live Scouting Team Lead)



Կարևորը չկոտրվելն է։ Երբ դեռ «ջունիոր ես» ու նկատում ես, թե ինչպես են մյուս ծրագրավորողները շատ արագ լուծում խնդիրները՝ մտածում ես, որ ինքդ երբեք չես կարողանա նման կերպ վարվել, բայց ժամանակի ընթացքում՝ փորձի հետ, ամեն բան ընկնում է իր տեղը։ Պետք է պարզապես համբերատար գտնվել և աշխատել ինքդ քեզ վրա։

Արմեն Բալդրյան (Senior Software Engineer)

 

Իհարկե արդեն նշեցի, որ կարևոր է հենց JS-ի հիմնարար գիտելքները սերտել, բայց չպետք է մոռանալ նաև տիրապետել «event route»-ին և ասինխրոն ծրագրավորմանը։

Սասուն Ստեփանյան (Senior Software Engineer)

 

 

Հետահայաց գցելով, ի՞նչ դժվարությունների եք հանդիպել JS ծրագրավորման լեզուն յուրացնելիս կամ Ձեր մասնագիտական ճանապարհին, ինչպե՞ս եք հաղթահարել դրանք։


Որպես այդսպիսին, չեմ կարող կոնկրետ բան առանձնացնել: Գուցե մի որոշակի շրջանում «ոչ agile» մեթոդներով աշխատելն էր դժվար։ Որպես «լուծում» փորձել եմ դրական ազդեցություն թողնել և լավացնել միջավայրը։

 Մկրտիչ Մուրադյան  (JavaScript Development Team Lead)

 

JavaScript-ը բավականին տարբերվող լեզու է, այն պահանջում է գիտելիքների անընդհատ արդիականացում։ Նորամուծություններ շատ հաճախ են հանդիպում այս լեզվում, և մասնագետից պահանջվում է մշտապես հետևել և յուրացնել դրանք։

Մանվել Եղիազարյան  (Senior Software Engineer Live Scouting Team Lead)


Պետք է մենթոր ունենալ: Մենթորը շատ կարևոր է, քանզի նա ճիշտ ուղղություն է ցույց տալիս։ Հակառակ դեպքում՝ բավականին ժամանակ է ծախսվելու աննպատակ նյութի ուսումնասիրության վրա և 6 ամսվա փոխարեն սովորելու ես մի քանի տարի և այդպես էլ արդյունքի չհասնես:

Արմեն Բալդրյան (Senior Software Engineer)


Ինձ համար դժվարությունն այն էր, որ սկսել էի միանգամից աշխատել երկու «framework»-երի հետ։ Աշխատել եմ և՜ front-end, և՜ back-end հատվածների վրա, և այս գործընթացը պահանջում էր միանգամից յուրացնել մեծ ծավալի գիտելիք։ Սովորաբար մասնագետները սկսում են որևէ մեկից, իսկ իմ դեպքում անհրաժեշտ էր ունենալ որակյալ գիտելիքներ երկուսի հետ աշխատելու համար, որը բարդություն էր ներկայացնում։ Ծագած խնդիրները հաղթահարելու համար ես կարդում էի մասնագիտական գրականություն և հատկապես մեծ կարևորություն էի տալիս դոկումենտացիայի հետահայաց ուսումնասիրությանը։ Խորհուրդ կտամ կարդալ առաջնային աղբյուրի հենց անգլերեն դոկումենտացիան, այլ ոչ թարգմանությունը։

Սասուն Ստեփանյան (Senior Software Engineer)

 


Ինչի՞ց կամ ի՞նչ սխալներից եք խուսափել նոր ծրագարվորման լեզու (այս դեպքում JS) սովորելիս։ 

 

Կարող է սուբյեկտիվ հնչի, բայց ես վերաբերվել եմ ծրագրավորմանը ոչ միայն որպես գիտության, այլ որպես բիզնեսի բաղկացուցիչ մասի:

Մկրտիչ Մուրադյան (JavaScript Development Team Lead)


Պետք է խուսափել համացանցում տեղ գտած բազմաթիվ թերի ու վատորակ վիդեոդասերից կամ գրականությունից, ինչպես նաև՝ այն կենտրոնների դասընթացներից, որոնք հետապնդում են հիմնականում զուտ շահադիտական նպատակներ՝ չտալով շուկային համապատասխան գիտելիք և մասնագետներ։
Կարևոր է նաև չբավարարվել ունեցած հմտություններով՝ շարունակել մշտապես սովորել նորը։ Եվ իհարկե, չպետք է սկսել «framework»-ից՝ դեռևս յուրացրած չլինելով բուն լեզուն։

Մանվել Եղիազարյան (Senior Software Engineer Live Scouting Team Lead)


Այդ ժամանակ ես ուսումնասիրում էի իմ առաջին ծրագրավորման լեզուն, և հետևաբար՝ կոնկրետ չէի պատկերացնում, թե ինչպիսի սխալներ են սպասվում ինձ առջևում։

Սասուն Ստեփանյան (Senior Software Engineer)