#2․ JavaScript-ի դերը ՏՏ աշխարհում

Այ՜, կախարդանքն է շատ վտանգավոր: Ես՝ որպես ծրագրավորող, չեմ ուզում, որ կախարդանք լինի, չեմ ուզում, որ ինչ-որ մեկը կախարդական փայտիկ թափ տա ու իր խնդիրը լուծվի: Ես ուզում եմ ձեռքով գրել ու իմանալ, որ հաստատ այ սա է անելու, որ...

Հիմնավորում կա, որ շախմատը տրամաբանություն է զարգացնում: Օրինակ՝ ես, հիմքից դրա հետ համաձայն չեմ: Ահագին մարդու հետ վիճել եմ: Ես՝ ինքս, փոքր ժամանակ պարապել եմ, լավ խաղացել եմ, կրել եմ, կրվել եմ ու ես համոզված եմ, որ շախմատը, որևէ կապ չունի տրամաբանության հետ...

Մարդու մոտ առաջանում է այդ պատկերացման խորությունը, թե ինչ է կատարվում այդ մեքենայի հետ, համակարգչի հետ, երբ ես այդտեղ մի տող կոդ եմ գրում, որը դե ասում եմ մի տող կոդ է էլի...

Այո ՛, ես համարում եմ, որ ծրագրավորողներն ունեն ավելի մեծ շանս լինելու այդ մտավորականը, լինելու այդ խիղճը, ճիշտ ուղղություն ցույց տվողը, որովհետև իրենք այն մարդիկ են, ովքեր տարիների ընթացքում ավելի շատ են զարգացրել իրենց աբստրակտ մտածողությունը, խնդիր լուծելու ունակությունը և խնդրիներին համակողմանի նայելու այ այդ ունակությունը:

Ողջյուն, հարգելի՛ ունկնդիրներ, այսօր մենք կխոսենք ինչպես միշտ ծրագրավորման, ծրագրավորման փիլիսոփայության, ծրագրավորող լինելու, դառնալու և նմանատիպ թեմաների շուրջ: Այսօրվա զրույցը հետաքրքիր է բոլոր սկսնակ, ապագա, արդեն ծրագրավորող դարձած մարդկանց համար: Ինչպես նաև, ինչու ոչ, ծրագրավորման հետ կապ չունեցող մարդկանց համար: Այսօրվա մեր երկրորդ էպիզոդն արդեն ունի այլ ֆորմատ, այլ բնույթ: Մենք այսօր հյուր ենք գնացել «Ռենդերֆորեսթ» ընկերությունում, մենք քիչ առաջ ծանոթացանք նրանց նոր շենքի, նրանց նոր պայմանների, հետաքրքիր սենյակների հետ և վերջապես հասանք մեր հյուրին: Մեր այսօրվա հյուրն է Էդ Մարուքյանը, ով շատերին հայտնի է JS Conf-ի համահիմնադիր և Renderforest-ի CTO, իհարկե մենք բոլորս նրան գիտենք, որպես Էդ Մարուքյան, բայց նրա անունն է Էդգար:

Վահրամ - Ողջույն Էդգար, ուրախ եմ ներկա լինել Ձեր ընկերությունում, մեր այսօրվա նոր ձայնագրությանը: Ես քո մասին, անկեղծ ասած, շատ քիչ բան գիտեմ: Մենք ծանոթացել ենք վերջերս և առերես հանդիպումներ շատ քիչ ենք ունեցել, կուզեի մի փոքր նախ պատմես քո մասին:

Էդգար - Բարի գալուստ մեր գրասենյակ, ուրախ եմ ձեզ հյուրընկալել: Փորձենք կազմել հետաքրիր զրույց: Ես, եթե ծրագրավորման տեսանկյունից սկսեմ պատմելը, առաջին համակարգիչը ունեցել եմ 1999թ.ին: Իմ երրորդ դասարան ժամանակ: Դրանից առաջ շատ քիչ եմ շփվել: Համակարգչի հետ սերը կար, բայց համակարգչի հնարավորություն չկար: Ավարտել եմ Վանաձորի Մանկավարժական ինստիտուտը, այն ժամանակ դեռ ինստիտուտ էր կոչվում, Կիրառական մաթեմատիկայի բաժինը: Որքան էլ տարօրինակ է հնչում՝ մանկավարժականում կար Կիրառական մաթեմատիկայի բաժին, դրանից հետո բանակ, դրանից հետո տարբեր կազմակերպություններում եմ աշխատել՝ որպես ծրագրավորող, մի ժամանակշրջան աշխատել եմ բանկում՝ հաշվետվությունների բաժնում, որպես հաշվետվողականության և ծրագրավորման հետ կապն ապահովողը, տվյալների բազաներից հաշվետվություն հանել, իմաստ գտնել դրանց մեջ և հարմար գործիքներ ստեղծել, որ ղեկավարությունն ավելի հարմար նայի՝ սկսած հաշվետվությունները: Մի ընթացք՝ մի քանի տարի, ընկերների հետ փոքր կազմակերպություն ենք ունեցել, զբաղվել ենք լրատվական կայքերի սպասարկմամբ: Շատ մեծ ծանրաբեռնվածություն ունեցող լրատվական կայքերի սպասարկումն էինք կատարում: Այդ ժամանակաշրջանը համընկավ ինտերնետ օգտատերերի կամ մոբայլ հեռախոսով օգտատերերի բումի հետ ու կայքերը, մեր լրատվական կայքերը, դեռևս պատրաստ չէին մեծ տրաֆիկով օգտատերերի սպասարկել ու առաջանում էր արդեն առաջին խնդիրները, որ պետք էր առանձին սերվեր, պետք էր առանձին դրանք կարգավորել՝ «նաստրոյկա անել», օպտիմիզացիա անել իրենց արագագործությունը և այլն: Այսինքն՝ այդ խնդիրները ինձ միշտ հետաքրքիր են եղել, արագության, արագործության, այդ օպտիմիզացիաները: Ու արդեն վերջին 2015թ.-ի ամառվանից սկսած Renderforest կազմակերպությունում եմ: Սկսել ենք շատ փոքր թիմով: Ի սկզբանե 3 ծրագրավորող ենք եղել, 3-ից մեկը լրիվ սկսնակ՝ նոր միացելա ու հենց սկսելա ծրագրավորում սովորել: Վերջին այս 4 - 4.5 տարին արդեն Renderforest-յան պատմությունն է սկսվում՝ որպես ծրագրավորող և որպես ծրագրավորման թիմի ղեկավար:

Վահրամ - Շատ բարի, շնորհակալություն: Ուրեմն, դեռևս այնքան էլ հասկանալի չէ, թե ուր ենք գնալու, բայց մի փոքր առաջ ընկնելով, ասեմ, որ մենք այսօր խոսելու ենք Web-ի մասին, առավելապես Web ծրագրավորման, իսկ ավելի կոնկրետ՝ JavaScript-ի դերի մասին՝ ժամանակակից տեղեկատվական տեխնոլոգիաներում, և Էդգարը այդ բնագավառում, ունի բավականին լավ փորձ, կարծում եմ՝ այդ փորձը օգտակար կլինի մեր ունկնդիրների համար կողմնորշվելու, մասնագիտական կողմնորոշման հարցում: Այսինքն՝ նրանք ուզում են դառնալ JavaScript ծրագրավորող, թե մեկ այլ ծրագրավորող, թե չկա՞ այդպիսի բաժանում, միգուցե: Եվ այսպես JavaScript. նրանք, ովքեր ճանաչում են ինձ, երևի թե գիտեն, որ ես արդեն վաղուց խոսում եմ այն մասին, որի չի կարելի լինել միայն JavaScript ծրագրավորող, որ դա վտանգավոր է և այլն… Բայց մյուս կողմից՝ մենք ունենք հյուր, ով գտնում է, որ լինելով միայն JavaScript ծրագրավորող, այնուամենայնիվ, ամեն ինչ այնքան էլ վատ չէ: Ուղղիր ինձ, եթե սխալվում եմ, բայց փորձենք տեսնել այդ տարբերակները, ի՞նչ առավելություն, թերություն կամ ի՞նչ ընդհանրություններ ունեն: Խնդրեմ Էդգար, մի փոքր մեզ համար բացահայտիր JavaScript ծրագրավորողի քո պատկերացրածը:

Էդգար - Շատ հետաքրքիր էր այդ անցումը, քանի որ մինչև Renderforest-ին միանալը, փաստորեն և փաստացի մինչև 2015թ.-ը, այսինքն՝ 1999թ.-ից մինչև 2015թ.-ը, տարբեր ծրագրավորման լեզուների հետ եմ առնչվել: Ի սկզբանե շատ կարճ՝ C, C++, մի շատ կարճ ժամանակահատվածում Perl, դրանից հետո, երբ անցավ այդ տեխնոլոգիաներին PHP-ն էր ամենահիմնական բեքենդային սերվերային լեզուն ու շատ երկար ժամանակ PHP-ի հետ եմ աշխատել: Wordpress-ով կայքերի եմ շատ սպասարկել, մեր ձեռքով գրված լիքը ինչ-որ գործիքներ ու այս փոփոխությունը PHP-ից դեպի JavaScript մի հետաքրքիր բան էր: Դա համընկավ Node պոպուլարիզացիայի հետ, Node Js տեխնոլոգիայի և React-ի: Եվ այդ անցման ընթացքում, էմոցիոնալ իմաստով ասեմ, վերականգնվեց այն հավեսը, այն ուրախությունը և էյֆորիան՝ խնդիր գրելուց և ծրագիր գրելուց, որը կար հենց ամենասկզբում, երբ որ նոր-նոր 10-րդ դասարան կամ 9-րդ դասարանի երեխա էի, գրում էի և ուրախանում էի դրանից: Այդ նույն ուրախությունը ես սկսեցի տեսնել բավականին հասուն տարիքում, երբ որ անցա JavaScript-ի:

Վահրամ - Կարող ե՞ք մի փոքր մանրամասն ասել, թե ի՞նչն էր, որ այդ բերկրանքը վերադարձրեց:

Էդգար - Դա մի ֆանտաստիկ բերկրանք էր, անկեղծ եմ ասում ու ես հենց այդպես էլ ներկայացնում էի մարդկանց, գուցե, թե դուք գիտեք JavaScript, լսել եք դրա մասին, օգտագործել եք կայքում, ինչ-որ փոքր-փոքր տեղեր, բայց մի հատ փորձեք դրանով մի քիչ շատ բան անել ու արդեն ֆանտաստիկ բերկրանք է գալիս: Ինչն է ինձ ամենաշատն ոգևորում ու գրավում՝ լեզուն, ինքն իրենով, շատ քիչ բան է տալիս, լեզվական կոնստրուկցիաները, շատ բարդ տեսակներ, տիպեր, partner-ներ, այսինքն՝ այն ինչ գերծանրաբեռնվածություն կա, օրինակ՝ համեմատ Java-ի հետ: Ես այդպես եմ պատկերացնում, որ օրինակ՝ Java սովորելուց, մարդու սովորած ինֆորմացիայի 80%-ը մետաինֆորամացիա է՝ գրադարանների, լեզվական կոնստրուկցիաների և շատ փոքր մասն է բուն ծրագրավորում և խնդիր լուծելու այդ կտորը: Ահռելի բեռ պետք է մի հատ կրես,մինչև սկսես դու դրանով գործ անելը: Եվ միևնույն ժամանակ JavaScript-ի պարզ ու պրիմիտիվությունը, երբ դու գրում ես ուղղակի ֆունկցիաներ, դու շատ հեշտությամբ ֆունկցիաներն ուղարկում ես որպես արգումենտ այլ ֆունկիցաներին և ֆունկցիաները ստանում ես որպես պատասխան այլ ֆունկցիաներից: Այ այդ ճկունությունը, դրա հետ մեկտեղ գումարած, սինքրոն աշխատանքի շատ պարզ ու պրիմիտիվ ձևը, երբ այ այլ լեզուներում զուգահեռ կամ սինքոր ինչ-որ բան կատարելու համար բարդ կոնստրուկցիաներ են պետք, պարալիզիացիաներ, treder-եր, treder-ի հիշողության կառավարմում և այլն, և այլն: Այսինքն՝ շատ-շատ բան է պահանջվում իմանալ այն դեպքում, երբ-որ JavaScript-ը այդ ամեն հարմարությունը տալիս է, ընդամենը ֆունկցիաները, որպես արգումենտ ուղարկելով և ասինխրոն input/output ունենալու հաշվին: Ու դու տեսնում է, որ ինչքան կարելի է ավելի հեշտ նույն բարդ խնդիրները լուծել, ավելի պարզ, ավելի էֆֆեկտիվ և ռեալ ապրել այդ բերկրանքը, այդ ուրախությունը, թե ոնց է ստացվում, որ հնարավոր էր սենց հեշտ գրել: Այո, հնարավոր էր, հնարավոր է: Գուցե բարդության մեջ մարդիկ գտնեն ուրախություն, որ ինչ-որ տարբեր լեզուներում, այդ բարդ, խուճուճ կոնստրուկցիաների մեջ, բայց այստեղ դուք ոչ թե լեզվի բարդության մեջ ես հաճույք գտնում, այլ՝ խնդրի վերջնական տեսքը տեսնելուց, խնդիրը լուծելու, ավարտելու, դրա վրա է բերկրանքդ գալիս: Դա բերկրանքի մասով: Տեխնոլոգիայի մասով JavaScript-ը, երբ սկսվեց կիրառվել նաև back-end-ում, սերվերային մասում սկսեց աշխատել, ֆանտաստիկ հնարավորություններ բացեց, զուգահեռ գործողություններ և ասինխրոն գործողություններ կատարելու հնարավորություն բացեց, այսինքն՝ այն ինչ PHP-ում անհնար էր այն ժամանակ, շատ պարզ ու պրիմիտիվ օրինակով կարող եմ ասել, որ ցանկացած ունկնդիր կարող է հասկանալ: Պատկերացրեք՝ լրատվական կայք է, դու բացում ես հոդվածը, ամեն անգամ հոդվածը կարդալու համար դու պետք է տվյալների բազան փոփոխության ենթարկես, թե քանի անգամ են կարդացել: Պլյուս մեկ անես ընթերցանության թիվը, ընդամենը: PHP լեզվով, եթե դու գրում ես, դու պետք է մարդուն ստիպված ասես սպասի, կոպիտ ասած, ես գնամ database, այնտեղ պլյուս մեկ անեմ, պրծնի այդ պլյուս մեկ անելու գործը, ես նոր քեզ կտամ քո տեքստը կարդաս: Այսինքն՝ մարդն անտեղի սպասում է, որ ինչ-որ մի հատ գործողության, որ իրեն հետաքրքիր չի, քեզ է հետաքրքիր, իրեն տեքստն է պետք: Այն տարբերակում, երբ որ JavaScript-ում ընդամենը մի տող ավելացնելով կամ շատ թեթև փոփոխությամբ, դու զուգահեռ կարողանում ես բազայում պլյուս մեկ անես և մարդուն չսպասեցնել այդ պլյուս մեկի պատճառով, տալ իրեն տեքստը, այն ինչ իրեն է պետք: Շատ պարզ ու պրիմիտիվ բան, որ ոչ մի կերպ չէր լուծվում PHP միջավայրում, մարդիկ կան հիմա կասեն, բայց այնտեղ մի գրադարան կա, որը որ ստեղծել են, որը որ շատ է նման… Դու իմանում ես, որ ավելի քան ինչ-որ բան պետք է անես, որ այդ պարզ բանը ստանաս: Եթե այս լեզուն այդ ամեն ինչը ավելի հեշտ տրամադրում է, էլ որն է իմաստն այդքան տառապելու: Ու այդ առաջին բանն է եղել, որ մեծ արգումենտ էր: Այսինքն՝ զուգահեռ կամ ասինխրոն իրականացնել ինչ-որ բան, առանց սպասեցնելու այդ կայքը կարդացող մարդուն: Ու դա արդեն բերեց իր հետևից հաջորդ, հաջորդ, հաջորդ լավ-լավ կտորները: Այն ինչը JavaScript-ը օգտակար էր, հետո հարց առաջացավ, եթե մենք անընդհատ Front end-ում գրում ենք JavaScript, կլինի դա JQuery, կլինի դա Reakt, կլինի դա Angular, կլինի դա Vue js էական չի: Ինչ-որ JavaScript գրվում է: Բարդ յուզեր-ինտերֆեյսներ հավաքելուց՝ դու չես կարող խուսափել դրանից: Եթե հնարավոր է այդ նույն լեզուն օգտագործել նաև back-end-ում ու ամբողջ կազմակերպության մեջ մնալ, այսպես ասած այդ դոմենի մեջ, այդ գիտելիքը ունենալ խորը, համապարփակ և ցանկացած մեկի հարցին, ցանկացած մեկը կարողանա պատասխանել, ինչի չօգտագործել հենց դա: Ու հիմա կուզեմ մի փոքր շեղվել տեխնոլոգիայից, գամ ստարտափ տրամաբանությանը: Երբ որ ասացի, որ սկզբից 3 հոգի էինք, որից մեկը նոր էր սովորում, թե ընտրությունը այդ տեխնոլոգիայի, որ համ back-end-ում, համ front-end-ում նույն է, բերեց նրան, որ մենք իրար փոխարինող էինք: Չկար մի բան, որ մենք չկարողանայինք անել: Մեկը back-end-ում, կամ պետք լիներ ինքը մտներ front-end-ում բան փոխեր, ես մտնեի back-end-ում բան փոխեի, մենք խառն ամեն տեղից գործն արել ենք: Ու դա մեզ թույլ է տվել փաստացի 1.5 տարում երկու հոգով, արդեն մի հոգի սկզբից մեզ միացավ նախնական փուլը գրեցինք, հետո ինքն առանձնացավ: Ես և սկսնակ էդ ծրագրավորողը: Երկու հոգով տարի ու կես կայքը զարգացրել ենք, կպնելով ու գրելով ամեն տեղ նույն JavaScript-ը: Back-end, front-end կապ չունի: Սերվերային իմաստով background կլիներ ու այդտեղ երևաց դրա ուժը: Այսինքն՝ նախ դժվար էր մարդ գտնելը, երբ որ դու start up ես, երբ որ դու շատ փող չունես, երբ որ դու հայտնի չես, մարդկանց հավելյալ պատճառ է պետք, թե ինչի գան ձեր կազմակերպություն, դու դեռ ոչինչ չես արել, ոչ մի բան չունես գրավելու, քիչ մարդ եք ու այդ քիչ մարդով պետք է մաքսիմալ էֆֆեկտ տաք: Այդ տեխնոլոգիան ֆանտաստիկ էր, այսինքն՝ դա մեզ օգնել է անել և ստանալ այդ պրոդուկտը: Տևական ժամանակ մենք դա զարգացրել ենք: Հետո արդեն հնարավորություն ունեցանք էլի ծրագրավորողներ ներգրավել, ովքեր եկան, միացան թիմին, ուժեղացրին թիմը, սկսեցին մեր գրած այն արագ-արագ կտորները, որ գրել էինք աշխատի, բայց լավը չէր, դզել, թազեն գրել, ռեֆակտոր անել և այլն, և այլն...ու մենք արդեն ժամանակի մեջ տեսանք, որ start up-ին, մասնավորապես, և Prototyping էտապում, երբ որ դու ինչ-որ գաղափար ունես, թերևս չգիտես դա ինչ կդառնա, չես ուզում շատ ռեսուրս դնես կամ չունես շատ ռեսուրս, ընտրես մի տեխնոլոգիա, որ քեզ հեշտ թույլ կտա ցույց տալ քո պրոդուկտը՝ հեշտ և արագ դնել շուկա: Ասես՝ ժողովուրդ սա պետք է ձեզ, թե՝ չէ: Սա իմաստ ունի, թե՝ չէ: Սա վաճառվում է, թե՝ չէ: Լավը կլինի կվճառվի, հետո ինչ-որ խնդիր կառաջանա, որ պետք է օպտիմիզացնել, լեզուն փոխել, database-ը փոխել, այսինքն՝ էական չի: Հետո արդեն կանեք դա: Բայց սկզբից, Prototyping-ի, start up-ի, նախնական փուլում, եթե տեխնոլոգիային տիրապետում եք՝ շատ էֆֆեկտիվ է հենց դրանով գնալ առաջին ռելիզը: Հիմա մեր մոտ այնպես ստացվեց, որ ոչ միայն առաջին, այլ նաև մինչև հիմա ինտենսվի և 99% օգտագործում ենք JavaScript, ամեն տեղ, որտեղ հնարավոր է:

Վահրամ - Լավ, շատ պատկերավոր էր, ես հասկացա հետևյալը, որ այդ բերկրանքի և այդ շարժող ուժի կարևորագույն բաներից մեկն այն էր, որ լեզուն տալիս էր հարմարավետ լուծումներ որոշ շատ արդիական խնդիրների համար: Այսինքն՝ պարզ լուծում, բարդ խնդիրների համար: Այստեղ կուզեմ մի փոքր էլ իմ փորձով կիսվել: Ուրեմն ես՝ ինքս, սկսել եմ որպես web ծրագրավորող, այդ նույն Php, այն ժամանակ JavaScript, առանց որևէ ատրիբուտիկայի՝ մաքուր վանիլա JavaScript, mysql database-ով, որից բոլորը զզվում էին, Php-mysql խառնուրդը: Լինելով full stack developer, այսինքն՝ միակ developer-ը ընկերությունում, ես անում էի ամեն ինչ: Եվ ընթացքում շատ բաներ եմ սովորել, տեսել, որը ինձ՝ տարբեր ուղղություններով զարգանալու հնարավորություն է ընձեռնել և որպես C-ով ծրագրավորող, Armcluster համակարգի վրա և C# ծրագրավորվող ինչ-որ տեղ ու արդյունքում ստացվել է, որ տիրապետում եմ բավականին լայն լեզուների բազմության, ներառյալ նաև՝ JavaScript-ը: Այսինքն՝ հենց մաքուր JavaScript-ին ես ծանոթ եմ և ինչն է հետաքրքիր, որ լեզուների մեծ մասը, որով մենք այսօր օգտագործում ենք կամ խոսում ենք, բավական հին է: Նույն Java-ն 1995թ.-ից մեր հետ է, արդեն 24 տարի է անցել, 24 տարին մի ամբողջ մարդկային կյանք է միգուցե և դեռևս Java-ում կան այն հին կոնցեպտները, որոնց մասին հենց դու էլ ասացիր, որ լիքը բան է պետք կողքից իմանալ, ոչ թե խնդիրը լուծել, այլ ուղղակի իմանալ, որ այսպիսի բաներ կան, նմանատիպ մի բան կարող ենք ասել .NET Framework-ի մասին, C sharp լեզուն ևս իր հետ լիքը բաներ է ստիպում, որպեսզի սովորենք, հասարակ մի հատ web app գրելու համար, է՛լ կոնտրոլերներ, է՛լ տարատեսակ չգիտեմ ինչ-որ ատրիբուտներ է պետք դնել, չգիտեմ էլ ինչեր է պետք անել: Կամ Java-ի դեպքում annotation-ներ, framework-եր օգտագործել և այլն, և այլն մի հատ պարզ web API սերվիս ունենալու համար, մինչդեռ Node js-ը ենթադրենք, վայրկյանական 2 տող կոդ գրելով և մի հատ package օգտագործելով, մենք կարղ ենք ստանալ web API տրամադրող սերվիս: Հասկանալի է, որ հարմարավետությունը շատ-շատ այլ մակարդակի վրա է, ուղղակի բանը նրանում է, որ Node js-ը շատ թարմ լուծում է և նա միանգամից եկել է լուծելու արդիական խնդիրները, ոչ թե այն հին խնդիրները, որոնք այն ժամանակ են պոպուլյար եղել: Միևնույն ժամանակ կուզեմ մեկ այլ բանի մասին էլ նշել, ուրեմն կա մի հատ ուրիշ լեզու ևս, որը շատ հետաքրքիր լուծումներ է առաջարկում և ևս ինքս ծանոթանալով մի երկու տարի առաջ այդ լեզվի հետ, այդ նույն բերկրանքն էի ապրում, որի դու նկարագրում էիր JavaScript-ի մասին: Խոսքը Go լեզվի մասին է, էլի համեմատաբար թարմ, ընդամենը 10 տարվա լեզու: Թարմ այն առումով, որ անցել է փորձնական այդ փուլերը: Դեռ մեկ կետ ինչ-որ վերսիայում է, ասենք 1.4, բայց հաղթահարել է 0 կետ վերսիաները: Այսինքն՝ ինքն ինչ-որ բետտա վիճակներից անցել է, հասունացել է և տալիս է մաքսիմալ պարզ ու հարմարավետության, այ այդ ինչքան հնարավոր է հարմարավետ լուծում, նույն web տեխնոլոգիաներում, բայց միայն back end-ում աշխատելու համար: Եվ այստեղ JavaScript-ը հստակ առավելություն ունի, որովհետև JavaScript-ի առաջնային թիրախը եղել է UI-ը, իսկ Go-ն, ընդհանրապես, UI-ում ասելու բան չունի, ինքը լեզու է, որ ստեղծված է back end-ի համար, բայց միևնույն ժամանակ, այդ հարմարավետության պահերից ասենք՝ Go-ն նույնիսկ օբյեկտ-կողմնորոշված լեզու չի, ուղղակի չես կարող կլասս ստեղծել, ընկնել ինչ-որ պրոբլեմների մեջ: Ես՝ ինքս, OOP-ի մասին իմ դասերի ընթացքում պատմում եմ, թե ինչքան վատ բան են հիերախիան, պոլիմորֆիզմը, այն ամենը ինչ մարդիկ միշտ դիտարկում են, որպես լուծում բոլոր խնդիրների: Եթե ես ունեմ կլաս, ունեմ հիերախիա, ապա ամեն ինչ լավ է: Չխորանալով պրոբլեմների մեջ՝ մակերեսորեն միգուցե լավ է: Ուրեմն, Go-ում չկա այդ ամենը, դրա փոխարեն կան ֆունկցիաներ, ստրուկտուրաներ և ինտերֆեյսներ: Եվ այդ ամենը բերած է նրան, որ նորից web API կառուցելու համար, մեզ ընդամենը մի հատ http սերվերի փոփոխական է պետք, իրան ասել՝ լսի էս ինչ պորտը քեզ հեսա հարցումներ կգան, կպատասխանես այդ հարցումներին։ Մի հատ շատ վախենալու բան ասեմ՝ նույնիսկ intercepter չի կարելի դնել: Այսինքն՝ intercepter դնելու համար, ուղղակի ձեռքով մի հատ ֆունկցիայի կանչ պետք է ավելացնել handler-ին, այսինքն՝ այդ մակարդակի բաց է և ինչ ուզում ես արա, ոնց ուզում ես արա, այսինքն՝ ոչ մեկ չի կարող ասել կանտրոլեր գրես, այ այդ կանտրոլերը սենց մեթոդներ կունենա, սենց-սենց բաներ կգրես կլինի, ինչ-որ կախարդանք կանենք։ Այ կախարդանքն է շատ վախենալու, ես՝ որպես ծրագրավորող, չեմ ուզում, որ կախարդանք լինի, ես չեմ ուզում, որ ինչ-որ մեկը ինչ-որ կախարդական փայտիկ թափ տա ու իմ խնդիրը լուծվի: Ես ուզում եմ ձեռքով գրեմ ու իմանամ, որ հաստատ այ սա է անելու, այլ ոչ թե ինչ-որ մի բան, որ օրինակ՝ spring-ում է գրված։ Java-ի դեպքում spring գրադարանում ինչ-որ բան է աշխատում ու ես չեմ հասկանում, այ կոնկրետ հիմա ինքը իրեն ոնց կպահի: Եվ այդ վերահսկողության հասանելիությունը, որ իմ ձեռքն է, ես իմ սերվերը ոնց կգրեմ կամ JavaScript-ի դեպքում, անկեղծ ասած, ես լավ չեմ պատկերացնում մանրամասներ, այսինքն, օրինակ՝ React Js-ով աշխատելուց արդյո՞ք ես այդ վերահսկողության մակարդակն ունեմ, թե ի՞նչ տեղի կունենա, եթե այլ յուզեր այստեղ քլիք անի, բայց լավ կլինի, որ ունենամ: Կուզեմ այդ մասին մի փոքր խոսենք, թե օրինակ՝ UI ծրագրավորման մեջ, որը փաստացի ստացվել է այնպես, որ հիմա desktop application-ներ չկան, ինչպես մենք քիչ առաջ այդ մասին խոսում էինք, desktop-ը հիմա արդեն անիմաստ բան է: Ո՞վ է քաշում ինչ-որ installer, դնում իր համակարգչի վրա, այն դեպքում, երբ որ կարելի է ուղղակի browser-ի մեջ մտնել ինչ-որ կայք և ամեն ինչ այնտեղ կա: Նույնիսկ mobile-ի դեպքում, նույնիսկ native mobile application-ի դեպքում մարդիկ հաճախ օգտագործում են JavaScript, native JavaScript, որը բերում է նորից նրան, որ մարդիկ իմանալով մի լեզու, ընդամենը մի լեզու, օրինակ՝ React native-ը, JavaScript-ը React native framework-ով, կարելի է միանգամից բոլոր հասանելի պլատֆորմաների վրա և՛ desktop, և՛ mobile, և՛ չգիտեմ այլ embeded՝ հեռուստացույց կլինի, թե ինչ կլինի, ստանալ application-ներ: Եվ այդ տեսակետից, կուզեմ հասկանալ JavaScript-ը, իրո՞ք լուծում է բոլոր այդ խնդիրները:

Էդգար - Ասեմ ավելին։ Հիմա երկու երեք շատ կարևոր բան ասացիր, մեկը՝ մագիան։ Էդ մոգությունը, դրան կանդրադառնամ։ Երկրորդ՝ web և desktop application-ները: Մենք, ինչպես գիտենք, շատ կան Software-as-a-service-ներ, նույն gmail-ը, ֆեյսբուքը դուք չեք download անում, բայց ամեն օր դուք օգտագործում եք browser-ի մեջ: Ու շատ են նման application-ները ու գնալով շատանում են: Մարդիկ բաժանորդագրությամբ են դրանք առնում և շատ ավելի հարմար մոդել է: Դրա հարցը որն է։ Դա ազատեց մարդկանց հզոր համակարգիչ ունենալու բեռից, հզոր պրոցեսոր, հզոր հիշողություն, սպեցիֆիկ ինչ-որ պահանջներ և այլն: Երկրորդ, եթե այսօր նույնիսկ գրվում են desktop application-ներ, դրանց մի ահռելի մասը էլի JavaScript-ով է գրվում՝ Electron գրադարանով: Այսինքն՝ կոդի խմբագրիչներ կան, մինչև վերջերս ատոմն էր դրա վրա, հիմա չգիտեմ դրա վրա է, թե՝ չէ: Ատոմ կոդ ռեդակտորը ծանոթ է, թե չէ....Շատ հեշտ։ Web գրողները, շատ հարմար html JavaScript գրելու համար է: Էլի էլեկտրոնով գրված է ու էլի շատ կան application-ներ, որ տպավորություն է desktop app, բայց դա ո՛չ DotNet-ա, ո՛չ Java-ա, ո՛չ նման մի բան:

Վահրամ - Ճիշտ եմ հասկանո՞ւմ, որ իր մեջ կա ինչ որ JavaScript Engine:

Էդգար - Դուք պատկերացրեք դա browser է, բայց այնքան լավ է մեջի ինտերֆեյսը հավաքած, որ դու չես էլ ենթադրում, որ browser-ի միջավայրում ես: Ու ամբողջը ինտերֆեյսը JavaScript-ով է գրված: Էդ դրա գծով, սենց, թե նենց, եթե դու անում ես web ծրագրավորում կամ եթե նույնիսկ desktop ծրագրավորում, ի վերջո JavaScript-ին կպնելու ես: Ու այստեղ հարց է առաջանում, օրինակ՝ ես շատ խորհուրդ տալուց, կամ քննադատելուց, քննադատում եմ PHP-ն, որպես արդեն իսկապես հնացած մի բան: Ես հասկանում եմ, որ կան շատ հնում գրված ծրագրեր, որոնք մինչև հիմա կան ու դրանց դեռևս պետք է տանել, ես դա հասկանում եմ, Ok, թող տանեն: Բայց սկսնակ մարդկանց, ովքեր, որ նոր մտնում են ծրագրավորման ոլորտ, ասում եմ՝ դա մի սովորեք: Այսինքն՝ նոր սկսվող պրոեկտների մեջ դրա դերը քիչ է լինելու: Ու եթե իսկապես դուք միտք ունենք, նոր նախաձեռնություն ունեք, նոր եք մտել, JavaScript-ը շատ ավելի շատ դուռ է բացելու Ձեր առաջ և հնարավորություն, քան այդ նույն PHP-ն: Եթե web, ապա JavaScript. այ այսպես ձևակերպեմ:

Հիմա գալով մագիայի մասը՝ ուրեմն, երբ որ մենք ծրագիր ենք գրում փիլիսոփայությունը պետք է պարտադիր լինի: Ծրագիրը գրելուց մենք արդեն իսկ մոգական բան ենք անում, որովհետև մոլորակի վրա շատ քիչ մարդ է հասկանում, թե մենք ինչ ենք խոսում, ինչ ենք գրում, ընդհանրապես ոնց ենք շփվում այդ սարքերի հետ: Արդեն ինքը մոգություն է: Արդեն մեր գրած ֆունկցիաները, կառուցվածքները, տվյալների ստրուկտուրան, որ վերացական գաղափարներ են իրական կյանքի մեջ, երբեք որևէ տեղ դու դա չես տեսնելու ֆիզիկական աշխարհում ու, քո ասածով, հաստատում եմ, որ ուզում եմ ես լինեմ այդտեղ մագիայի հեղինակը, մոգը ես եմ ուզում լինեմ։ Ես չեմ ուզում, որ մոգը լինի ինչ-որ մի հատ գրադարանի մեջ ինչ-որ մի հատ թաքնված բան, որը ես չեմ հասկանում: Ու միշտ ջղայնացել եմ այն բաներից, որը չեմ հասկանում: Ու դրա համար էլ ինձ համար միշտ փակ է եղել այն դուռը։ Ժամանակին դա C#-ն էր, հետո Java-ն էր դիցուք, երբ, որ մեջը կա ինչ-որ մի հատ Library, որը քոմփայլ արված է քեզ եկել, դու կարող ես օգտվել իրա ֆունկցիաներից, բայց մեջը չես կարող նայել ինչ է: Ես ահավոր դրանից ջղայնացել եմ, որովհետև, որ չեմ տեսնում ուղն ու ծուծը, չեմ կարողանում բացել, վերջին կոդը մինչև հասկանամ ինչ է գրված: Այդ իմաստով՝ նույն JavaScript-ը կլինի, React-ը կլինի, դրանք տալիս են այդ հնարավորությունը ու սաղ open source է: Ոչ մի բան քոմփայլ արված չի, թաքուն չի՝ դու կարող ես բացես ու նայես: Հիմա այս վերջերս React գրադարանը, որը այդքան հայտնի է, բոլորն աշխարհում օգտագործում են, այդ գրադարանի մեջ սկսել են ներմուծել ինչ-որ ֆունկցիոնալ կտորներ, գրադարանի հետ աշխատելու, որոնք վերցնում են՝ գրողի վրայից մինչև վերջ հասկանալու մասը: Ինչ-որ մոգություններ են դրանք: Կա դոկումենտացիա, բացատրում են, բայց և այնպես, որ դու նայես, որպես ծրագրավորող, ցանկացած ծրագրավորման լեզվից մի բան նայես կհասկանաս՝ ինչ է կատարվում: Այ այդտեղ ինչ որ բան են մտցրել, որը մոգություն է: Ահավոր ձևի ես սկսել եմ դրան չհավանել: Այ հիմա մեր օֆիսում, դրա հետ կապված մեծ դեբատ կա՝ արդյո՞ք պետք է մենք այս նոր API-ն օգտագործենք, թե դա չարիք է և շատ քիչ տեղ է պետք դրան օգտագործել: Ինչի՞, որովհետև ես տեսնում եմ, որ դա իր վրա է վերցնում այդ մոգական մասը ու տեղ է թողնում չհասկանլու, թե ինչ է կատարվում: Գուցե շատերի ականջին ականջահաճո թվա, դե թող այս մի տողը գրի ամեն ինչ լավ կլինի։ Չէ, դու պետք է հասկանաս, թե ինչ է լինում, որ չհասկանաս ինչ է լինում լավ չի լինի: Պատկերավոր ասեմ, որպեսզի պատկերացնեք, մենք միշտ գիտենք՝ կա ֆունկցիա, ֆունկցիան իր մեջ կարող է կանչել մեկ այլ ֆունկցիա, այն մեկն էլ կարող է կանչել մյուս ֆունկցիային: Ինքը շատ գծային է՝ վերևից ներքև, աջից՝ ձախ: Մի ուղղությամբ է գնում, եթե ռեկուրսիա չի, ռեկուրսիա է, ուրեմն ֆունկցիան կարող է կանչել իրեն կանչողին: Այ դա մենք բոլորս հասկանում ենք, յուրացրել ենք, պարզ է և այլն: Այնտեղ մի հատ կոմպոնետն են մտցրել, որը կոչվում է Hooks, որը հետևյալ կերպ է աշխատում. Ֆունկցիայի մեջ աշխատում է ֆունկցիա, որը Return չի լինում և ռեկուրսիա չի, բայց, որը ինչ որ պահի այս նույն ֆունկցիային կանչում է, չգիտեմ ոնց՝ մագիայով: Գիտեմ ոնց, բայց չեմ ուզում, որ դա այդպես աշխատի: Այսինքն՝ այն հիմնական հասկանալի ընթացքը, որ մեկը կանչում է մյուսին, մեկը մյուսին, մյուսը մյուսին, եթե Return անելու բան կա, հերթով հետ Return են անում, շատ պարզ է՝ գծային: Դրա համար հավելյալ մտավոր էներգիա դու չես ծախսում, հասկանաս, թե ինչ կա, պարզ է ամեն ինչ: Այդ պարզությունը վերացնելու ուղղված՝ մի հատ բան են արել շատ վատ, որ ինձ թվում է կա՛մ կհանեն, կա՛մ կհասցնի React-ի մահվան: Հիմա շատ պրովոկացիոն բան եմ ասում...

Վահրամ - Խնդրեմ, իհարկե՛, ասեք:

Էդգար - Լսողները շատ դեպքերում չեն համաձայնվելու, բայց դա իմ փորձն է, իմ հոտառությունն է, իմ ինտուիցան է ինձ հուշում դրան: Մի անգամ այդ ինտուիցիան փրկել է մեզ։ Ուրմեն «Ռենդերֆորեսթ»-ի հետ առաջին Prototype-ից հետո, երբ սկսեցինք արդեն լուրջ գրել պլատֆորմը՝ դեռևս Node-ը, ձեր ասած 0 ամբողջ ինչ-որ վերսիայի մեջ էր 0.91-ի մեջ էր, ինչ էր... React-ը շատ նոր էր, նոր էր, պոպոլյար չէր Հայաստանում, երևի մի երկու հոգի էին գրում:Դժվար էր այդ ժամանակ ճիշտ որոշում կայացնել, որով գրել, որ տեխնոլոգիան վերցնենք: Մի ամիս, որպեսզի ավելի լավ պատկերացնենք, մեր սուղ բյուջեից այն ինչ-որ տրամադրվել էր ինձ, այն վարձը, որ գրվի Php-ով back end-ը: Մի ամիս այդ մարդը գրել է, շատ ֆունդամենտալ կերպով մոտեցել էր այդ հարցին: Մի ամիս հետո շատ ծանր և դաժան որոշում եմ կայացրել, եթե չեմ սխալվում, այդ 1000$ չափ ծախսը դնեմ մի կողմ, ուղղակի թափեմ ու ասեմ գրեմ Node-ով ու էլի շատ կասկածելի որոշում է, ճիշտ է, ճիշտ չէ այդ React-ը, կգտնենք ծրագրավորող, որ հետո կուզենա գրել React-ով, նոր գրադարան է, չես իմանում ինչքան պոպուլյար կդառնա դա, դա էլ մեծ կապ ունի կարաս ընդլայնվել դրանով, թե՝ ոչ: Փաստացի, այդ ժամանակ ճիշտ որոշում եմ կայացրել: Դա արդեն հիմա եմ գնահատում, որ դա մեզ օգնեց, React-ն էլ դարձավ շատ պոպուլյար, Node-ն էլ դարձավ պոպուլյար...

Վահրամ - Միգուցե, դա Ձեր ջանքերով:

Էդգար - Դե չգիտեմ, բայց ընդհանուր, աշխարհում էլ գնաց այդ տենդենցը: Ամեն դեպքում՝ վերադառնալով փիլիսոփայությանը, պետք է ընտրել լեզուներ, գործիքներ, որոնք թույլ են տալիս, որ դուք լինեք հրաշագործը, հասկանում ե՞ք, ոչ թե ինչ-որ մի հատ գրադարան, ինչ-որ մի բան, որը դուք չեք հասկանում: Դա իմ խորհուրդն է, եթե իրավունք ունեմ նման խորհուրդ տալու, սկսնակ ծրագրավորողներին ու շատ դեպքերում սկսնակ ծրագրավորողների մոտ միշտ հարց կա, քեզ էլ շատ կլինեն հարցրած, ինչ լեզու սովորենք, որից սկսենք, որը չսովորենք, այս մեկն անենք, թե չանենք: Այս դասընթացին գնանք, թե չգնանք: Ես միշտ ասում եմ՝ ինչքան կարող եք սովորել, տեղի դասընթաց ես գտել, ասենք ձեր տանը մոտ է, ձրի է, գնա այդտեղ: Դուրդ կգա կմնաս, չի գա կգնաս JavaScript-ի, դա չես հավանի կգնաս C++-ի, քանի նոր ես ինչ կարաս տես, ինչքան շատ բան կարաս տես, ամեն տեղ էլ գնա, ամեն բան էլ փորձի: Վերջում կգաս մի բանի, որը քեզ հոգեհարազատ է: Պարտադրանք չկա ի վերջո, ամեն մեկը մի բան ընտրում է իրեն սիրած: Բայց, կհամաձայնվես իմ հետ, որ սկզբում քանի դեռ նոր ես, ամեն ինչ էլ արժե նայել:

Վահրամ - Ճիշտն ասած, ես հենց այդ նույն խորհուրդը տվել եմ վերջերս, BarCamp-ի ընթացքում, երբ խոսում էի ծրագրավորման փիլիսոփայության մասին, որտեղ իմ փորձն էի պատմում, հենց նույն խորհուրդն եմ տվել: Մինչև դու չտեսնես մի 10 հատ լեզու՝ դժվար է հասկանալ, դրանցից որն է ավելի հարմար, ավելի լավը, որն է ավելի հոգեհարազատ։ Դա մի կողմից: Իսկ մյուս կողմից՝ փորձից ելնելով, ասում եմ, եթե դու գիտես 4 լեզու, ապա 4 անգամ ավելի ապահով կզգաս, քան թե եթե դու իմանաս մի լեզու: Ես ու դու կհիշենք 2008-2009թթ.-ին Հայաստանում ինչ էր տեղի ունենում, բայց շատ սկսնակ ծրագրավորողներ չեն էլ կարող պատկերացնել՝ ինչ է նշանակում ծրագրավորողներին գործից հանում են, կա՛մ աշխատավարձը կիսում են, կա՛մ ընկերություններ են փակվում: Բայց երբ, որ դու դրան հանդիպում ես ու դու գիտես, որ երկրորդ անգամ էլ կարող է այդպես լինել, դե որովհետև համաշխարհային տնտեսությունն այնքան էլ կայուն բան չէ, լավ չեն կառուցել, երևի PHP-ով են գրել ու հիմա պետքա լինում, քանդվում է ինչ-որ մի բան: Օրինակ՝ ընկերությունը, որտեղ ես աշխատում էի փակվեց, սնանկացավ, և ես պարզապես մնացի օդում կախված: Ու գնացի առաջին իսկ պատահած տեղը, բառացիորեն կողքի հենց Սլավոնական համալսարանում էի EIF-ում, լաբորատորիայի վարիչը իմ նախկին մենեջերն էր՝ Արտակը, ասացի կարող է Ձեր մոտ տեղ լինի, ասաց հա: Դե մենք Լինուքսում C++-ի վրա ինչ-որ վերիֆիկացիայի համակարգ ենք սարքում: Ասացի՝ կապ չունի, տեղ կա Ձեր մոտ, ասաց՝ հա: Ասացի՝ ուրեմն վերջ գալիս եմ: Այսինքն, եթե ես չիմանայի Լինուքս, չիմանայի C++, որոնք ես ժամանակին սովորել էի օգտագործել, դեռևս փոքր տարիքում, եթե չունենայի այդ վստահությունը, որ ես կարող եմ մտնել դրա տակ, ես պարզապես կմնայի օդում կախված: Ես ման կգայի գործ միայն c sharp գիտեմ, ինչ անեմ c sharp-ով, կարող է դրանով էլ գործ չեն անում կարող է մոդայից դուրս է եկել, հիմա ես ինչ անեմ: Երբ, որ դու գիտես 4 լեզու, դու 4 անգամ ավելի ապահովված կզգաս քեզ ու ավելի կայուն կլինես, քան թե այդ 1 հատով հազիվ… Իհարկե, այդտեղ կա նաև փիլիսոփայական շերտը, որ մտահորիզոնն է բացվում։ Երբ որ դու գիտես 1 հատ օբյեկտ-կողմնորոշված, մի հատ ֆունկցիոնալ, մի հատ տրամաբանական, մի հատ պրոցեդուրային, մի հատ assembler, մի հատ չգիտեմ էլ ինչ-ինչ լեզուներ․․․ Այդ բոլորը նոր ու նոր շերտեր են բերում մտածողության, լայնացնում են մտածողությունը։ Արդյունքում՝ դու ստանում ես մի հատ մարդ, ով այնպիսի բաներ կարող է անել, որ երբեք չէր կարող անել մի մարդ, ով ասենք գիտի միայն js կամ միայն ios-ի վրա է աշխատել:

Էդգար - Մի լեզու իմանալու կամ մի տեխնոլոգիա իմանալու խնդիրը հետաքրքիր պրոբլեմի է բերում: Պատկերավոր պատմեմ, օրինակ՝ վարպետին կանչել ենք, եկել է պետք է պահարանը ձգի, դե ասում է չագուչով կտամ այդ շուռուփի գլխին՝ կմտնի պատը: Ես էլ ասում եմ, որ չէ՝ պտուտակը պետք է պտտել: Ասում է, չէ ես չագուչ ունեմ, դրանով եմ տալու գլխին։ Հասկանում ես՝ դա մի հատ գործիք ունենալու պրոբլեմն է: Երբ դու գիտես մի լեզու, քեզ թվում է, որ բոլոր խնդիրները կարելի է այդ մեկ լեզվով լուծել կամ, եթե նույնիսկ չի կարելի, դու փորձում ես դրանով լուծել, այլ բան չգիտես, մտավորություն չկա, չի զարգացել: Բայց, երբ որ մի քանի տարբեր բան ես իմանում, իմանում ես, որ այ երբ պետք է հիշողությունը լավ օգտագործել պետք է անենք Redis-ով, կամ երբ պետք է web-ում ինչ-որ բան գրենք և դա պետք է լինի ասինքրոն ու իրա հիմանական ծանրաբեռնվածությունը connection-ներ պահելն է, ուրեմն՝ պետք է Node անենք: Երբ պետք է անենք հաշվարկի հետ կապված շատ բարդ բան, որ ասեն մաթեմատիկական հաշվարկներ է ուզում, որ ասենք թվերը չկլորացնելով, գուցե դա C-ն է կամ C++-ը: Ամեն մի լեզու, ի վերջո, մի դաս խնդիրների լավ է լուծում և որոշ լիքը դաս վատ է լուծում: Մի տեղ ինքը էֆֆեկտիվ է, մի տեղ էֆֆեկտիվ չէ: Հիմա օրինակ՝ Node-ը, բարդ մաթեմատիկական հաշվարկների համար անպիտան է, բայց ինքը հնարավորություն է տալիս օգտագործել C++-ի գրադարանը, որն անում է այդ բարդ բանը: Այսինքն՝ ամեն ինչ, իր կիրառության տեղն ունի, մի լեզու իմանալ, մի տեխնոլոգիա իմանալ, մի գրադարան իմանալը քեզ տանելու է նրան, որ ինչ քեզ ասեն դրանով ես փորձելու լուծել: Էֆֆեկտիվ է, թե Էֆֆեկտիվ չէ, իմաստ ունի դրանով անել, թե ոչ, այդ է քո լուծումը: Իսկ դա շատ վատ տեղ է տանելու: Ու ի վերջո նաև սահմանափակելու աշխատաշուկայում հնարավորությունը: Ես հասկանում եմ մտահոգությունը, երբ հարցնում են բա ի՞նչ լեզու սովորեմ, հիմանակնում դրա տակ, ոչ թե ինչ լեզվից ես հաճույք կստանամ, այլ որ լեզվով ես կարող եմ գործի ընդունվել: Բայց պատասխանը հետևյալն է. Հայաստանում ցանկացած լեզվի պահանջարկ կա, որքան էլ, որ տարօրինակ հնչի Cobol-ի պահանջարկ կա: Այսինքն՝ դու մի բան լավ սովորի, անհնար է դու պարապ մնաս: Բայց շատ բան սովորելու ընթացքում, գուցե, քեզ ամենահոգեհարազատը կգտնես, գործ ամեն դեպքում կգտես, այ իմ ասածի տրամաբանությունը սա է: Հիմա գործ կգտնես: Ու ես ու դու մի քիչ ավելի ծեր ենք այդ իմաստով, ես հիշեցի 2002թ.-ը, երբ ծրագրավորողներն ավելի շատ էին, քան գործը, դա շատ դառը և դժվար բան է: Դու գնում ես գործի ընդունվելու, ինչ-որ մարդիկ են նստած խիստ ու մաթեմատիկական ուժեղ կրթությամբ, ասենք գրադարանային հարցեր են տալիս լեզվի, որը կյանքում ոչ մի տեղ և ոչ մեկին պետք չէ: Բայց այնքան շատ են դիմողները, որ իրենք այդպես են ֆիլտրում ու ահավոր դժվար էր գործ ճարելը, որպեսզի ավելի պատկերավոր պատկերացնեն մեր ունկնդիրները, 2002թ.-ին ես ընդունվեցի a Bait Web Technology կազմակերպություն, դա, եթե չեմ սխալվում, միակն էր կամ միակ հայտնին էր, որ web կայքեր էր պատրաստում: Web կայքեր, բոլոր հայտնի երգիչների, արվեստի գործիչների, բիզնեսերի համար ինչ-որ կայք, եթե պետք է պատվիրեին ու լուրջ կայք պետք է լիներ, ապա դա այդ կազմակերպությունն էր: Այսինքն՝ այդքան քիչ ու սուղ էր այդ հնարավությունները աշխատանքի: Հիմա շատ շատ են: Որպեսզի մեզ շատ պատկերացնեն ու հասկանան, թե որտեղից է մեր ցավն ու դարդը գալիս, երբ որ 2000-2005թթ.-ին սովորում էինք, չկար google, google գոյություն չուներ:

Վահրամ - Մարդիկ երևի չեն էլ պատկերացնում, թե ոնց կարելի էր ապրել այդպես, առանց google:

Էդգար - Բացի այն, որ չկար google, չկար նաև գրականություն շատ: Կցկտուր մի երկու բան ռուսերեն՝ թարգմանած էր թազա, որ կարող էր դա հայտնվել, շատ դեպքերում կարող է դա էլ չհայտնվեր: Երբ, որ մի հարց ունեիր, կամ ծրագրավորման լեզվում մի բան էիր սովորում, կամ մի հարցի դեմ էիր լինում։ Օրինակ՝ ես Վանաձորում, մարդ չէի գտնում, որ հարց տայի, ասեի կանգնել եմ… Ու կարող է այդ հարցը չտալ չկարողանալու պատճառով, ես կարող էի թողնեի այդ լեզուն։ Այ այդպես եղել է, օրինակ՝ C-ն։ Մի հատ գիրք ունեի, ուղեցույց, բայց ասենք դա tutorial չէր, այլ manual էր, որը շատ բան չի տա՝ ֆունկցիաների նկարագրություն և վերջ: Ինչ-որ մի հատ հարցի եկար, դեմ եղար՝ պատասխանող չկա, այդ լեզուն դրեցիր մի կողմ: Երևի լավ էլ եղավ, չգիտեմ: Դրանից հետո, օրինակ՝ մի կարճ ժամանակ, որ perlov բան եմ արել, Perl էլ ինչի, երբեք ես չեմ բացի ու որևէ բան անի perlov էլի իմ կամքով, եթե իհարկե ինձ չստիպեն՝ զենքով, որովհետև Perlov դու կարաս շատ արագ մի հատ շատ մեծ բան գրես, հաջորդ օրը չհասկանաս՝ ինչ ես գրել. ուղղակի չհասկանաս: Մարդիկ հրավիրես գան բոլորով նայեն ու չհասկանան, թե ինչ ես գրել, բայց աշխատում է: Ասենք Perl-ի պրոբլեմը դա է: Շատ հակիրճ սինտաքս է թույլ տալիս կետով ու API-ով, կամ ասենք դոլարի նշանով, ասենք խուճուճ բան ես գրում, որ հետո չես հասկանում՝ ինչ է կատարվում:

Մի խոսքով, սա որպես մեր փիլիսոփայական խորհուրդը, գուցե, սկսնակ ունկնդիրներին, իսկ այն ունկնդիրները, ովքեր որ սկսնակ չեն, սովորել են ինչ-որ լեզու, ընդունվել են աշխատանքի junior կամ mid-level ծրագրավորող են համարվում, մեծ հարց է առաջանում, օրինակ՝ շատ դեպքերում, բա իրենք ինչ անեն, որ առաջ գնան: Մտել են աշխատաշուկա, լավից վատից, գուցե, կրթություն ունեցել են ծրագրավորման, գուցե չեն ունեցել, բայց մտել են աշխատաշուկա: Հիմա այդ մարդկանց խորհուրդ. Ես կուզեմ դու էլ քո կարծիքն ասես, հետո ես մի քանի բան համալրեմ կամ ավելացնեմ, օրինակ, ո՞րն է այն ճանապարհը, որը mid-level ծրագրավորողին տանում է դեպի ավելի senior –level ծրագրավորող:

Վահրամ - Լավ, ասեմ: Ես երկար տարիներ, միգուցե, հենց ամենասկզբից, դասավանդել եմ օպերացիոն համակարգեր: Դա մի առարկա է, որի մասին քիչ են խոսում իրականում, այսինքն՝ երբ, որ խոսում են ծրագրավորողի մասին, հիմնականում չեն ասում, իսկ դու օպերացիոն համակարգեր գիտե՞ս և հաճախ նույնիսկ, եթե այդպիսի հարց տալիս են, ապա դրա պատասխանը լինում է. գիտեմ՝ Windows, Linux և MacOS: Դժվար է հասկանալ՝ ինչ է նշանակում օպերացիոն համակարգեր գիտեմ, ծրագրավորողը: Բայց ես մտել եմ այդ աշխարհն ասպիրանտ ժամանակ՝ ստիպված, ինչ-որ իմաստով: Ուղղակի պետք էր դասեր տալ ու դա էր ազատ: Ու հասել եմ նրան, որ 12 տարի անընդհատ դասավանդում եմ օպերացիոն համակարգեր: Ու հասել եմ նրան, որ արդեն ունեմ իմ դասընթացը, որի ընթացքում ես տալիս եմ ինչ-որ բաներ իմ ձևով, նույնիսկ վաղուց արդեն ես գիրք չեմ կարդում, չեմ հիշում գրքում ինչ էր գրված: Երբեմն ասում են, գիտե՞ս այ այս գրքում սենց բան կա, ես էլ ասում եմ, դե երևի կա: Այսինքն՝ ես իմ պատկերացումն եմ տալիս և ի՞նչն է հետաքրքիր, բա որտեղից այդ պատկերացումն ինձ: Եվ ինչ-որ հետ գնալով՝ ես հասկանում եմ, որ անցել եմ այդ օպերացիոն համակարգերի դասընթացը: Շատ սիրում էի այդ դասընթացը և այնքան էի սիրում անգլերեն, քանի որ այդ ժամանակ չկար ռուսերեն, հայերեն, կարդում էի ամեն օր՝ քնելուց առաջ: Անգլերեն, կարդում էի, գլուխ էի ջարդում, քչփորում էի, ինչ-որ բաներ փորձում էի հասկանալ, ախր սա ինչ է ինձ տալիս ու ուր է տանում, բայց ես հասկանում էի, որ ինքն ինձ ինչ-որ տեղ տանում է: Եվ ավարտելուց հետո՝ պաշտպանելու, ասպիրանտ ժամանակ թաթախվելով հենց դասավանդման պրոցեսի մեջ, ու հասկանալով, թե ինչքան բացեր ունեմ, ես՝ ինքս, սկսեցի իմ վրա աշխատել՝ լրացնելու բացերը: Դե դաս էի տալիս վերջին հաշվով, ոնց կարելի էր գնալ անպատրաստ, այսինքն՝ ես պատրաստվում էի, պատրաստվում էի, պատրաստվում էի, ես 10 տարի շարունակ պատրաստվում էի դասի գնալուց, ես՝ տասից ավելի տարվա ծրագրավորող, գնում եմ դասավանդելու ծրագրավորում ու ես պատրաստվում եմ դասի գնալուց առաջ: Ինչո՞ւ, որովհետև ես մինչև վերջ չէի հասկանում, այսինքն՝ այն ամենավերջին բաներ կային, խորություն, որ իմ համար մութ էր մնում: Ես ամեն տարի այդտեղ մտնում էի ու ինձ համար բացահայտում էի ու էլի ինչ-որ բան մութ էր մնում: Ասածս ինչ է. Օպերացիոն համակարգերի դասընթացը, իմ պատկերացնելով, ուսանողին տալիս է այնպիսի խորություն և այնպիսի լայնություն՝ գիտելիքի և հարմարավետության, այսինքն՝ այդ միջավայրում կոմֆորտ զգալու, ծրագրավորման աշխարհում, որն ավտոմատ կերպով բերում է մտածողության փոփոխությունների, հենց այսօր ես իմ նախկին ուսանողներից մեկի հետ էի խոսում, ով իմ հետ մի թիմում է աշխատում, ասում եմ օրինակ, այ որ դու գիտես վիրտուալ հիշողություն, table-ներ կան, շատ գործ է արվում: Երբ, որ մենք մի հատ հասարակ հասցեի դիմում ենք գրում, տակը մի հատ մեծ գործընթաց է կատարվում, որտեղ մասնակցում է հա՛մ CPU-ն, հա՛մ MMU-ն, հա՛մ աղյուսակներ, հա՛մ չգիտեմ ինչեր… Ասում եմ՝ դա քո վրա ո՞նց է ազդում, ասում է՝ ճիշտն ասած, տենց side effect կա, որ ես ամեն անգամ ինչ-որ մի հատ վերագրում անելուց՝ զգում եմ, որ տակը ինչ-որ բան է կատարվելու: Այսինքն՝ մարդու մոտ առաջանում է պատկերացման խորություն, թե ինչ է կատարվում այդ մեքենայի, համակարգչի հետ, երբ ես այնտեղ մի տող կոդ եմ գրում: Ասում եմ` դե լավ մի տող կոդ է, այսինքն՝ ահա, թե ինչով է տարբերվում junior ծրագրավորողը ավագ ծրագրավորողից։ Երևի նրանով, որ ավագ ծրագրավորողը գիտակցում է իր արարքների հետևանքը խորքային իմաստով: Այսինքն՝ նա հասկանում է, որ օրինակ՝ այս տողը գրեցի այստեղ, ապա սենց-սենց բաներ է կատարվելու, իսկ եթե մի տող ներքև գրեմ, ապա այս բաները այս սենց կկատարվեն ու արդյունքում կունենամ մի հատ ուրիշ արդյունք: Ես, օրինակ՝ ավելի էֆֆեկտիվ լուծում կստանամ կամ սխալ լուծում կստանամ, ու ինքը գիտի, որ այս երկու տողերը տեղերով փոխել չի կարելի: Բայց սկսնակ ծրագրավորողը չի գիտակցում, որ ասենք հիմա ինչ տարբերություն այստեղ new արեցի, այնտեղ ինչ արեցի, թե՝ հակառակը: Այ ես կուզեի, որ ցանկացած ծրագրավորող ինչ-որ պահի, ասենք 4 տարի ծրագրավորմամբ զբաղվելուց հետո, մի օր ասեր արի գնամ մի օր տեսնեմ այդ օպերացիոն համակարգը ինձ ինչ է տալիս: Ի վերջո, ինչի համար է ինքը: Լավ ես իրեն օգտագործում եմ, թե՝ չէ: Ի՞նչ ես կարծում, ծրագրավորողներն օգտագործում են օպերացիոն համակարգը, խորքային առումով:

Էդգար - Չէ, մեր ժամանակակից լեզուններն ու տեխնոլոգիաները թույլ են տալիս չմտածել դրա մասին: Չմտածել մինչև որոշակի էտապ:

Վահրամ - Մինչև հասնում ես այն պահը, որ ոտքդ խփում ես մի բանի...

Էդգար - Հարցը հետևյալն է։ Այսինքն՝ շատ ծրագրեր կան, որոնք երբևէ չեն ունենալու ասենք real time 100.000 user, կամ 1 միլիոն, 10 միլիոն: Մինչև այդ էտապներին հասնելը, չասեմ նորմալ է, բայց ընդունելի է ավել կոդ գրելը, ավել համակարգչի հիշողությունը տանջելը, այսինքն՝ ընդունելը, որն է, աշխատում է, բիզնեսը կա, փող է բերում...

Վահրամ - Այսինքն՝ կանխավ անել օպտիմիզացիա սխալ է, մեղմ ասած: Պետք չի անել մինչև, որ չես հասել այն պահին, որ արդեն պետք է անել:

Էդգար - Բայց ասածս այն է, որ ժամանակակից գործիքները հենց նպաստում են դրան, գործիքները, համակարգիչների հզորությունը, հիշողության ավելացումը նպաստում են նրան, որ մարդիկ շատ դրա մասին չմտածեն: Երբեմն նայում ես ու տեսնում. դե աշխատում է հիմա մի քիչ լավ, մի քիչ՝ վատ: Կարելի էր մի քիչ կարճ գրել: Ես այդ դեպքերում ասում եմ, դուք հիմա այ սենց անարդյունավետ, որ գրել եք այս կոդը, դուք մասնակցում եք գլոբալ տաքացմանը: Դուք անիմաստ տաքացնում եք մոլորակը: Այ, որ սենց գրեիք, մի քիչ ավելի արագ կաշխատեր, չէր տաքացնի այդ համակարգիչը: Հումոր է, բայց իրականում ավելի լավ:

Վահրամ - Այսինքն՝ իրականում ոչ մի տարբերություն չկա, որովհետև կարիքը չկա:

Էդգար - Բայց, եթե կարող ես ավելի էֆֆեկտիվ գրես, գրի: Դու տեխնիկական ասպեկտն ասեցիր, ես ուզում եմ մի քիչ անդրադառնամ ոչ տեխնիկական ասպեկտին: Օրինակ՝ ի՞նչ է ակնկալվում ավագ ծրագրավորողից, եթե այսպես ասեմ: Կամ ի՞նչ ընկալում կա, ի՞նչ սպասելիք կա, համենայնդեպս, այն դիրքից եմ ասում, որ հիմա ես հանդիսանում եմ ծրագրավորման թիմի ղեկավար, կազմակերպությունում եմ աշխատում, որն IT ոլորտում որոշակի հաջողություն է գրանցել: Այդ տեսանկյունից ի՞նչ է ակնկալվում: Ուրեմն, երևի թե բուն տեխնիկական գիտելիքից զատ, այսինքն՝ դու ինչ-որ տեխնոլոգիա գիտես back-end, front-end, սերվերային մաս կամ չգիտեմ սպեցիֆիկ ինչ-որ ծրագիր, այսինքն՝ դրանից զատ պահանջվում է soft skill կոչվածը, այսինքն՝ հմտությունները, որոնք, որ ընդհանրապես տեխնիկական չեն, դա՝ բացատրելու ունակությունն է: Օրինակ՝ դու ոնց ես հարաբերվում այն սկսնակի հետ, դու, շատ բան իմանալով հանդերձ, կարողանո՞ւմ ես մեջիցդ կոտրես այն մեծամտությունը, որ կոպիտ չպատասխանես, հանգիստ բացատրես, համբերտար բացատրես, մի բանը 5 անգամ բացատրես, երբ որ ինչ-որ մեկը մի բան սխալ է անում ներողամիտ գտնվես, որովհետև ես շատ դեպքերում սկսում եմ հիշեցնել ծրագրավորողներին, որ մի բողոքի այդ սկսնակից, երբ որ դու էիր իրա կարգավիճակում, ես անտրտունջ քեզ այդ նույն բանը բացատրել եմ, բարի եղիր դու էլ նույնն անես: Դա աշխատանքի կազմակերպման, պլանավորման, աշխատանքդ ճիշտ ձևի բաշխման, հետո ճիշտ ձևի հետ հավաքման, այսինքն՝ այն հավելյալ բեռն է, որն արդեն զուտ օֆիսային ասեմ, թե բիզնեսային ասեմ, դա վերաբերվում է կազմակերպչական հմտություններին, բացի՝ տեխնիկականից: Բնականաբար, մարդիկ միշտ ավելի երկար փորձ ունեցող ծրագրավորողից ակնկալում են նախևառաջ տեխնիկական աջակցությունը ու սկսնակները: Բայց կազմակերպությունն ակնկալում է այդ սկսնակից տեխնիկականից զատ նաև հենց այդ հմտությունները՝ soft skill-երը, մարդկանց հետ հարաբերվելու այդ հմտությունները, որովհետև մեծ պրոբլեմ է։ Երբ երկար տարիներ մարդը համակարգչի առաջ նստած սովոր է շփվի համակարգչի հետ, շատ ուղիղ շփում է՝ ես այս կնոպկան սեղմեցի, այսինչ բանը սկսեց բացվել: Փոխմիարժեք շփում է: Չկա այդտեղ չհասկացված լինելու, սխալ հասկացված լինելու բեռը, այն շատ փոքր է: Շփվում ես ինչ-որ քառակուսի սարքի հետ: Բայց, երբ որ այդ մարդուն դնում ես ինչ-որ միջավայրում, որտեղ իրենից կախված են այլ մարդիկ, իրա խորհրդին են սպասում, իրա կոդի review-ին են սպասում, ոնց review կանի, review կանի վիրավորելով, կատակ անելով, թե՝ ասենք օգնելով: Կասի սա լավը չի, թե կասի լավը չի ու ճիշտը որնա, այսինքն՝ սրա նման մանր մունր ահռելի քանակի նյուանսներ կան, երբ որ արդեն մարդկային հասունության հետ է կապված: Բավարար չի, որ դու լինես 6 տարվա ծրագրավորող, 5 տարվա ծրագրավորող, թե 15 տարվա ծրագրավորող՝ մարդկանց հետ հարաբերվելու ունակություններ ունես, կամ՝ չունես: Գուցե, թե որոշ դեպքերում քո տեխնիկական գիտելիքները, սպեցիֆիկ գիտելիք չունենալը ներվի, մարդ ենք բոլորս էլ, ինչ-որ սպեցիֆիկ բան կա չենք իմանում, բայց կկարդաս կիմանաս: Դա կներվի, բայց մարդկային շփման մեջ ինչ-որ մի կիքսը շատ ծանր է տանելու, թե՛ քո թիմը, թե՛ քո ղեկավարությունը, որովհետև պետք է հասկանան. Տեխնոլոգիան՝ տեխնոլոգիա, լեզուն՝ լեզու, ֆունդամենտալ ծրագրավորման կոնցեպտները, ալգորիթմները, մաթեմատիկան շատ լավ է ու անպայման, բայց նաև զարգացնել զուգահեռ, այդ շփումը, տակտով շփումը, որովհետև մենք մեծ բաց ունենք Հայաստանում: Բոլորը կփաստեն, որ աշխատանքի հայտարարությունների մի ահռելի մասը, ես դա դեռ 2008թ.-ին եմ նկատել, ես ու ընկերս բանկում նստած ու ինչ-որ պահի career center-ի հայտարարություններն էինք ստանում mail-ով, ինչպես միշտ գալիս էր: Ինչ-որ պահի ասեցի հլը արի նայենք էլի, ինչո՞ւ է միշտ գալիս senior, senior db, senior java, senior չգիտեմ ինչ, անընդհատ-անընդհատ: Հայտարարությունները ֆիլտրեցինք ու նայեցինք ծրագրավորման հայտարարություններն՝ ահռելի քանակի, մեծ մասը senior position-ների համար էր, այսինք՝ ոչ մեկ համարյա սկսնակ չէր ուզում, mid-level՝ շատ քիչ, մեծամասաբ ուզում էին senior: Ու հետո փորձեցինք սկսել հասկանալ, որ այն մարդիկ, ովքեր որոշակի փորձ են ձեռք բերում տարիների գիտելիքի և՛ այլն, և՛ այլն, շատ արագ պոկվում էին ու գնում Հայաստանից: Ու այնպես չի, որ կարող ես ասել, դե ինքը գնացել է, իրենից հաջորդին, ով կա՝ դիր senior: Բոլորս գիտենք, որ այդպես չի լինում: Չես կարող, ասենք այդ մարդը մի տարի է եկել, կամ երկու, չես կարող ասել, որ դու ես արդեն senior-ը: Դա ուրիշ skill set է, ուրիշ հմտություն է ու մինչև հիմա այդ տենդենցը կա: Այսինքն՝ մինչև հիմա ահռելի քանակի ֆիրմաներ չեն կարողանում ընդլայնվել, չեն կարողանում ավելի շատ պատվեր բերել Հայաստան, քանի որ այդ մի senior-ը 5 հոգանոց թիմ էր կազմակերպելու ու այդ մի senior-ը չկա, այդ 5 հոգին կան, թե մի senior-ը չկա: Նույնիսկ CV-ներ ստանալու, ռեզյումեների փուլը կազմակերպվում է այսպես. 50 CV-ից 40-45-ը սկսնակ են: Ու այստեղ հարց է առաջանում, այդ սկսնակներից մեկը մեր կազմակերպություն կգա, մյուսը՝ մյուս կազմակերպություն, այսինքն՝ ինչքան, որ տեղ ունեն սկսնակներ ընդունելու, բա մնացածը: Մնացածը՝ կբողոքեն, որ գործ չկա: Ու պարադոքս կստացվի, մենք անընդհատ պնդում ենք, որ ծրագրավորման ոլորտում գործ կա, մարդիկ սովորում են ծրագրավորում, այս սկզբնական էտապները, բայց չեն կարողանում գործ գտնել: Դառնում է խնդիր, բա ասում էիք գործ կա, այ սենց խնդիր է առաջանում, այ դրա համար ես կցանկանայի մեր մեսիջը հղենք, մեր ունկնդիրներին, ծրագրավորողներին, որ մի՛ կանգնենք, որտեղ, որ հասել եք, մի՛ բավարարվեք Ձեր եղածով: Ձեզ mid-level կանվանեն, թե ոչ մի բան էլ չեն անվանի, բայց դուք կիմանաք, որ դեռևս senior չեք համարվում: Անպայման ձգտեք, լրացրեք Ձեր ֆունդամենտալ գիտելիքների բացը, որքան կարող եք: Գուցե, այդ ալգորիթմների 90%-ը երբեք էլ չօգտագործեք, բայց մտածողության վրա, դա իր ազդեցությունը թողնելու է: Դու կհաստատես, որ երբ կոդը բացում, նայում ես ակնհայտ երևում է այս ֆունկցիան գրող մարդը մաթեմատիկայից լավ է, թե՝ վատ: Ակնհայտ է: Այն, ինչը կարելի է 5 տողում գրել կարող են 50 տողում գրել կամ 40 տողում, այսինքն՝ կոդի մեջ ձեր ձեռագիրն երևում է: Դու չես կարող դա խաբել, կեղծես քեզ: Դու կա՛մ այդ կաս, կա՛մ՝ ոչ: Մտածողության այդ մոդելները կամ քո ուղեղում ձևավորվել է, կամ՝ ոչ: Շատ դեպքերում ասում եմ, որ օնլայն թուլեր կան, կոդ սիգնալ կա, HackerRank կա, տարբեր կոդ ֆորսիս կա, մտեք ինչքան կարող եք խնդիր գրեք, ինչ լեզվով կլինի, որը կկարողանք, հեշտ ծայրից կսկսեք, միջին ծայրից, մի ծայրից սկսեք: Շատ գրեք, թեկուզ նույնատիպ, որովհետև դա շաբլոններ է ձևավորում ձեր ուղեղում՝ տիպական խնդիրներին արագ ու ճիշտ լուծում տալուն: Թեկուզ, խնդիրների մեծ մասը կրկնվող են տեսքով, չնայած միջավայր կփոխվի, պարամետրեր կփոխվեն, սերվերը կփոխվի, բայց տեսակով շատ-շատ կրկնվում են: Ու եթե մենք նայեք մեթոդների բազմազանությանը, եթե ես չեմ սխալվում գոյություն ունի 8 կամ 9 մեթոդ ընդհանրապես խնդիր լուծելու: Եթե սկսենք ամենատուպոյից, որը որ brute force-ն է, ոչ մի խելքին մոտ բան մոտդ չի գալիս, ուզում ես բոլոր տարբերակները փորձիր, հետո դրանից հետո հասկանում ես, որ եթե մասերը դասավորված են մեջը՝ էլեմնետ գտնելու համար, պետք չէ ծայրից ծայր նայել: Կարամ ասենք հատվածի կիսման մեթոդ անել, հետո հասկանում ես, որ եթե քո խնդիրը նման է ասենք տաքսիների, քաղաքների հեռավորություն հաշվելուն, ասենք մարշուտիզացիայի բանի, ուրեմն դա գրաֆների լուծելիք խնդրի դասի է պատկանում: Այսինքն՝ մեթոդները շատ չեն, քիչ են, այդ քիչը կարելի է սովորել, քչի սկիզբը կարելի է սովորել, կամ ընդհանրապես, ամեն դեպքում կարելի է շատ կարդալ: Ես շատ օրինակ՝ ժամանակին կարդացել եմ ու դա իմ վրա ազդեցությունը զգացել եմ: Ռուսական հայտնի habr.com-ը, habr.ru-ն բազմազան այլ հոդվածներ, կարող է ընդհանրապես կապ չունենար իմ բնագավառի հետ, լիներ ինչ որ սպեցիֆիկ տվյալների բազայի մասին, ինչ-որ մի բան: Բայց դա զարգացնում է մտահորիզոնը, դա ինչ-որ պահի, ինչ-որ գործի մեջ հիշում ես, որ այ գործիք կար, որը այս խնդիրը լավ էր լուծում: Կարող է սա փորձենք: Այսինքն, ամեն դեպքում, զուգահեռ Ձեր տեխնոլոգիային՝ անընդհատ պետք է մտահորիզոնը զարգացնել, soft skill-երի վրա աշխատեն, մարդկանց հետ շփվելու, բացատրելու, այսինքն՝ ձեռք բերեն այդ համբերությունը, որովհետև դա ծանր բեռ է: Դու կարող է ինչ-որ բան գրես, բայց դու կարող է չկարողանաս բացատրես: Շատ դեպքերում պարադոքսալ բան է ստացվում և ասում է, դե ես մինչև այսքանը բացատրեմ, ես՝ կգրեմ: Հա բայց ասում ես, դու չես կարող ամեն օր սա գրես: Չէ՞: Հերիք չես դու:

Վահրամ - Պետք է այնքան բացատրի, որ ինքն էլ կարողանա այդպես սկսի գրել:

Էդգար - Որովհետև գործն արդեն շատանում է, պահանջարկը շատանում է, դու հերիք չես: Կլինի մի քիչ ժամանակ ու ջանք տրամադրես ու այդ մարդն էլ իմանա:

Վահրամ - Ճիշտն ասած, շատ ուրախ եմ, որ այդ soft skill-ի հարցը բարձրացրեցիր, ես իրենց ոնց որ կողքից էի դիտարկում, բայց արի բերենք իրեն մեջտեղ: Իմ ուսանողներին էլ եմ ես ասում, որ շատ ավելի հեշտ է գործ ունենալ համակարգչի հետ, քան մարդու և ծրագրավորողի համար իրական մարտահրավերը հենց դա է: Քո կողքի մարդու հետ աշխատելը, այլ ոչ թե՝ քո դիմացի համակարգչի։ Դա հեշտ է: Քո կողքի մարդուն պետք է հասկանաս, դու պետք է նրան ճիշտ մոտենաս, ամեն մարդ տարբեր ձևի է ու չգիտեմ ինչ, չգիտեմ ինչ: Այդ soft skill-երը HelpSystems-ում դրված են մի առանձին գծով գնում են, այսինքն՝ մենք պահանջում ենք, որ ոչ միայն լավ կլինի, այլ պահանջում ենք հստակ, որ ավագ ծրագրավորողն ունենա այս, այս այս soft skill-երը: Եվ դրա մեջ մտնում է և՝ դասավանդելու ունակություն, և՝ ներկայացնելու ինչ-որ բաներ, որպեսզի ընկերությունը կարողանա իր ավագ մասնագետին ուղարկի մի ինչ-որ կոնֆերանսի և իմանա, որ այդ մարդը կկարողան այնտեղ մի երկու բառ կապի, այսինքն՝ public speaking ունենա, որովհետև ինքն արդեն ավագ մասնագետ է։ Ո՞վ, եթե ոչ ավագ մասնագետը, պետք է կարողանա ներկայացնել ընկերությունը, օրինակ՝ խոսել: Այդ տիպի հմտությունները մենք կիսաստիպողաբար փորձում ենք զարգացնել բոլոր աշխատողների մոտ, հատկապես կարևոր է ավագ մասնագետներինը: Ասեմ ավելին՝ ես փորձում եմ իմ դասերի ընթացքում էլ, օպերացիոն համակարգերի դասի ընթացքում, ես փորձում եմ ուսանողներին բացատրել ինչ soft skill-եր են իրենց պետք: Հասարակ բաներ. Ինչպես հարցազրույցին ներկայանալ, ինչպես CV կազմել, ինչպես ասենք կոնֆլիկտային իրավիճակներում մոտենալ: Էլ ավելի կարևոր բան, որ ես՝ ինքս, իմ վրա զգում եմ։ Դե ես նույնիսկ ավագ ծրագրավորող չեմ, արդեն մի քանի տարի թիմի ղեկավար եմ։ Ես օր օրի լավացնում եմ իմ soft skill-երը, դա ուղղակի ֆանտաստիկա է: Այսինքն, երբ դու զգում ես, թե ինչ կարող են քեզ բերել կամ տալ այդ հմտությունները, որը դու չէիր էլ մտածում։ Ենթադրենք դու, երբ կարող ինչ-որ մարդու համոզել, որ նա ինչ-որ բան անի: Համոզելը՝ soft skill է, մարդուն բացատրել, որ այսինչ բանը պետք է անել, որովհետև իրեն պետք է դա անել, ոչ թե քեզ է պետք դա: Մարդուն համոզել, որ դա պետք է: Այդպիսի հմտությունները այ ղեկավար մարդկանց է պետք և ավագ ծրագրավորողը իրականում ղեկավարում է, նա ինչ-որ մի քանի հուգուց բաղկացած թիմ է ղեկավարում, նա պետք է մեկին մի բան համոզի, մեկին մի բան ստիպի, մեկին մի բան... չգիտեմ ինչ-որ մի այլ ձևով բերի ինչ-որ բանի, դրանք բոլորը soft skill-եր են և մենք ծրագրավորողներս իրականում ամենազգայունն ենք այդ հարցում, քանի որ մենք ավելի շատ գործ ենք ունենում տեխնիկայի հետ, իսկ տեխնիկայի հետ հեշտ է գործ ունենալ և մենք կորցնում ենք այդ հմտությունները։ Իրականում մենք մտածում ենք, որ դրանք մեզ պետք չեն։ Ո՞նց են պատկերացնում ոչ ծրագրավորողները, ծրագրավորողներին: Ասենք դրսից մեզ ո՞նց են պատկերացնում. ակնոցով, ինչ-որ անկյունում նստած, մարդկային աշխարհից կտրված, շփում չունեցող: Այդ դա էլ է մարտահրավեր, չէ՞: Օրինակ՝ ինչո՞ւ են մեզ այդպիսին տեսնում: Ես այդպիսին չեմ, դու այդպիսին չես, ասենք ինչո՞ւ են մեր մասին այդ կարծիքին: Որովհետև, միգուցե, այդպիսիք շատ են կամ, միգուցե լավ չենք ներկայացնում կամ մեզ չեն ճանաչում։ Որտեղի՞ց պետք է մեզ ճանաչեն:

Էդգար - Մեծամասամբ, հենց այդպես էլ կա: Այ գնալ ինչ-որ կոնֆերանսի և ինչ-որ բան ներկայացնել, որ ասեցիր ես հիշեցի մեր javascript կոնֆերանսը, որի մասին մոռացել էինք: Դա այսօր շատ ավելի մեծ դեր է խաղում մեր կյանքում, կոնկրետ՝ իմ: Մենք javascript կոնֆերանսի ընթացքում շատ քիչ ենք ունենում դիմումներ՝ ելույթ ունենալու, իգական սեռի ներկայացուցիչներից կատաստրոֆիկ քիչ, մի 5 կամ 2 հոգի Հայաստանից: Հովանավորության այդ փաթեթների և ստացած գումարի մեծ մասը ծախսում ենք, որ դրսից ելույթ ունեցողներ բերենք ու ցանկալի է, որ նրանք լինեն նաև աղջիկներ: Ու այստեղ հարցն այն չէ, որ մենք ցանկանում ենք այդ գենդերային բալանսը պահելով, ինչ-որ մեկին, ինչ-որ բան ենք ուզում ապացուցել, մենք ուզում ենք հասանելի ու չվախենալու դարձնել դա: Մենք ունենք աղջիկ ծրագրավորողներ, մենք ունենք լավ ծրագրավորողներ, բայց նրանք կոմպլեքս ունեն խոսալու, չեն դիմում, շատ քիչ են դիմում, շատ քիչ են աղջիկ ելույթ ունեցողները, բայց ես վստահ եմ, որ նրանք էլ ունեն բան կիսվելու, նրանք էլ են արել հետաքրքիր խնդիրներ, նրանք էլ են եկել հետաքրքիր լուծումների, բայց խոսելու այդ բանը փակ է: Դեռ աղջիկները իրենց հերթին: Ընդհանուր առմամբ, ես վստահ եմ, որ Հայաստանում էլ կան շատ լավ և ուժեղ ծրագրավորողներ՝ անկախ սեռից, ովքեր երկար տարիներ օֆիսներում աշխատել են, փորձ ունեն ահռելի և՛ այլն, և՛ այլն: Բայց 10 տարվա ընթացքում մի հատ հանդիպում, սեմինար, դաս, ելույթ չեն ունեցել, որովհետև ես տեսել եմ այդ տիպի ծրագրավորողներ: Շատ միզանտրոպ, փակ, ինքնամփոփ մարդիկ են: Հետո նայում ես ու ասում ես, բայց լավ, եթե ոչ դուք, ապա էլ ո՞վ պետք է այդ փորձը կիսի: Դա մի տեսակ ոնց ասեմ, որ կոպիտ չհնչի. Խոզություն եմ համարում: Այսինքն՝ դու բան ես սովորել, տուր միջավայրին, համայնքին, որովհետև դու սովորելու ընթացքում 100%-ով օգտվել ես այդ նույն Youtube-ի վիդեոներից, այդ նույն ելույթներից, այդ նույն կոնֆերանսներից, օգտվել ես այդ մարդկանց գրքերից, ձրի download ես արել, կարդացել ես, բարի եղիր, մի բան էլ դու հետ տուր: Տուր համայնքին:

Վահրամ - Իրականում, հիմա դա շատ տրենդային է` giving back to the community:

Էդգար - Մենք ունենք դեպք, երբ մեզ դիմել էր 16 տարեկան երեխան, դեռևս դպրոցական, նայեք ելույթ է ունեցել մեր կոնֆերանսին: Ու մեզ համար էլ է դա շատ ոգևորիչ ու ինքն էլ դեռ առաջին անգամ էր, հուզվում էր, բայց նայեք շատ լավ ելույթ է ունեցել: Հետո մյուս տարի էլ է ելույթ ունեցել: Դու արդեն հասկանում ես, որ այդ երեխայի մեջ այդ կիսվելու ջիղը կա, կարող է շատ բարդ թեմա չէ, կարող է շատ սպեցիֆիկ թեմա չէր, բայց՝ ոչինչ: Մարդն արդեն լավ ճանապարհի վրա է: Ինքն արդեն, եթե ոչ գործի համար էր, ինքն արդեն այդ տարվա ընթացքում փորձելու է մի հետաքրքիր բան անի, որ մյուս տարի գա կոնֆերանսին ու պատմի: Ու դա կլինի JS. conf-ին, BarCamp—ի՝ դա արդեն էական չէ։ Մարդիկ ուզում են կիսվել, դա տեսակ է մարդու չգիտեմ, բայց ամեն դեպքում, եթե նույնիսկ այդ տեսակի չես, կարելի է զարգացնել այդ հմտությունը: Սկսելով փոքր meet-up-ներից՝ քո օֆիսում ելույթ ունենաս, ինչ-որ ներկայացում կազմես, գաս քո օֆիսի երեխեքին պատմես, հետո ավելի մեծ, հետո կոնֆերանս, հետո կգնաս արտասահման կոնֆերանս, բայց դա էլ կապ ունի, ինձ թվումա, ավագ ծրագրավորողների պակասի հետ, նրանք մի կողմից քիչ են, այն եղածներն էլ ինքնամփոփ ինչ-որ մի տեղ նստած, շատ բարդ բան են անում, ոչ մեկին չեն պատմում, թե ինչ են անում: Հետաքրքիր պարադոքս է:

Վահրամ - Շատ լավ, ուրեմն մենք եկանք հասանք փիլիսոփայական բավականին բարձր շերտերի, աբստրակցիայի, փորձեմ մի փոքր էլ, մի քայլ էլ անել հեռու: Ի՞նչ ես կարծում, մտավորական բառի որևէ իմաստով, ժամանակային առումով, թե լայնության, մտավորական ասածը մենք պատկերացնում ենք ինչ որ սենց մորուքով, նկարիչ կա՛մ միգուցե գրող, կա՛մ չգիտեմ արվեստի գործիչ, կա՛մ չգիտեմ կարող է գիտնական, բայց երբեմն գիտնականին չեն հասկանում մտավորական ասելով: Չգիտեմ, օրինակ՝ դու ո՞նց ես պատկերացնում ծրագրավորող-մտավորականին: Կա՞ այդպիս բան, կամ կարո՞ղ է լինել:

Էդգար - Այսպես ասեմ, ինձ թվում է ծրագրավորողներն արդեն հայտ են ներկայացնում՝ լինելու մտավորական: Մենք դա տեսնում ենք, դա դրսևորովում է ֆեյսբուքում: Ահագին ֆեյսբուքյան օգտատերեր կան, այսպես ասած, ովքեր հայտնի ծրագրավորող են կա՛մ ծրագրավորման ֆիրմայի ղեկավար են, կա՛մ ստարտափի հիմնադիր են, ովքեր, որ ակտիվորեն փորձում են խառնվել և մասնակցել հանրային կառավարմանը, քաղաքականությանը, քաղաքական որոշումներին, հայտնել իրենց կարծիքը, ցույց տալ այլընտրանքը, քննադատել, եթե պետք է: Ներկայացվում է այդ հայտը, ըս իս, կամաց-կամաց, բայց կա: Գուցե, մարդկանց ընկալումներում դեռ լավ չընկալվի, օրինակ՝ դեռ չեմ լսել, որ որևէ մեկն ասի, տո դու ծրագրավորող ես գնա, քո ծրագրերով զբաղվի, օրինակ՝ լինում է չէ, որ մի հայտնի դերասան շատ լավ միտք է ասում, բայց այդ մտքի ընդդիմախոսներն ասում են, տո գնա դու քո դերասանությամբ զբաղվի: Ասենք ինչ, որ մարդը դերասան է ուրեմն պետք է խոսք չունենա կա՛մ ծրագրավորողը, կա՛մ նկարիչը, բա ո՞վ ունենա, ամեն մեկը ինչ-որ մի բանի մասնագետ է չէ, բա ո՞վ ունենա խոսք: Եթե ասենք խոսքդ կառուցողական է, խոսքդ լավն է, եթե խոսքդ իմաստ ունի, ի սեր Աստծո, ուզում ես դերասան եղիր, ուզում ես ծրագրավորող: Հիմա ինչով են ծրագրավորողները սպեցիֆիկ կամ ինչով են առանձնանում, ըստ իս, այ հենց այդ աբստրակտ մտածողության ունակությամբ: Ուրեմն, մենք գիտենք, որ աբստրակցիաներ անելը, պարզ աբստրակցիաները հեշտ է: Ասենք երեխաները նայում են թվերին, ասենք, որ նոր թվերը սովորում է, մի քանի թիվ սովորում է, հետո մի թիվը չի իմանում ասում ես դա ինչ է ասում է, դե թիվ է: Ինքը քեզ դասն է ասում, ինքը մի հատ վերացարկում արեց արդեն, չի ասում կոնկրետ թիվա, ասում է թիվ է: Նայում է տառերին ասում է տառ է: Չգիտեմ, որ տառն է, բայց տառերի դասին է պատկանում, այսպես ասած: Ու սկսվում է կառուցվել կյանքի աբստրակցիոն շերտերը: Ես ասենք քննադատական մտածողություն եմ դասավանդում զուգահեռ Լիբերալ քաղաքական դպրոցում ու այդ կտորը կա: Ասում եմ, երբ որ մենք խոսում ենք, շատ դեպքերում մենք խոսում ենք աբստրակտ կատեգորիաներով: Մենք ասում ենք, օրինակ՝ տաքսիստները, կոնկրետ տաքսիստի մասին չես ասում չէ, ծրագրավորողները, ծրագրավորողների վերաբերյալ ինչ-որ օրենսդրական նախաձեռնություն կամ ինչ-որ մեկ այլ բան: Սկսում ենք աբստրակտ կատեգորիաներով խոսել ու սկսում ենք որոշումներ կայացնել ու ընդունել որոշումներ աբստրակտ կատեգորիաներին վերաբերվող: Ու ասում ենք, որ այդպես է ստացվել, որ ամենաբարձր կարգի աբստրակտ կատեգորիաներով աշխատում է Ազգային ժողովը: Կարող է իմ ու քո համար դա մի քիչ տարօրինակ թվալ, որովհետև մենք ծրագրավորող ենք, մենք ավելի աբստրակտ բաներ ենք անում: Բայց մեր կյանքին անմիջապես առնչվող ամենաբստրակտ կատեգորիաներով աշխատում է Ազգային ժողովը, նրանք են ընդունում օրենքներ, այս կամ այն աբստրակտ կատեգորիաների մասին՝ հղիները, ծրագրավորողները, տաքսիստները, չգիտեմ այնտեղ միգրանտները և՛ այլն, և՛ այլն: Դրանք աբստարակցիաներ են: Ուրեմն, ինչքան պետք է զարգացնել իրենց մտածողությունը, որ ճիշտ վերաբերվեն, ճիշտ վերլուծեն, ճիշտ ինֆորմացիան դասակարգեն, թացը չորից տարբերեն, կեղծը՝ ստից, աղբյուրը ստուգեն, հետազոտության հիման վրա կայացնեն որոշում, ոչ թե էմոցիայի վրա կայացնեն որոշումը, որովհետև մեզ մոտ և ընդհանուր աշխարհում էմոցիոնալ ֆոնը և էմոցիոնալ ղեկավարումը շատ մեծ է: Մարդիկ, քանի որ մեծ մասամբ մաթեմատիկա չեն սովորում, լավ տրամաբանություն չեն սովորում, իրենք շատ հեշտ տրվում են մանիպուլյացիաների, շատ հեշտ տրվում են ականջահաճո խոսքին, որը ճիշտ չի, որը շատ դեպքերում ուղիղ հակառակն է, բայց՝ ականջահաճո: Ու ունակություն չունենալ, այդ անալիզն անելու, բերում է տենց խնդիրների, որ ունենում ես շատ ոգևորված ասա, որը կայացնում է ոչ ճիշտ որոշում: Օրինակ՝ ես այդ առումով, մեկ-մեկ շախմատին եմ կպնում, որ հիմնավորում կա, որ շախմատը տրամաբանություն է զարգացնում: Այ, օրինակ՝ ես հիմքից դրա հետ համաձայն չեմ, ահագին մարդու հետ վիճել եմ, ես՝ ինքս, փոքր տարիքում շախմատ պարապել եմ, լավ խաղացել եմ, կրվել եմ, կրել եմ ու եսիմ ինչեր եմ արել: Ու ես համոզված եմ, որ շախմատը որևէ կապ չունի տրամաբանության հետ: Մենք շախմատից լավ ենք ազգովի, բայց մենք մեր հանրային դիսկուրսում տրամաբանության վրա թքած ունենք: Այսինքն՝ խելագար քանակի անտրամաբանական, հակատրամբանական բաներ կան մեր մոտ: Ու երբ, որ ես սկսում եմ այդ կուրսերի ընթացքում բացատրել տրամաբանական այդ կեղծ դատողությունների դասկարգումները, ֆորմալ, ոչ ֆորմալ, պատճառհետևանքային կապ, պատճառհետևանքային կապի խզում, տալ արգումենտներից ճիշտ ենթադրության գնալ, ճիշտ արգումնետներից սխալ ենթադրություններ հանել, հիմա այդ բոլոր դասակարգումներով, երբ որ մենք անցնում ենք վերջում ասում եմ ժողովուրդ հիմա շախմատ խաղալուց էսքան բացատրած խաղից, որն եք տեսել: Գուցե, դա զարգացնի ստրատեգիկ մտածողությունը, դեմ չեմ, հիշողությունը, դեմ չեմ, բայց բուն տրամաբանության հետ ֆորմալ իմաստով, ես ու դու կարող ենք պատկերացնել, դա ընդհանրապես կապ չունի: Մեր մաթեմատիկայի դասավանդման վատ որակը բերում է նրան, որ մեր հանրային դիսկուրսները շատ վատն են, տրամաբանության իմաստով շատ վատնն են, թե՛ կլինի դա դեբատ, թե՛ կլինի դա ինչ-որ մի հատ ելույթ, երբեմն ուղիղ հակատրամաբանական են: Տրամաբանության հետ առնչությունն ինչի համար եմ այդքան շատ շեշտում, տրամաբանությունը կատարյալ գործիք չի, բայց թերևս դա միակ գործիքն է, որը թույլ է տալիս մեզ, արգումենտները ստուգել, վերստուգել, արգումնետների վրա կառուցել տրամաբանական շղթա, տրամաբանական շղթաներից էլ գալ ինչ-որ եզրահանգման: Բայց, եթե դա է այդ ապարատը զարգացած չի, սկսում է աշխատել էմոցիան և էմոցիոնալ որոշումները, էմոցիոնալ ընկալումները: Հիմա վերադառնամ ինչից եկա հասա այստեղ: Ծրագրավորողները որպես մտավորական: Այո՛, ես համարում եմ, որ ծրագրավորողները ունեն ավելի մեծ շանս լինելու մտավորականը, լինելու այդ խիղճը, այդ ուղղություն ցույց տվողը, ինչի, որովհետև նրանք այն մարդիկ են, ովքեր տարիների ընթացքում ավելի շատ են զարգացրել իրենց աբստրակտ մտածողությունը, խնդիրը լուծելու ունակությունը և խնդիրներին համակողմանի նայելու հմտությունը: Դրա համար ինձ թվում է, որ ինչքան էլ հիմա կան ես կուզեի, որ ավելի շատ լիներ ծրագրավորողների մասնակցությունը հանրային կյանքում, որոշումների վրա, կարծիք հայտնելուց, քննադատելուց կամ ինչ-որ բան լուծում առաջարկելուց, որովհետև իրենք սովոր են խնդիր լուծել: Լավ կամ վատ իրենք ամեն օր դրա մեջ են:

Վահրամ - Շատ շնորհակալություն կարծիքի համար։ Փաստորեն ստացվում է, որ մենք ինչ-որ լույս ենք թունելի վերջում ու երևի, թե շատ չեմ սխալվի ասել, որ իմ ու քո պես մարդկանց վրա է հենց այդ պարտականությունը՝ օգնել ծրագրավորողին դուրս գալ այդ մտավորականի կարգավիճակ: Այսինքն՝ ոչ թե ես ու դու, այլ մեր հետ աշխատող այդ փակ մարդկանց, ովքեր ունեն լավ մտքեր, բայց չեն ասի, չգիտեմ թե ինչու: Փորձենք նրանց բերել այն վիճակին, որ միգուցե 10 տարի հետո նրանցից մի մասը կարողանա, ոչ թե ուղղակի իր կողքինի հետ լավ շփվի, այլ կարողանա դուրս գալ public speaking-ի ինչ-որ հմտություններ կիրառելով, իր այդ քո այդ տրամաբանական, ճիշտ ստուգված, լուծումն այնպես ներկայացնի, որ թեկուզ հենց Ազգային ժողովն ընդունի և կյանքի կոչի այդ միտքը: Շատ շնորհակալություն զրույցի համար, ճիշտն ասած, մենք կարող ենք այսպես անվերջ զրուցենք, որովհետև զրույցը շատ հաճելի է, մթնոլորտը շատ հաճելի, շատ հարմար տեղավորված ենք ու թեմաներն էլ կարող ենք գնալով էլ ավելի զարգացնել ու խորացնել, բայց մենք դեռ կհանդիպենք: Կարծում եմ, որ դու էլ ավելի հետաքրքիր թեմաներ կունենաս մեզ պատմելու, կլինի դա մաթեմատիկայից, թե՛ ծրագրավորման այլ բնագավառներից, թե՛ տրամաբանության մասին: Ուրախ կլինեմ հետագայում ևս շփվել: Մեր փոդքասթը լինելու է տարբեր ֆորմատների, տարբեր բովանդակությամբ, բայց միշտ լինելու է հետաքրքիր, լինելու է ծրագրավորողների համար և մասին, կարծում եմ կհանդիպենք:

Էդգար - Ես էլ եմ շնորհակալ հարգելի՛ Վահրամ։ Հետաքրքիր զրույց էր ամեն դեպքում, ինչից ասեք խոսեցինք, որտեղից սկսեցինք, որտեղ ավարտեցինք, հուսով եմ նաև, որ այս խոսակցության ինչ-որ առանձին հատվածներ, գուցե առանձին էլ հետո տարածենք, որպեսզի շատ երկար մասը մարդիկ խնդիր չունենան լսել: Շատ շնորհակալ եմ, հուսով եմ՝ դեռ կհանդիպենք, ինձ թվում է դեռևս մենք անելիք ունենք, խոսելու բան կունենաք:

Վահրամ - Շնորհակալություն: