#4. Լավ ծրագրավորողի բնութագրիչները

Վահրամ Մարտիրոսյան - Ողջույն հարգելի՛ ունկնդիրներ, եթերում է «Զրույցներ ծրագրավորման փիլիսոփայության մասին» փոդքասթի հերթական թողարկումը: Եվ այսօր ևս ունենք հետաքրքիր հյուր: Ինչպես միշտ զրույցը լինելու է փիլիսոփայական մակարդակում, լինելու է ծրագրավորողների համար և նրանց մասին և էլի, ինչպես միշտ մեր հյուրը ծրագրավորող է: Իմ այսօրվա հյուրն է Արմեն Գրիգորյանը, ով եղել է իմ դասախոսը։ Այսինքն՝ մեր ծանոթությունը սկսվել է դրանից։ Իհարկե դրանից հետո շատ բան է փոխվել, ավելի շատ Արմենին ճանաչում ենք, որպես ձեռնարկատեր, ստարտափ ինչ-որ շարժումների մեջ եմ բազմիցս հանդիպել, առնչվել Արմենի անվան հետ, ինչպես նաև ԲարՔեմփի կազմակերպիչներից, եթե չեմ սխալվում: Ողջո՛ւյն Արմեն, կցանկանամ քեզ փոխանցել խոսքը, մի փոքր ներկայանաս, պատմես քո մասին:

Արմեն Գրիգորյան - Շնորհակալություն Վահրամ, շատ շնորհակալություն, որ ինձ հրավիրեցիք, հետաքրքիր էր ստանալ այդ հրավերքը և խոսենք, իհարկե, ծրագրավորման մասին: Մի փոքր երևի, թե իմ մասին պատմեմ։ Ես իրոք ծրագրավորող էի իմ կարիերայի սկզբի ժամանակ, դա մոտավորապես պրոֆեսիոնալ գործունեության կեսն էր, երկրորդ կեսում զբաղվել եմ ստարտափներով՝ enterpreneurship-ով և այլն, որը երևի թե շատ քիչ է այսօր, դրա մասին դեռ կխոսենք, որովհետև դա վերաբերվում է, թե ինչպես ծրագրավորողների հետ աշխատել: Ես՝ ինքս, ավարտել եմ Կիրառական մաթեմատիկայի և ինֆորմատիկայի ֆակուլտետը՝ Երևանի պետական համալսարանում, աշխատել եմ միշտ US-based company branch-երում Հայաստանում, մեր ժամանակ դա eda բնագավառն էր, այսինքն՝ C++, բավականաչափ խորացած ալգորիթմներ, տվյալներ։ Մոտ 6 տարի, փաստորեն, Երևանի պետական համալսարանում ունեցել եմ գործնական և դասախոսություններ, C++ և SLM-ի և հետո տեղափոխվել եմ Միացյալ նահանգներ և հետո հետ եմ եկել ու սկսել եմ զբաղվել ստարտափներով: Ստարտափները, հենց առաջին ստարտափը նորից eda բնագավառում էր, էլի C++ էր, դրանից հաջորդներն արդեն տարբեր տեսակի, ուրիշ տեխնոլոգիաներ էին Mobile ծրագրավորում էր, web տարբեր տեսակի պլատֆորմաներ ինտերնետային, ֆինանսական և այլն:

Վահրամ - Շատ լավ, շնորհակալություն, ուրեմն՝ ունենք մի քանի տիպի գործունեություն՝ հա՛մ ծրագրավորում, հա՛մ դասավանդում, հա՛մ ձեռնարկատիրություն, հա՛մ նաև ինչ-որ կարելի է ասել սոցիալական ակտիվություն, այսինքն՝ հենց նույն ԲարՔեմփի կազմակերպումը: Այսինքն՝ ծրագրավորողների հետ աշխատելու քո ունեցած փորձը բազամակողմանի է, հա՛մ ներսից, հա՛մ կողքից, հա՛մ վերևից ինչ-որ իմաստով, որպես ղեկավար, որպես դասախոս: Ուրեմն՝ այսօրվա զրույցը կուզեմ կառուցենք այսպիսի մի թեմայի շուրջ, թե ի՞նչ է ծրագրավորող ասածը, ի՞նչ հատկանիշներ ունի, ինչպե՞ս առանձնացնենք, կա՜մ ինչ-որ սահմանենք, կա՜մ չգիտեմ ինչպե՞ս տարբերենք ծրագրավորողին մյուսներից: Ուրեմն՝ թեման հենց Արմենն է առաջարկել, կարծում եմ, որ այստեղ բավականին հետաքրքիր նյութ պետք է մեզ մատուցվի, խնդրեմ ընդհանուր ինչ-որ դրույթներ, եթե կարելի է դուրս բերել:

Արմեն - Եղավ, ուրեմն՝ ես կուզենայի ընդհանրապես մի հատ ընդհանուր ասենք ծրագրավորումն ինչ է, որովհետև շատ մեծ transition, այսինքն՝ ձևափոխում է ապրել այդ մասնագիտությունը: Ժամանակին՝ դա մոտ 40-50 տարի առաջ, բավականաչափ նեղ մասն էր գիտական, ինժեներական ընդհանրապես ուժի, որը որ կոնկրետ ծրագրեր էր գրում, այսինքն՝ հաշվարկային ծրագրեր էր գրում, որպեսզի ապահովի ուրիշ ինժիներական կամ ինչ-որ ուրիշ տեսակի գործունեությունը: Վերջին տասնամյակներում, 20 տարում, դա էվոլուցիա է ապրել և շատ ուժեղ փոխվել է: Շատ մեծ քանակի աշխատանք է առաջացել, որովհետև digitization է գնում ընդհանրապես աշխարհի, մեր գործունեության, մարդկային պրոցեսների և ծրագրավորողները սկսեցին տարբեր տեսակի բնագավառներում օգտակար լինել, որն առաջին հերթին, կարելի է այդպես ասել interface-ային և տվյալների փոխանակության բնագավառներն են: Այսինքն՝ հիմա կան շատ մեծ բնագավառներ, որտեղ ձեզ պետք չէ, ծանր computation, այսինքն՝ հաշվարկային ոչ մի գիտելիքներ, ալգորիթմներ և այլն: Հիմա մեծ քանակի տվյալներ են փոխանցվում, կամ interface-ային interaction-ի վրա: Բոլոր մեր Mobile, web ծրագրավորումը դա, ոնց որ մարդու և օգտագործողի հետ Interface անի, որը նույնպես պետք է արվի, դա պետք է արվի բարձր մակարդակով, հարմար լինի և ծրագրավորողներն այսօր լուծում են շատ ավելի լայն բնագավառի, տեսակի խնդիրներ և դրա համար, երբ որ ասում են ծրագրավորող, մի քիչ բարդ է հասկանալ, ինչ են ուզում մարդիկ հարցնել, ինչի՞ ծրագրավորող, ինչքա՞ն գիտելիք պետք է ունենաք: Ըստ իս՝ հիմա ծրագրավորողն անպայման չի ունենա կլասիկ ակադեմիական կրթություն, ինքը կարող է լինել, թեկուզ փոխել իր մասնագիտությունը, ուրիշ մասնագիտությունից դառնալ ծրագրավորող, ես դրա հետ էլ եմ ok, որովհետև ծրագրավորող լինելը, խնդիրը լուծելու հետ պետք է կապել, դա իմ, ոնց որ փիլիսոփայությունն է: Պարզ է, որ ես՝ ինքս որպես մարդ, կարող եմ չպատմել, իմ ամբողջ background-ը դա շատ խորը ծրագրավորման հիմունքների վրա անցյալ է, բայց որպես գործատեր, մարդ, ով լուծում է ինչ-որ խնդիրներ արդեն ավելի լայն հասարակության համար ես հասկանում եմ, որ դու չես կարող օգտագործել heavy duty science, այսպես ասած, ծրագրավորումն ամենուրեք ու պետք չի, դրա կարիքը չկա:

Լավ, սկսենք նրանից, որ ծրագրավորողը՝ իմ համար ընդհանուր իր որակավորումը, դա մասնագետ է իր ոլորտում: Եթե դու մասնագետ ես, ուրեմն՝ դու լավ ծրագրավորող ես ու կապ չունի դու ինչ ես անում: Հիմա եկեք դրանից հասկանանք, ըստ իս, կա ամենաքիչը, ամենակարևորներն եմ ասում, կա 4 հատ հատկանիշ, որը ամեն ծրագրավորող պետք է ունենա, որ ուզում է որպես ծրագրավորող դա իր մասնագիտությունը լինի։ Ես իրենց թվարկեմ՝ այդ հատկանիշները.

  • առաջինը դա curiosity՝ հետաքրքրասիրությունը,

  • երկրորդը՝ passion - կիրք,

  • երրորդը՝ դա պրոֆեսիոնալ աճի ներկայությունն է միշտ

  • և չորրորդը՝ ճկունությունն է:

Հիմա մենք մի քիչ կխոսենք, կփորձենք բացել այդ չակերտները, եթե հարց կա կարող եք հարցնել:

Վահրամ - Մի բան արդեն հետաքրքիր է, այսինքն, եթե այդ 4 հատկանիշները վերցնենք, մենք դրանով միայն ծրագրավորողին հատուկ ինչ-որ պատկեր ենք ստանում, թե այդ նույն հատկանիշներով, օրինակ՝ կարող է օժտված լինել ասենք՝ բժիշկը կամ չգիտեմ՝ այլ ոլորտներում:

Արմեն - Այո՛, շատ ճիշտ նկատողություն էր, այո՛, դա իրականում պրոֆեսինալ լինելու չափաձևն է ուղղակի, երբ-որ ասում ենք ծրագրավորող, ես չեմ ասում, որ եկեք իրենց բաժանենք սկսնակի, փորձառուի, senior level, թե՝ ոչ, դա կարևոր չէ կամ դու կարող է ծրագրավորող ես, դու jenior ես նոր ես սկսել, բայց դու ծրագրավորող ես, եթե այդ հատկանիշներն ունես, կարող է դու երկար տարիներ աշխատում ես, բայց կներեք մի քիչ անհասկանալի է, ի՞նչ եք անում այս բնագավառում, եթե դա ձեր դուրը չի գալիս, դուք չունեք դրա կիրքը և դուք չեք աճում պրոֆեսիոնալ մակարդակով: Բայց այո՜, ընդհանուր ձևակերպումը, նման է կամայական պրոֆեսիայի:

Վահրամ - Այսինքն՝ ճիշտ եմ հասկանում, որ մենք խոսում ենք պրոֆեսիոնալ ծրագրավորողի, այլ ոչ թե՝ ինչ-որ սիրողական մոտեցման ծրագրավորողի մասին:

Արմեն - Դե էլի եմ ասում, դուք կարող է նոր եք սկսել, դուք ուզում եք դառնալ ծրագրավորող, ձեր գիտելիքները շատ քիչ է, երբ-որ դուք ասում եք, ես ծրագրավորող եմ, դա ինչ-որ շրջանակ նշանակում է: Այ ինչ է նշանակում ծրագրավորող, ես փորձում եմ իմ կարծիքը հայտնեմ, դա չի նշանակում, որ սա վերջին ատյանի որոշում է:

Վահրամ - Չէ՜, մենք այստեղ կարևորում ենք մեր հյուրերի կարծիքը հենց: Շատ լավ, եկեք սկսենք մանրամասնել այդ կետերից՝ յուրաքանչյուրի տակ ինչ ենք ուզում տեսնել:

Արմեն - Այո՛, փորձենք կարճ լինել, որ հետո կարողնանաք ավելի բացել, գուցե: Ուրեմն՝ առաջինը, դա հետաքրքրասիրություն է, որը curiosity-ն է, այն ըստ իս, շատ կարևոր է։ Նորից եմ կրկնում՝ կարևոր չի դուք նոր սկսնակ ծրագրավորող եք, ջահել եք, թե՜ տարիքով եք, թե՜ արդեն տարիների փորձ ունեցած ծրագրավորող եք, ըստ իս, դուք միշտ պետք է փորձեք հասկանալ, ինչո՞ւ է դա այդպես աշխատում, ոնց անել, որ դա հասկանալ: Իմ անձնական օրինակից, ես այսօր, որ մտածում էի, շատ հետաքրքիր բաներ կար, որը ես չէի գիտակցում, բայց ես առաջին անգամ համակարգիչ տեսա 13 տարեկանում, երբ որ համակարգիչ տենց բան չկար, համարյա թե երկրում: Եվ առաջին բանը, որ ես արեցի, երբ որ ստացա իրեն, հայրս բերել էր տուն 1 ամսով՝ աշխատանքից, և այդպիսի շռայլություն էր ինձ մոտ: Ես սկսեցի իրեն քանդել, շատ-շատ զգույշ՝ հիշելով ամեն մի մասնիկը, որտեղ էր կպնում ամեն մի գործիքը, որտեղից էր հանած և հետաքրքիրը նա էր, որ բացելուց հետո ես հասկացա, որ այնպես էր սարքած, IBM PC էր, որ դու չես կարող սխալ միացնել: Շատ հետաքրքիր էր, դու չես կարող սխալ լարը, սխալ տեղ դնես, որովհետև ամեն ինչն այնպես էր արած, կողքերը կտրած, որ միշտ դու ճիշտ ես հավաքում: Ինձ համար դա մի հատ հայտնագործությունն էր, սենց ինչպես ասում են մի հատ ուրիշ աշխարհ էր, ինչպես, որ ասում են взрыв мозга, ոնց կարող է նման բան լինել: Առաջին անգամ երբ-որ ես խաղում էի, պարզ է, որ երեխայի պես էի խաղում, կար համակարգ ու միանգամից իմ ձեռքն ընկավ, երբ MS-DOS, Norton-ը ու ես սկսեցի փորձել, ամեն ինչ փորձում էի: Ֆայլ copy անել DOS-ով, Norton-ով, ֆայլ ջնջել, ֆայլ վերականգնել: Այսինքն՝ դա մի բան է, որ ինձ շատ հետաքրքրում էր, թե ոնց է աշխատում: Եթե այդ բանը չկա, ոնց որ դու ուղղակի օգտագործող ես ինչ-որ չափով, եթե այդպիսի բան կա, դու ավելի ես՝ մեկ-երկու քայլ առաջ ես գնում: Երբ-որ մենք սովորում էինք Երևանի պետական համալսարանում, շատ հաջողակ ստացվեց, ես ալգորիթմական լեզուների ամբիոնից էի և, օրինակ՝ մեր ղեկավարը՝ պարոն Շուքուրյանը, մի օր եկավ ու ասեց, այ սենց մի հատ գիրք կա пентиум архитектура-ի mmx co-processor-ն է, վերցնում ես, կարդում ես, գալիս ես, մեզ պատմում ես ու դա էլ է, ոնց որ քո ուղուց կողք՝ մեկ քայլ, բայց ահավոր հետաքրքիր էր, որովհետև դու ուզած-չուզած, որովհետև ստիպել են ինչ-որ չափով, բայց հետաքրիքր էր շատ ու դու հասկանում ես, թե ոնց է մաթեմատիկական աշխատում, բազմապատկումները, մեծ թվերը և այլն: Ու տենց բաները curiosity-ն, ինքը հետաքրքրասիրությունն առաջ է հրում, դրա համար ես ասում եմ, եթե դուք սկսնակ եք, ջահել եք, դա մի ուժ է, որը ձեզ առաջ կհրի, եթե դուք արդեն փորձառու եք, դա այնպիսի ուժ է, որը ձեզ թույլ չի տա, որ ձեր պոտենցիալը հանգի, որովհետև միշտ նոր բան կա, թեկուզ դուք չեք փոխում ձեր field-ը, դուք կարող եք անեք նույն բանը շատ երկար տարիներ, ես ճանաչում եմ մարդկանց, ովքեր արդեն ինձանից էլ են տարիքով, բայց իրենք հաճույք են ստանում, որովհետև հենց իրենց ֆիլդում, իրենք անընդհատ ինչ-որ նոր բան են անում: Իրենց շատ հետաքրքիր է նոր ալգորիթմներ, նոր թեմաներ, հիմա օրինակ՝ աշխարհում անընդհատ նոր բաներ է առաջանում, որովհետև մեծանում է, արագանում է, օրինակ՝ Machine learning, կա՛մ Crypto, կա՛մ AI դրանք այնպիսի բաներ են, որ մարդիկ, օրինակ, որ ժամանակին C++ էին ծրագրավորում և շատ սուղ դարձավ իրենց օգտագործելու գործիքները: Միայն EDA company-ներն էի ուզում C++ ծրագրավորումներ, մնացած 90% ման էին գալիս Mobile, web և այլն: Հանկարծ պարզվեց, որ շատ մեծ կարիք կա այ հենց այդպիսի ալգորիթմ իմացող, C++ իմացող մարդկանց, որովհետև և՛ machine learning-ը, և՛ Crypto-ն, և՛ այլն, դա շատ low level և intensive computation խնդիրներ է: Դա առաջինն էր, եթե ուզում եք ավելի ինչ-որ հարցեր տաք:

Վահրամ - Լավ, չէ՜, մենք բոլորի վրայով անցնենք, ամբողջական պատկերը ստանանք՝ հետո կխորանանք:

Արմեն - Երկրորդը՝ passion-ը, իհարկե ասում են գտեք ձեր կիրքը, բայց դա այդքան էլ երևի ճիշտ չէ, որովհետև չես կարող ասել` ես այսօրվանից ման եմ գալիս իմ կիրքը, բայց իրականում, եթե դուք ծրագրավորող եք, մի հատ նայեք ինչն է ձեզ հետաքրքրում, ինչն է ձեզ միացնում: Iմ օրինակով՝ կարող եմ ասել, երբ-որ ես երեխա էի ու խաղեր էի խաղում, չգիտեմ խի իմ ձեռքն ընկավ գիրք, jv basic էր կոչվում, ես սկսեցի ծրագրավորել, չգիտեմ, թե ինչու: Իմ առաջին ծրագրերն էլի խաղեր էին, ես ինչ-որ չափով ուզում էի խաղ գրել, ուրիշ բան չէի կարող գրել, որովհետև Basic է հա ի վերջո, գրաֆիկական, դինամիկ բան չէի կարող գրել, բայց փորձում էի: Հետո մի քանի տարի չկար համակարգիչ, հետո ընդունվեցի համալսարան: Առաջին, երկրորդ կուրս էի չկար համակարգիչ և կուրսայինն էի գրում, asembler-ով էր, մեզ ասել էին ինչ-որ խնդիր վերցրեք գրեք, օրինակ՝ իմ ընկերները վերցրեցին գրեցին շրջանագիծ գծելու ֆունկցիան՝ assembler-ով, այսինքն՝ տալիս էին x,y, ռադիուսը սենց փորձում էր ֆունկցիայով նկարել, իսկ ես չգիտեմ խի, էլի չեմ կարող ասել, թե ինչու գրեցի морской бой՝ assembler-ով, որովհետև երբ, որ ես գրեցի պարոն Սարդարյանն ասաց. - «Չեմ հավատում, որ դու ես գրել», որովհետև listing-ը երևի սենց մի հաստ գիրք կլիներ: Սենց բացում էր, մի հատ սիրուն լոգո էր նկարում, ասում էր new game, մուտքագրի, կրակելուց ինչ-որ ձայներ էր հանում և հետո էլ հաջորդ տարի, քանի որ չկար համակարգիչներ, մենք փորձեցինք և ընդունվեցինք Մերգելյան ինստիտուտ՝ միայն նրա համար, որ այնտեղ կային համակարգիչներ: Եվ երբ-որ ստացվեց, մենք ուղղակի դասերից հետո ժամը 1-ին, 2-ին առանց տուն մտնելու և այլն, գնում էինք Մերգելյան և մինչև գիշերվա 10-ը: Վերջապես մեր ձեռքն ընկել էր համակարգիչ: Մենք այդ ժամանակ սովորեցինք C լեզու, սկսեցինք windows ծրագրավորում և հենց առաջին բանը, որ մենք գրում էինք, իմ ընկերը գրեց paint ծրագիրը, ոնց որ նորից 0-ից, ես գրեցի խաղ ու էլի դա շատ տարօրինակ էր, մի հատ խաղ կա՝ Пентамино, տետրիսի նման, բայց պետք է իրեն դասավորես կոնկրետ ինչ-որ ֆիքսած layout-ով ու այդպես փորձում էինք տարբեր ֆունկցիաներ drag-n-drop և այլն, փորձում էի և արեցի: Մի դեպք էլ պատմեմ։ Երբ-որ մենք աշխատանքի ընդունվեցինք, մենք շատ բարդ ալգորիթմական մասեր էինք գրում: Ես առաջինը վերջացրեցի, այնտեղ 3 մասի էր բաժանած՝ 3 հոգու մեջ: Առաջինը վերջացրեցի և վերցրեցի գրեցի մի հատ Interface, որ կարող եք պրոեկտ սարքել, ֆայլը բացել, կարդալ և այլն: Ու տենց ինչ-որ, երբ որ արդեն մեծ ֆիրմա էր, էլի ինչ-որ բան էինք անում, ես ինչ-որ չափով, ինչ-որ կետից, ես էլի տեղափոխվեցի ու սկսեցի Interface-ներ անել: Այսինքն՝ ես հիմա նայելով, հասկանում եմ, որ ես շատ էի ուզում հենց սարքեի այդպես Interface-ային բաներ, interactive, որ մարդու հետ է խոսում, ես երբեք չեմ ուզեցել նստել ու մենակ library գրեմ կամ ալգորիթմ գրեմ, չնայած արել եմ, կարող եմ, բայց իմ passion-ը դե ֆակտո միշտ եղել է կա՜մ խաղ, որն ունի Interface-ային բան, կա՜մ հենց Interface: Ու այդպես էլ ստացվեց, ինձանից անկախ հետո, երբ-որ ես որոշեցի զբաղվել ստարտափներով ամեն ինչ, ինչ-որ ես անում էի, բացի նրանից, որ ես կարող էլի լավ архитектура անել, բայց ես մի անգամ փորձում էի, հետո զբաղվում էի հենց UI-ով իր պրոդուկտի հետ և այլն, ես աշխատում էի դիզայների հետ, երկուսով, որ իր UX-ը անեինք: Այսինքն՝ Interface-ը, իմ passion-նն էր և ես ուզում էի պրոդուկտ սարքել, դա էր: Եվ իմ կոչը հետևյալն է, եթե դուք ծրագրավորող եք կամ ուզում եք ծրագրավորող լինել, որպես սենց՝ ես ծրագրավոող եմ, ուրեմն պետք է իմանաք ինչն է ձեզ վառում, ինչն եք դուք շատ սիրում անել, դուք տարբեր բաներ կարող եք անել: Ծրագրավորողները մի բան չեն անում, դուք կարող եք տարբեր լեզուներով, տարբեր պրոեկտներ անեք, տարբեր տեսակի պրոեկտներ անեք, բայց հաստատ ինչ-որ բան կա, որ երբ ամեն օր արթնանում եք, ուզում եք դա անեք, երբ որ դուք դա գիտեք, դուք դա կարող եք դարձնել ձեր путеводная звезда ու այդ դեպքում ինչ պլյուսներ կա հա դրանից. 1. դուք գիտեք ինչու եք դա անում, 2. Դուք երբեք չեք հոգնի, ինչպես ասում են, երբ որ դու զբաղվում ես այն բանով, որը քեզ շատ դուր է գալիս, դու չես աշխատում, դու հաճույք ես ստանում դրանից, ոնց որ կյանքը վառ է: Այն մյուս դեպքը, երբ որ դուք ուղղակի ծրագրավորող եք ու ասում եք դե ինչ ասեն կանեմ կամ տարբեր բաներ եմ արել, իսկ ի՞նչն է քո դուրը գալիս, դե չգիտեմ, ինչ-որ ծանր բան է չէ: Իսկ, երբ որ գտնում ես մարդու, ով ասում է հա տարբեր բաներ եմ արել, իսկ ի՞նչն է քո դուրը գալիս, այ իմ դուր է գալիս է սենց բան անել: Մարդ կա, օրինակ՝ ասում է ինչ-որ open source պրոեկտներ եմ անում, գիշերները չի քնում ինչ-որ open source բաներ է անում, commit է անում: Մարդ կա, մեր ժամանակվա մարդ էր, օրինակ՝ մասնակցում էր Linux kernel-ի update-ով: Դու էլ ես չէ զբաղվե՞լ դրանցով: Այսինքն՝ դա ինչ-որ հոբբիի նման բան է, որը կարող է լինել ձեր հիմնական աշխատանքը, բայց ինքը պետք է լինի: Եթե դուք ասում եք ես ծրագրավորող եմ ու հաջորդ հարցի պատասխանը, իսկ ի՞նչ ես դու անում, դե ամեն ինչ կամ ինչ տան, լավ պատասխան չի: Ըստ իս՝ ծրագրավորողը նա է, ով գիտի ինչ է սիրում, ինքը կարող է տարբեր բաներ անել, բայց ինքն ասում է ես սենց բան եմ սիրում: Օրինակ՝ ես, երբ-որ ծրագրավորող էին, ինձ հարցնում էին դու ինչն ես լավ անում, ես ասում էի, որ ինձ մոտ ավելի լավ է ստացվում архитектура անել, որովհետ ես այդպիսին եմ структура-ն տեսնում եմ միանգամից, բայց պարզվում է, որ ավելի շատ ինձ հետաքրքրում էր հենց computer programe human interaction-ը, այսինքն՝ Interface-ներ սարքելը:

Դա երկրորդն է: Չգիտեմ կհամաձայնվես դրա հետ, թե՝ ոչ: Երրորդը՝ մասնագիտական աճն է, որը ևս շատ կարևոր է, որովհետև եթե դու ասում ես ծրագրավորող եմ, դրանով կյանքը չի վերջանում, մենք անընդհատ սովորում ենք նոր բաներ ու լավ կլինի, որ դա լինի ոչ թե ստիպողական, աշխատանքի տեղը փոխեցիր, այնտեղ ինչ-որ նոր տեխնոլոգիա, դասավորեցիր ու ծրագիրը գրեցիր, որը որ մեծ բան չի, այլ ինքդ փորձես այս բնագավառում ինչքան հնարավոր է առաջ գնաս: Եթե դա քո մոտ կա, որպես trait, դու լավ ծրագրավորող ես ու դու կարող ես լինել սկսնակ ծրագրավորող, որը որ եռում է, ուզում է նոր բան սովորել, դու կարող ես լինել փորձառու: Իմ վրա եթե ասեմ, օրինակը՝ շատ հետաքրքիր ստացվեց, բախտներս բերեց, երբ-որ մենք, Հայաստանում էր առաջին US campany-ն էր, ընդունվել էինք մեզ մեծ քանակի գրքեր ուղարկեցին modern c plus plus, exceptional c plus plus և այլն, Сатори, Ալեքսանդր Իսպիրյան, design patterns և այլն, որոնց մենք բաց աչքերով նայում էինք, այս ինչ է: Ու սա սովորելուց՝ դա մեզ այնպես ոգեշնչեց, որ մենք ինքներս էինք շատ բաներ փորձում հասկանալ, օրինակ՝ չգիտեմ ծրագրերը գրում էինք տալիս էինք կոմպիլյացիա, նայում էինք assembler-ով կոդը գեներացված, որպեսզի հասկանանք полиморфизм-ն ինչպես է աշխատում կամ virtual class-ի virtual ֆունկցիան ոնց է իրականացված, որովհետև մենք անընդհատ վիճում էինք, տեսնեք ոնց են արել, որ այսպես արագ է կամ ինքը ոնց է հասկանում կոմպիլյատորը, որ սենց պետք է կատարման ժամանակ աշխատի և ոչ ուրիշ ձև: Այսինքն՝ դա ինչ-որ սենց մի հատ բան էր, որ ես ուզում եմ հասկանամ ինքը, ոնց է աշխատում, որովհետև եթե մենք աբստրակցիա անենք պարզ է, որ ծրագրավորողը գործ ունի տարբեր տեխնոլոգիաների հետ, որոնք գալիս են կա՜մ app-երի, կա՜մ library-ների տեսքով, դու կարող եք անել՝ առանց մտածելու, թե ոնց է աշխատում, չխորանաս, երևի այդպես էլ ինչ-որ պահի պետք է անես, բայց եթե դու գիտես ոնց է դա աշխատում, դա արդեն ուրիշ մակարդակ է և դա բոլորին խորհուրդ կտայի: Կամ մեկ այլ բան, որ դուք անում եք, դա չի նշանակում, որ նորից պետք է դա գրեք զրոյից, դա չի նշանակում, որ այնտեղ պետք է գրողի նման իմանաք, բայց պետք է հասկանանք՝ ոնց է աշխատում, ինչ է անում, ինչքան շատ իմանաք, այնքան լավ: Օրինակ՝ մենք նույն ձևի, քանի որ մասնագիտական մեզ պետք էր, ծրագիր էինք գրում, որը շատ մեծ ֆայլեր և տվյալներ պետք է կարդար ու հիշողության մեջ ալգորթիմներ աշխատեցներ, որն այնքան ծանր խնդիր էր, ոնց որ մենք date base էինք գրել, որովհետև այդքան տվյալ չէիր կարող մտցնել հիշողության մեջ, որը որ կարդում էր ֆայլից, գիգաբայթանոց ֆայլ էր, իսկ համակարգիչը մոտ 250 մեգաբայթ հիշողություն էր: Ու կարդում էիր ինչ-որ մասը գրում ես, մենք virtual memory management էինք գրել, դրա համար մեզ հետաքրքրում է, թե ոնց է աշխատում virtual memory management-ը: Ու մենք փորձում էինք ամեն մի բիթը կամ բայթը խնայենք: Դա պետք էր՝ խնդիրները լուծելու համար, բայց իրականում, որ այդպես մտածեինք, կարող էինք նաև չանել, փորձեինք և ասեինք աշխատում է, բայց մենք, ոնց որ մեկ քայլ ավել էինք անում, խորանում էինք, այսինքն՝ C++-ում ալոկատորներով, custom հավաքածու ենք գրել միայն և միայն նրա համար, որպեսզի լավ անենք այդ աշխատանքը: Այսինքն՝ մեկ քայլ ավել անենք, դա ըստ իս, կարևոր trait է ծրագրավորողի համար, եթե ուզում եք տենց արդյունքի հասնենք։ Ինչպե՞ս դա հիմա անել սկսնակների համար, օրինակ՝ շատ պարզ խորհուրդ կարող եմ տալ, փորձեք լուծել ծանր խնդիրներ, խնդիր, որը դուք դեռ չեք հասկանում, կա՜մ չեք կարողանում, կա՜մ մտածում եք, որ ինքն անլուծելի է, կա՜մ բարդությունը մեծ լինի, կա՜մ մի բան, որը դուք ասեք վաու, ոնց կարող էի նման բան անել: Փորձեք լուծել, դուք շատ մեծ քանակի բան կսովորեք այդ ժամանակ: Դա կլինի ձեր մեկ, երկու, երեք ավել քայլը, դա հա՜մ ձեզ զարգացնում է, հա՜մ էլ ձեզ safe confidence է տալիս, որը շատ լավ բան է, որովհետև մարդիկ սովորաբար, comfort zona կա, որ ինչ-որ բա լավ գիտեմ, հատկապես երբ-որ աշխատանք են փոխում, գնում են ուրիշ տեղ իրենց ասում են ինչով եք զբաղվել, իրենք ասում են ինչ են արել, բայց իրականում ձեր շանսերը կմեծանան, եթե դուք ասեք ինչեր եք արել, բացի աշխատանքից, որովհետև դա ցույց է տալիս, որ մարդը չի կանգնում ինչ-որ տեղ, ավելին է ուզում ու ավելին է վերցնում ու պատրաստ է դա անել: Իսկ իրականում կամայական ֆիրմայի համար, մարդ, որը որ անընդհատ աճում ու ինքը հասկանում է, որ իրեն ավելի շատ բան է պետք, շատ մեծ նվաճում է: Ես, օրինակ՝ կուզեի նման մարդկանց հետ աշխատել, ովքեր գալիս են ու ասում են, սենց բան եմ վերջերս սովորել, հարցազրույցի հարցերից մեկն է, ի՞նչ նոր բան ես վերջերս սովորել, ինչո՞ւ ես դա սովորել, ի՞նչ նոր բան է այն քեզ տվել, որովհետև դա ցույց է տալիս, որ տվյալ մարդն ունի աճ:

Վահրամ- Նա դեռ գործող մասնագետ է հա, ժամկետը չի անցել:

Արմեն – Ինքը ծրագրավորող է, ես այդ մարդուն կասեմ դու ծրագրավորող ես: Մարդ, որը որ ինչ-որ բան սովորել է ու վերջ ամեն օր գալիս է անում է, այսինքն՝ նոր բան է սովորում, ըստ պահանջի, հա էլի մասնագետ է ոչ մի վատ բան չեմ ուզում ասել, բայց ինքն իրեն վատություն է անում, որովհետև ինքը, դե որքան կարող է ուրիշը քեզ ստիպել, որ դու աճես, պետք է ինքդ ուզես, եթե դուք ինքդ ուզում ես, կողքիներդ քեզ կօգնեն, հարցը դրանում է:

Վահրամ- Հիմնականում տարբեր ընկերություններում լինում են այդպիսի ինչ-որ գոլերի համակարգեր, որոնց միջոցով խրախում են:

Արմեն- Հա փորձում է ֆիրման քեզ քաշի, բայց եթե քո մեջ չկա, անհասկանալի է, այդ effort-ները կորում են: Ավելի ճիշտ է, երբ-որ, օրինակ՝ դու ես գնում ասում ես ֆիրմային ես ուզում եմ նոր բան սովորել կարող եք սենց կուրս ինձ համար անեք, մեզ մոտ, օրինակ՝ նման բան կար ֆիրմայում, սա մի քիչ բան էր, բայց մեր ֆիրման բավականաչափ progressive էր և Ok էր նման բաների հետ: Ասում էի օօօ նման բան կա, դե բերեք բոլորի համար կազմակերպենք օրինակ: Կամ գնա սովորի, արի պատմի մնացածին: Եվ չորրորդը՝ դա ճկունությունն է, որն էլի ըստ իս, շատ կարևոր է ծրագրավորողի համար: Ճկունությունը հետևյալն է նշանակում. ծրագրավորողը ինչ-որ մի բան երբ-որ սովորում է, օրինակ՝ նոր լեզու է կամ իր ընտրած լեզուն է, տեխնոլոգիան, ըստ մեր նախորդ ասածի, լավ կլինի, որ դուք այդտեղ լինեք competent, գործեք հնարավորին չափ, խորանաք ու դառնաք expert, բայց դա չպետք է մոնոլիտ լինի, flexibility ասածը նա է, երբ-որ դուք ձեզ չեք սահմանափակում, երբ որ դուք, եթե պետք է, կարող եք նոր լեզու սովորել, նոր տեխնոլոգիա սովորել և ինչի է դա բերում, դա չի նշանակում, որ դուք ամեն ինչից քիչ-քիչ կիմանաք, դա նշանակում է, որ դուք կարող եք շատ ավելի մեծ քանակի ու բարդության խնդիրներ լուծեք: Եթե մարդ միշտ նույն բան է անում, հավատացեք այդտեղ էլ մեծ ճանապարհ կա, որ ինքը կարող է անցի խորության, որը շատ մեծ է, բայց մնում է սուղ մասնագետ: Շատ նիշային, ընտրություն է հա, եթե ինքը դարձել է իրոք աշխարհի տասնյակի մեջ է մտնում այդ հարցում էլի վատ չի, բայց ճկունությունը թույլ է տալիս մարդուն ավելի զարգանալ: Օրինակ՝ իմ վրա դժվար է այդ օրինակը բերել, որովհետև ի սկզբանե ինձ համար այդ ալգորիթմական լեզուների ամբիոնից է, նշանակում է լեզուները մեր համար մեր մասնագիտությունն էր, մենք սովորում էինք ոնց կամբիլիատոր գրեինք, նոր լեզու ծրագրավորեինք, դրա համար՝ իմանալով C++-ը, դրա մակարդակին նոր լեզու սովորել չկար, մենք ուղղակի սկսում էինք գրել, եթե պետք է: Եվ մեր, օրինակ՝ IDF ֆիրման, որը բոլորը C++ շատ լավ գիտեին, երբ ես սկսեցի ստարտափային աշխատանքս, ես այդտեղից էի մարդկանց վերցնում և ասում էի սովորում ենք projectiv c, ok: Մեկ շաբաթից ծրագիր ենք գրել, սովորում ենք web տեխնոլոգիաներ, վայ սա ինչ է, բայց մեկ շաբաթից գրված է, սովորում ենք չգիտեմ ուրիշ բան հա, պրոտոկոլներ և այլն, պլատֆորմներ ենք սարքում, սերվերներ, օրինակ՝ Eda ժողովրդի համար, ինչ-որ web բան է, շատ հեռու և անհասկանալի գաղափար էր, ինչի համար է և այլն: Ու այդ մարդիկ, ովքեր կարողանում են տարբեր տեխնոլոգիաների մեջ բաց լինեն, նոր բան սովորեն, այնտեղ դառնան expert, իրենք իհարկե շատ ավելի մեծ adventiges ունեն: Հիմա վերադառնանք մեր սկսնակներին: Սկսնակը չպետք է միանգամից ամեն ինչ անի, որովհետև մի քիչ սրանից, մի քիչ նրանից, մի քիչ php արեցի, մի քիչ javascript արեցի, մի քիչ payton արեցի դա ուղղակի, ոնց որ test է: Պետք է փորձել ամեն մեկում, ոնց որ հասնել լավ արդյունքների, բայց երբ-որ հասաք ինչ-որ արդյունքի stop մի արեք: Կարելի է դա նաև տեխնոլոգիաների առումով կիրառել, մեկ-մեկ, որ ասում են մենք, այսինչ պարադիգմայով պետք է գրենք, օբյեկտ կողմնորոշված: Ենթադրենք գրեցիք, բայց դա ամեն ինչի վրա չեք կարող կիրառել: Հետո ժամանակն անցավ, նոր բան է եկել, նոր ձևի կարող ես գրել, դե դու դեռ մնում ես մի տեղում, դու շատ բարդ ձևով ես լուծելու պարզ խնդիրները: C++-ը շատ հոյակապ լեզու է, C++-ով մենք հիմա չենք լուծում խնդիրների 90%-ը, որը որ կա ծրագրավորման աշխարհում: C++-ը օգտագործվում է մինչև հիմա, ամենաբարդ ծրագրերը գրելուց, բոլոր browser-ները, compiler, օպերացիոն համակարգերը գրվում են C++-ով, բայց customer facing application-ները, web application-ները, mobile application-ները, դրանք C++ չեն գրում, որովհետև իմաստ չունի, որովհետև շատ ավելի հեշտ ձևեր կան, շատ ավելի հարմար լեզուներ կան, շատ ավելի հարմար տեխնոլոգիաներ կան, դրա համար պետք է մի քիչ ճկուն լինել, պետք է խնդիրը լուծել՝ ըստ պահանջի: Եվ ունիվերսալ լինելը չի նշանակում ամեն ինչից մի քիչ իմանալը, ունիվերսալ լինելը նշանակում է, որ դու շատ արագ կարող ես փոխել, օրինակ՝ հիմա դու աշխատում ես ինչ-որ մի լեզվով, պարադիգմայով և այլն, հիմա քեզ խնդիր է եկել ուրիշ բնագավառից, դու ոչ թե ասում ես չէ-չէ բերեք գտնենք ինչ-որ ուրիշին, որը դա կանի, այլ ասում ես՝ why not: Ինչքանո՞ւմ կանես, երեկ էր պետք, պետք չի վախենալ պետք է դա բաց ընդունել և նոր բաներ սովորել շատ արագ: Եվ նույնն էլ դա փորձառու ծրագրավորողի համար է ու ես ում հետ, որ աշխատել եմ senior մարդիկ հատկապես, հիմա, որ իրենց նայես, կտեսնենս N Հատ լեզուներ և տեխնոլոգիաներ գիտեն, որովհետև պետք է սենց լուծեն, սովորում են, նայում են, պետք է ուրիշ լեզվով կողմ են նրան: Դա չորրորդն էր կարևորագույններից:

Վահրամ- Իրականում, այս վերջին կետի՝ ճկունության պահով, մենք խոսել ենք մեր նախորդ հյուրերի, մասնավորապես՝ մասնագետի անվտանգության տեսակետից, ասենք իմ փորձից էլի բխող, որ եթե ես ընդամենը մեկ բան գիտեմ, ու հանկարծ, եթե այդ մի բանը դուրս եկավ մոդայից և եթե ես ճկուն չեմ, ուրեմն՝ ես դուրս եկա մոդայից ու ես կորցրեցի իմ ապագա հնարավորությունները: Բայց եթե ես 4 բան գիտեմ և պատրաստ եմ 5-ին էլ սովորել մեկ շաբաթում, ապա ես մեկ շաբաթից գործ կգտնեմ: Դա մի կողմից, իսկ երկրորդն էլ բազմակողմանի տարբեր բարդությունների և լայն սպեկտորների խնդիրներ կկարողանամ լուծել, եթե գիտեմ, որ կան այսպիսի պարադիգմաններ, որովհետև ամեն մի լեզուն, ամեն տեխնոլոգիա իր հետ այդ մտածողությունն է բերում: Այդ կամպիլյատորի մեջ եղած գիտելիքի մի մասը, ոնց որ մարդը սովորելուց վերցնում է ու ստացվում է, որ խնդիրների բազմությունը, որ ես կարողանում եմ լուծել ավելի է լայնանում է: Շատ լավ այդ 4 հիմնական կետերը նշեցիք:

Արմեն- Մի բա ասեմ ապահովության վերաբերյալ, մարդիկ կան, ենթադրենք մինչև հիմա cobol-ով են ծրագիր գրում, իրենց պետք են: Հարցը նրանում չէ, որ վաղը ինչ-որ մեկն առանց գործի կմնա, ըստ իս, ես շատ ժամանակ, երբ որ մարդիկ ինձ հարցնում են, իսկ ձեր մոտ ստաբիլ է, այդ հարցը ինձ շատ է զարմացնում: Ես իրենց հարցնում եմ, օրինակ, եթե դու վաղը մնաս առանց գործի, ինչքան օր է պետք, որ նոր գործ գտնես, մեծամասամբ պատասխանում են մեկ շաբաթից և պատասխանում են իրենք իրենց հարցին, որովհետև եթե դու մասնագետ ես դու միշտ կգտնես աշխատանք, իսկ հիմա դու մասնագետ էլ չլինես շուկան այնպես է աճում, որ անհնարին է գործ չգտնել, ուղղակի անհնարին է: 15 տարի առաջ կարող է, երբ մեր մոտ կրիզիսներ էր 2008-2009թթ., ինչ-որ մեծ ֆիրմա, երբ որ փակվում է մի քանի 100 մարդ մնում էին առանց աշխատանքի, բայց դա, ոչ թե գիտելիքի պատճառն է, այլ՝ ուղղակի, ոնց որ դիվենդը ավելի փոքր է, քան շուկան: Շատ մեծ քանակի մարդիկ կան ու պարզ է, որ բաց բաները շատ քիչ են: Չնայած դրան, նույնպես բոլորն էլ աշխատանք գտնում են նոր ֆիրմաներ են բացվում շատ արագ: Անվտանգությունը մի քիչ ուրիշ բան է, անվտանգությունը, եթե դու, ոնց որ էլի ասում եմ, երբ ասում եմ ծրագրավորող, չեմ ասում դու senior level պետք է անպայման լինես, կամայական level՝ սկսնակ, միջին, senior և այլն: Եթե դու այնպիսին ես, որ նոր բան սովորող ես, նախորդ այն, ինչ դու գիտեիր խորացրել ես, մի քայլ ավել ես արել քո գիտելիքներում, այսինքն՝ դու գնում ես մի տեղ ասում ես այ սենց, սենց բաներ եմ արել, սենց լեզվով, քեզ հարցեր են տալիս ու հասկանում են, որ դու այդ ստանդարտ հարցերից մի բան էլ ավել ես գնացել, մի քայլ, երկու քայլ ավել ես գնացել, օրինակ՝ չգիտեմ versia-ների տարբերությունն ես հասկանում ու ինչու են իրենք փոխում, ոչ մի բան օդից չի լինում, եթե դու հասկանում ես, որ նոր ֆունկացիաներ են ավելացել, ինչ-որ ֆունկացիաներ կորել են, ինչու է դա այդպես եղել, դու հաստատ աշխատանք կգտնես: Լավ, վերջում կուզենայի ամփոփեի, որպեսզի հասկանալի լինի այս 4 կետը՝ ինչու և որտեղից եկան: Այս 4 կետը եկան նրանից, թե ինչ է նշանակում պրոֆեսիոնալ լինել, որովհետև սկսնակ էլ կարող է պրոֆեսիոնալ լինել կամ շատ արագ դառնալ, դա բացի այդ 4 հատ հատկությունից, որը սենց միավորում ենք դրա կողքը դնում ենք հետևյալ բաները, ամենակարևոր բաները՝ ծրագրավորողը պետք է միշտ իր աշխատանքը վերջացնի, եթե դու աշխատանքը չես վերջացնում, բաներ կան, որ անհասկանալի է, ինչու համար ես դա արել, եթե դու միշտ վերջացնում ես, մինչև վերջ տանում, մի քիչ էլ որակի հարց է, իսկ որակի հարցը հիմա հետևյալ ձև է լուծվում, ոչ մեկ մենակ չի գրում, դա կարող է թիմային լինել, դուք կարող եք ունենալ առանձին QA, բայց երբ որ մարդիկ ասում են դե կոդը գրել եմ, թող QA-ն ստուգի, սենց ինձ համար շատ զարմանալի բան է, բայց ախր դա քո գործն է չէ, դու էիր անում, ոնց ես ասում, որ ուրիշը ստուգի, դու էլ ստուգի, թող ուրիշն էլ ստուգի, մի բան էլ երկուսով էլ մի հատ ստուգեք: Այսինքն՝ get job done-ը շատ կարևոր trait է, եթե դու get job done ես արել դու կարող է հաքեր ես, փոքրիկ ծրագրեր ես գրում, դու կարող է սկսնակ ծրագրավորող ես, որը նոր-նոր սովորում է ինչ-որ փոքրիկ խնդիր ես դու իրան տալիս այդ փոքրիկ խնդիրն է ինքը լուծում, բայց այդ փոքրիկ խնդիրն ինքը լուծում է, վերջնական է կա մուտք, ծրագիր, ելք, ոչ թե ինչ որ բան աշխատեց՝ ինչ-որ դեպքերում: Այսինքն՝ գործը պետք է ավարտել, գործը տվել են՝ ավարտի, չգիտեմ ոնց, ոնց ուզում ես:

Վահրամ- Ուզում եմ այդ “ավարտել” ասելու մեջ, ավելացնել այդ delivery անելը: Այսինքն՝ հասցնել տեղ, ոչ թե՝ իմ մոտ աշխատում է, ինձ չի հետաքրքրում user-ի մոտ ոնց է, տանել տեղ հասցնել, որ այնտեղ էլ աշխատի նույն ձևով:

Արմեն- Նույն բանի մասին ենք խոսում: Երկրորդը՝ պատասխանատվությունն է, դու միշտ պետք է վերցնես պատասխանատվությունը նրա համար, ինչ-որ անում ես, դա մի քիչ Tridal է թվում, բայց շատ ժամանակ մարդիկ, հատկապես երբ-որ գնում են ինչ-որ տեղ աշխատանքի և դա թիմ է, ասում են՝ դե ես junior եմ, ինձ մի հատ ինչ-որ կտորիկ են տալիս կամ ես իմ մասը արել եմ մնացածը իմ խնդիրը չէ, ուրիշն է արել: Չէ՜, իմ փորձից մեր թիմն աշխատում էր այնպես, որ եթե խնդիր է, ուրեմն՝ բոլորիս խնդիրն է, եթե պետք է ինչ-որ բան անել, բոլորն են անում ու այնտեղ չկա դու վատ բան արեցիր կա՜մ սխալ բան արեցիր, կա՜մ բակ արեցիր, այսինքն՝ բակ գտնելը, մարդուն ասելը, որ այստեղ խնդիր կա, հատկապես կամ code viewer-ի ժամանակ, դա ոչ թե վատ բան չէր, այլ նորմալ էր, եթե նման բան չկա, ուրմեն՝ ինչ-որ բան լավ չէ: Դու ուրիշի կոդը նայել ես ու ոչ մի բակ չես գտել, ուրեմն՝ ինչ-որ բան այն չէ: Ուրեմն՝ երրորդին կանչեք, թող երրորդն էլ նայի, այսինքն՝ նման բան չպետք է լինի: Այսինքն՝ դու քո արած աշխատանքի համար պետք է վերցնես պատասխանատվությունը և պետք է վերցնես պատասխանատվություն ընդհանուր աշխատանքի համար, որը դուք մի քանի հոգով եք անում: Եթե մենակ դու ես անում, դա ուրիշ հարց, եթե թմային է responsibility-ին կարևոր է: Եթե դու չունես responsibility անհասկանալի է, ինչու ես դա անում, ինչու ես դու կոդ գրում, դու կոդեր ես: Քեզ տվել են, ասել են սենց ֆունկցիա գրի, այդ ֆունկցիան գրում ես, ասում ես վերջ ես գրեցի, բա հետո: Իսկ այս կոդը, ով է support անելու, իսկ եթե ինչ-որ բան փոխվեց, փչացավ, բակ գտնվեց, ով է դա անելու, օրինակ՝ պատասխանտվությունը կարևոր բան է: Երրորդը՝ դու ինքդ պետք է դա առաջ տանես, drive դպրոց ես տենց անվանենք: Այսինքն՝ եթե քեզ ինչ-որ խնդիր են տվել, դու դա կարող ես անել, բայց եթե դու, օրինակ՝ քո խնդիրը արեցիր, ուրեմն՝ այնտեղ ինչ-որ բաներ պակաս են, էլի բաներ կան անելու, եթե դու ծրագրավորող ես քեզ համարում, դու ամենաքիչը պետք է ասես եկեք այ սենց-սենց բաներ էլ անեք, որովհետև պակասում է: Կարող է որոշվել, որ չէ այդ բանը պետք չէ, որովհետև ուրիշ ուղղությամբ պետք է զբաղվել, բայց ամենաքիչը դու պետք է инициатива ցույց տաս, որովհետև դա վերջ ի վերջո քո աշխատանքն է: Դու, ոնց որ սենց մի հատ բան ես սարքում ու հետո թողնում գնում ես, դա լավ չի:

Վահրամ- Իրականում, դրա հետ կապված մի բան կարող եմ ավելացնել, երբ որ ծրագրավորողն է նայում համակարգին՝ իրենց թիմով սարքած, ինքը ներսից է տեսնում և օրինակ՝ բիզնեսի տերը կամ պատվիրատուն կարող է չտեսնել, որ այդպիսի հնարավորություն կա, բայց երբ որ դու ներսից տեսնում ես, որ այստեղ մի հատ այ սենց բան էլ կարող էի անել ու այդ մասին չես ասում, ստացվում է, որ ինչ-որ արժեք է կորում, արժեքը, որը մենակ դու ես տեսել, կորում է:

Արմեն- Եթե կարդաք այդ հին microsoft-ի, apple-ի ժամանակվա իրենք ոնց էին անում: Շատ մեծ քանակի pitcher-ներ կային, գալիս էին մարդկանցից, գալիս էին ասում էին, իսկ սա կարող եմ ավելի լավ անել, կամ սենց նոր բան կարող եմ ավելացնել, այսինքն՝ գալիս էր инициатива-ն հենց ծրագրավորողից, շատ մեծ քանակի: Ու թեկուզ այս վերջի 2000 թ.-ի սկզբից էլ google-ն այսպիսի պրակտիկա ուներ, ասում էր ձեր ժամանակի 20%-ը տվեք, ինչու որովհետև ինքն ինչ-որ բան անում էր և դա դառնում էր google-ի պրոդուկտ:

Վահրամ- Այսպիսի հայտնի պրոդուկտներ կան, որոնք ինչ-որ մեկի անձնական, չէ անձնական չէ, բայց սեփական, իր տնօրինած ժամանակից թողած, դուրս եկած պրոդուկտներ են:

Արմեն- Դա չի նշանակում, որ դուք պետք է այն ամենը, ինչ անում եք դարձնենք սա հնարավոր չէ, հարցը նրանում է, որ վերջիվերջո դուք ձեր ժամանակն եք ծախսում, ոնց որ, եթե դու ուզենաս փայտից ինչ-որ բան անես դու քո ժամանակն ես ծախսում, որպեսզի ինչ-որ ֆիգուրա սարքես, հետո այնպես չէ՝ կեսից թողնես գնաս: Վերջնական ինչ-որ բան չանես, դու պետք է մինչև վերջ անես: Նաև կարևոր է, երբ որ դու ինչ-որ չափով աճում ես, դառնում ես team lite, կամ company ես բացում driver-ը դու ես: Կարող է ուրիշն է driver, բայց պետք է անես: Չպետք է կողք կանգնես ասես՝ դե մենք մենեջեր ունենք, թող անի կամ tm-ի գործն է, տենց չպետք է լինի: Extra effort-ը շատ հետաքրքիր բան է, որը որ իմ փորձից է երևի թե, բայց ես հավատում եմ, որ ամեն տեղ դա կարևոր է: Extra effort-ը հետևյալն է՝ նորից ենթադրենք ինչ-որ բան ենք անում, ինչ-որ ծրագիր եք գրում կամ ինչ-որ բան եք մտածել ու պարզ է ինքն ինչ խնդիրներ պետք է լուծի, եթե դուք կլասիկ ծրագրավորող ասած գաղափարին համապատասխանում եք, դուք այն միակ փոքրիկ դետալը, մի հատ փոքր Extra effort եք անում, բայց դրա վրա աշխատում եք: Տարբեր դեպքերում, տարբեր բաներ է: Մարդ կա, օրինակ՝ չգիտեմ մի հատ button է սիրուն դիզայն անում, մենակ այդ մի button-ի վրա ծախսում է ինչ-որ extra ժամանակ, սովորաբար դա անում են աշխատանքից դուրս կամ կատարելության հասցնելու համար, տենց ինչ-որ փոքր բզիկներ լինում են, բայց հավատացեք, որ դա էլի պրոֆեսիոնալիզմի նշան է: Այսինքն՝ դու ոչ թե նստում ես կոդ ես գրում, այլ դու իրոք դրա վրա աշխատում ես, ուզում ես, որ լավ լինի: Մեր դեպքում դա ալգորիթմներն էին կամ այդ տվյալները, որ ասում էի, տվյալ է կարդացիր դրեցիր memory, ինչ-որ ձևի աշխատեց, բայց մենք ինչ-որ չափով օպտիմիզացիա ենք անում, որ կարող էր չլինել այդպես շատ կարող է չխանգարեր, բայց, որ լինում է մեկել զգում ես, որ շատ ավելի լավ է աշխատում: Չնայած, որ դու դրա վրա այդքան էլ շատ ժամանակ չես ծախսել, կարող է մի օր ծախսես, բայց դա ինչ-որ extra effort է, որը դու անում ես, դա շատ մեծ պլյուս է: Փորձեք, արեք և կտեսնեք, թե ինչ մեծ էքսպերիմենտ կստանաք:

Վահրամ- Այսինքն՝ քիչ հավանական է, որ չնկատվի ու չգնահատվի:

Արմեն- Անհնարին է, անհնարին է, որ չնկատվի: Եվ վերջինը դա այն է, որ եթե դուք ծրագրավորող եք, դուք պետք է օգնեք նախ ուրիշներին, ծրագրավորումը և ծրագրավորող լինելը ինքը վակումում ինչ-որ բան չի, ես ծրագրավորող եմ, դա պրոցես է, դու անընդհատ սովորում ես, դու աշխատում ես թիմում, դու պետք է հնարավորին չափ ուրիշներին օգնես, որովհետև այդ ուրիշներն էլ այլ դեպքում կօգնեն քեզ: Եթե տենց բան չկա՝ օգնել ուրիշներին, շատ տարօրինակ բան է ստացվում: Թիմերում դա остракизм է բերում, անհասականալի է դու ինչ ես անում, խի ես անում, ով ես, ինչ-որ բան լավ է անում, բայց չգիտենք ինչ է անում, որովհետև մարդկային հոգեբանություն է, եթե դու ինչ-որ բան ստացել ես, դու պետք է տաս, կամ հակառակը՝ դու տալիս ես ու տասնապատիկ հետ է գալիս: Պետք չէ երբեք մոռանալ, հատկապես, եթե դուք, սենց մի հատ, օրինակ բերեմ՝ նոր սկսնակները, երբ-որ սովորում են ծրագրավորել, իրենք ինչ-որ բան, եթե սովորեց թեքվեց կողքին ասեց գիտես սենց բան եմ սովորել, արի քեզ էլ ցույց տամ, դու էլ իմացի, հավատացեք, որ ձեր պրոցեսը գնալու է տասն անգամ ավելի արագ, էլ չեմ ասում, եթե գնանք այնտեղ ինչ-որ մեկին, ով որ գիտի իրեն ասեք օգնի, ենթադրենք դա վատ բան չի, եթե ինքը ասեց չէ գնա դու ինքդ արա:

Վահրամ -Այս դեպքում՝ ինձ թվում է վատ մարդը ինքն է:

Արմեն- Դե հիմա ինքը կարող է զբաղված է, բայց եթե դուք ծրագրավորող եք դուք վակումում չեք, փակ չեք, պետք է ուրիշներին օգնեք: Դա բերում է նորմալ network effect-ի՝ թիմային աշխատանքի: Դա էլ կարելի է ասել ինչու է ծրագրավորողը ընդհանուր տենց բարձր մակարդակի ասած, էլի է կրկնում և չի ասում, որ միայն լավագույն ծրագրավորող լինելն է դա: Ոչ ես համարում եմ, եթե դուք նոր եք ուզում դառնալ ծրագրավորող, թե՜ դուք արդեն աշխատում եք այդ բնագավառում, թե՜ դուք արդեն շատ փորձառու եք, այդ պրինցիպները պետք է լինեն, հակառակ դեպքում՝ ձեզ է վնաս: Դուք զբաղվում եք ինչ-որ բանով, որը ձեզ հաճույք չի բերում, դուք չեք աճում, ձեզ հետքիրքիր չի, curiosity չկա և դուք ճկուն չեք, դուք սենց ֆիքսվում եք մի բնագավառի շուրջը և կամաց-կամաց ինքը ձեզ ուտում է: Ոնց որ 3 լավ ծրագրավորող:

Վահրամ- Շատ լավ կետեր էին, կարևոր այն առումով, որ բնութագրում էին, թե ինչ է նշանակում լինել պրոֆեսիոնալ ծրագրավորող կամ դառնալ, կանգնել այդ ուղու վրա, այլ ոչ թե, կոպիտ ասած` փինաչի: Ժողովրդի մեջ դա այն բառն է, որ այդքան էլ մասնագետ չի, ուղղակի զբաղվում է ինչ-որ բանով, քան ավելի շատ ինքը դրա մասնագետն է: Դրույթներն իրոք շատ կարևոր էին, դրանցից ամեն մեկի մասին կարելի է մի քանի ժամ խոսել: Այս ընթացքում ինձ մոտ անընդհատ մտքեր էին գալիս ուղղակի ինձ տենց, ոնց որ ստիպողաբար լռեցնում էի: Կուզեի մի փոքր էլ գնայինք այդ ուղղությամբ, մի քայլ էլ անենք հա, այսքանը, ոնց որ մինամալ շեմը պատկերացնենք երևի լավ մասնագետ, պրոֆեսիոնալ ինչ-որ մասնագետի:

Արմեն- Ես կասեի, ոչ թե մինիմալ, այլ գլխավոր, բազային ինչ-որ բաներ են, որ եթե դա կա արդեն հասկանալի է, որ դու ծրագրավորող ես, ո՜չ թե դու կոդեր ես, փինաչի ես, ո՜չ թե գործ ենք անում էլի:

Վահրամ-Լավ, կուզեմ սրան ևս մեկ բան էլ ավելացնել, ավելի ճիշտ լսել նաև քո կարծիքը: Եթե չեմ սխալվում, դու էլ Վիկտոր Բրեդի գաղափարներին մի փոքր ծանոթ ես, երիտասարդը, ով իր մշակած գրաֆիկական ծրագրավորման միջավայրերն է ցուցադրում տարբեր տեղերում, թե ոնց կարելի էր անել, բայց մենք չենք անում և շատ կարևոր մի հատ ելույթ ունի, կոչվում է “The future of programing”, որտեղ իրեն տեղափոխում է 1971թ. և այդտեղից պատմում է, թե ինչպիսին է տեսնում 40 տարի հետո մոտավորապես աշխարհը, համակարգչային ծրագրավորողներին և ինչն է հետաքրքիր, որ ինքը իրոք վերցնում է այդ պահին գոյություն ունեցող բաները և՜ այդ պրոցեսները մշակած, և՜ գրաֆիկական դիսփլեյը, և՜ ինչ-որ լավ-լավ բաներ, և՜ ինտերնետը, և՜ այն ամեն ինչը, ինչի մեջ մենք ապրում ենք, 71թ.-ին արդեն կային այդ ամեն ինչը: Եվ ինքը վերցնում է ուղղակի այդ սաղմնային վիճակում գտնվող գաղափարները և շատ պարզ ձևով աճեցնում, հասցնում մի բանի, որը պարզապես գոյություն չունի մեր օրերում: Ուղղակի մենք չենք էլ կարող մտածել այդպիսի բաների մասին դեռևս, բայց ինքը ցույց է տալիս, որ կարելի էր գալ այդտեղ և միևնույն ժամանակ ասում է, որ շատ ցավալի կլինի, եթե հանկարծ մարդիկ կորցնեն ազատությունը, մտածելու ազատությունը, այստեղ նույնիսկ ճկունության մասին չի խոսքը, այլ ազատության, այսինքն՝ այն բանը, որ՝ ինչի այսպես կարելի՞ էր մտածել։ Այդ հարցը, օրինակ՝ ինձ շատ է հուզում, շատ բաներ կան, որոնց մասին մարդիկ պարզապես չեն էլ մտածում, որովհետև դե այդպես ընդունված չէ, պապենական հայտնի է, որ այդպես է պետք անել, այսպես արա՝ կլինի: Նայիր, մենք մի կողմից խոսում ենք՝ ծրագրավորումը շատ արագ է աճում, շատ նոր լեզուներ, տեխնոլոգիաներ անընդհատ գալիս, գալիս են, բայց մյուս կողմից՝ հիմա, օրինակ՝ ես դասավանդում եմ ցանցային ծրագրավորում, գաղափարները 70-ական թվականներից դրված են, աշխատում են, դասավանդում եմ օպերացիոն համակարգեր 60-ական թվականներից այդ կոնցեպտուալ, չի փոխվել ոչ մի բան: Չգիտեմ ինչին նայենք, օրինակ՝ web-ը հայտնվել է 80-ական 90-ի սկզբներին ու էլի այդպես շատ լավ, web 2.0-նասենք 2003թ.-ին հայտնվեց, բայց արդեն տասից ավելի տարի անցել է ու մենք, որ նայում ենք այն ամենի մեջ, ինչ մենք ապրում ենք, բավականին հին են և մի տեսակ մենք չունենք այդ այլակարծության ազատությունը, ծրագրավորողները: Մի տեսակ մեզ սովորեցնում են այ նայեք սենց, սենց, սենց ենք անում լինում է ու շատ մարդկանց մոտ պարզապես այդքանը բավարար է: Այսինքն՝ շատ մարդիկ չեն էլ մտածում, օրինակ՝ ուրիշ ոնց կարող էի անել: Հիմա հարց, ուշադրություն հարցը, ի՞նչ ես կարծում ազատությունը, մտքի այդ ազատ լինելը, կախված չլինելը, կարծրացած չլինելը, գոյություն ունեցող այդ լուծումներից կարևոր կամ որոշիչ հանգամա՞նք է այդ ծրագրավորողի համար, թե՝ ոչ:

Արմեն- Նայիր, պատասխանը միակն է՝ այո՛։ Հիմա վերադառնանք նրան, թե ինչո՞ւ այդպես եղավ, ոնց ես կարծում:

Վահրամ-Այսինքն՝ ինչո՞ւ ստացվեց այդպես, ոչ թե՝ այնպես: Երևի ամենահեշտ ճանապարհով են գնացել:

Արմեն-Դժվար է ասել, ես չէի ուզենա այդպես ասել: Ես հիշում եմ, ես էլ եմ share արել այդ բանը, բայց իրականում տարբեր ֆակտորներ կան, մուլտիֆակտոր վիճակ է, ես՝ անձամբ, կարող եմ ասել, որ կային տեխնոլոգիաներ, լավ տեխնոլոգիաներ թեկուզ, որոնք սարքվում էին, գրվում էին, բայց ոնց որ մարկետը պատրաստ չէր, մարդիկ պատրաստ չէին դա օգտագործել, դա կորում էր, հետո նորից էր գալիս: Այդ նույն ipad-ը և՜ այլն, և՜ այլն, եղել է 10 տարի մինչև այդ, որը չի գնացել, պատրաստ չի, հետո հիմա է եկել էլի այդքան պատրաստ չեն կարող է էլի գնա, հետո 10 տարի անց նորից գա ու դառնա: Նման տիպի էլի տեխնոլոգիաներ կան, որոնք մտածում ես, որ լոգիկայով պետք է լինի, բայց ինչ-որ հանգամանքներ խանգարել են: Ես իր հետ համաձայն եմ, որ շատ ռուտինայի մեջ ենք մտել, բայց մյուս կողմից, որ նայում ես 80-ականներին ինչ համակարգիչներին էին, շատ բան չէին էլ կարող անել, կոնվենցիան խանգարեց ինչ-որ չափով, բայց մենք ապրում ենք աշխարհում, որ դու չես կարող ասել եկեք լավագույնն անենք, ինչքան էլ ուզում է թանկ նստի ու հետո մարդկանց ասենք, որ սա է: Այդպես չի լինում, սովորաբար: Մեզ մոտենում է ուրիշ эра, երբ որ մենք կարող է միանգամից սկսենք ինչ-որ ձայնային interface-ներով խոսենք, կարող է մենք սկսենք նեյրոլինքերով խոսել, կարող է դա լինի 100 տարի հետո, մենք հիմա կարող ենք վերցնել այն տեխնոլոգիաները, որոնք կան և ասենք ok 40 տարի հետո հաստատ սենց պետքա լիներ ու էլի չստացվի, որովհետև չգիտես էլի ոնց կգնա, բայց իրականում քո հարցի պատասխանը ծրագրավորողը ինքը պետք է հնարավորին չափ կողք կարողանա քայլի և նայի ինչ է ինքն անում, ոնց է գնում, ուր է գնում, ուղղակի ոչ բոլորը կարող են, օրինակ՝ այդ մարդը, որը որ այն ժամանակ անում էր դե ֆակտո, կոնկրետ գիտնականներ էին, որոնք կոնկրետ իրականում իրենց մտածելակերպն այնպես էր, որ ոնց կարելի է անել ինչ-որ բան ավելի հեշտ, ավելի պարզ: Դա university funding էր, դա չպետք է վաճառեր, deadline-ներ չուներ, պետք էր ուղղակի նոր խնդիր լուծելու համար, որովհետև ինքը նոր բան էր հորինում:

Վահրամ- Օրինակ՝ այդ ձևով copy paste-ն է հորինվել:

Արմեն-Այսինքն՝ իր խնդիրները գալիս էր նաև, որ հեշտ լուծեր, բայց ինքն ուներ ոնց որ մեծ ժամանակ և գումարի հարց չուներ, եթե դու ֆիքսում ես, որ առանց կոնվերցիայի, ինչ-որ չափով պետք է խնդիրներ լուծեք, իսկ մենք հիմա գտնվում ենք իրականում սկզբնական փուլում, դա կարղ է շատ տարօրինակ թվալ, բայց ըս իս, ծրագրավորումը, IT-ին, դուրս է գալիս այն բանից, էլիտար վիճակներից դառնում է ինչ-որ ինֆրոստրուկտուրայի ինչ-որ մաս, ինքը պետք է լինի ամենուրեք, ամեն տեղ: Աշխատանքի քանակը ահռելի է, մեծ չափերի է հասնում, շատ մեծ բնագավառներ ունենք, որ պետք է digital դառնար, բժշկություն և այլն, նենց բնագավառներ կան, տրանսպորտն էլ հետը, ամեն ինչ շատ մեծ բնագավառներ կան, որոնք պետք է դառնան digital, որոնք դեռ digital full չեն: Այսինքն՝ գործի քանակը շատ մեծ է ու այդտեղից ասել, այ ես նոր interface եմ հորինել, որը շատ հարմար է դա ուղղակի կարող են չնկատեն հիմա: Դրա համար, օրինակ՝ ես գտնում եմ, որ պետք է զբաղվել ինչ-որ չափով «ՀայՏեք»-ով, որովհետև IT-ն դարձել է մի բան, որն ամեն տեղ պետք է լինի: Վերջ ինքն արդեն թույլ է: Մենք ծրագրեր ենք գրում, mobile application-ներ ենք գրում, բայց հիմա արդեն չնայած իրենք են ամենապիկային վիճակն է, դու չես օգտագործում բոլոր application-ները, որոնք գրված են, ճիշտ է, ֆիզիկապես ուղղակի չես կարող, դու չես օգտագործում բոլոր web կայքերը, որոնք կան, այսինքն՝ IT-ն պետք է դառնա լեզու, որ այդպես ասում են IoT՝ internet of things, իրականում նշանակում է, որ բոլոր device-երը կարող են իրար հետ communicate անեն: Պարզ է, որ արդեն կառավարման մասին մենք չենք խոսում, դա պետք է լինեն AI համակարգեր, որոնք այդ ամեն ինչը կազմակերպում են, manage են անում: Խելոք են իրենք, պետք է լինեն արդեն սարքավորումներ, ոչ միայն ինչ-որ ծրագիր, այլ նաև՝ սարքավորում, նույն ռոբոտները և այլն, որոնք արդեն ուրիշ մակարդակի բարդության խնդիրներ են լուծում, նույն AI-ով բավականաչափ բարդ խնդիր է, automated driving և այլն: Բոլոր խնդիրները հեսա կլուծվեն կամ, ուր որ է լուծվում են, wild speed չեն, բայց ինքը արդեն միայն ծրագրային չի, ինքն արդեն կպնում է hardware-ին: Ու հիմա պատկերացնել, որ ինչ-որ մարդ կգա ու կասի այս այսօրվանից սենց interface կանենք, հիմա օրինակ, ըստ իս, այդքան էլ հավանական չէ, որովհետև հիմա մենք այդ փոփոխության մեջ ենք: Մենք չգիտենք ոնց է լինելու: Օրինակ՝ քեզ կարող է պետք չի interface մեքենայի հետ, հիմա էկրան են դնում, ենթադրենք նման բաներում, բայց կարող է այդ էլ պետք չէ, բայց կարող է դու ձայնով ասես ու այ ամեն ինչն արվի: Ու դա կարող է լինի 1 տարուց կամ 5 տարուց: Այսինքն՝ նստել, հորինել նոր interface մեքենայի համար շատ հարցական է: Կամ, օրինակ՝ display են դնում, որը հետո ուղղակի կարելի է հանել ընդհանրապես չգիտեմ իր էկրանը shield լինի կամ display-ը կորում է, իրեն կարող ես կառավարես ու ասես այսինչ տեղը տար ու վերջ: Այսինքն՝ տենց տեխնոլոգիաների նոր հորինում-օգտագործում մենք անցել ենք միկրոէվոլուցիաների: Անընդհատ փոքր բաներ են լավացնում, գլոբալ փոփոխություն, ոնց որ այն ժամանակ էր, որ դու գրաֆիկական interface ես հորինել կամ copy paste ես հորինել, ինչ-որ փաթեթներ ես փոխանցել a կետից b կետ, այնտեղ հավաքել ես ցանցում, գրանդիոս փոփոխություններ կարող է հիմա չլինեն: Ուրիշ գրանդիոս փոփոխություններ կարող են լինել:

Վահրամ- Բայց այդ նույն չափ մեծ, այսինքն, թե ոսկի շրջանն անցել է պարզապես մենք հիմա մանր խնդիրների վրա ենք:

Արմեն-Չէ՜, մենք դեռ սկզբի վրա ենք, երբ որ մենք սկսենք, որ ամեն ինչ լինի առանց լարերի, օրինակ և մենք էներգիան ուղղակի օդից կստանանք, դա կլինի գրանդիոս փոփոխություն: Ու սկսենք մտքով շփվել:

Վահրամ- Իրականում այսօր աշխարհում կա 100 միլիոն ծրագրավորող, ընդ որում՝ նրանց մի մասը չի բավարարում քո դրած պահանջներին, երևի մեծ մասը չի բավարարում չգիտեմ, լավ ինչ-որ մասը չի բավարարում, դա մի կողմից, իսկ մյուս կողմից՝ մեր ազդեցությունը՝ ծրագրավորողների, աշխարհի վրա, գնալով մեծանում է։ Այսինքն՝ գնալով, եթե բոլոր ոլորտներում ինչ-որ չափով կա մի քանի տարի հետո տեսնում ենք, որ էլ ավելի է շատանալու, երևի ի վերջո գալու է 100%-անոց: Այսինքն՝ չի լինելու, որևէ ոլորտ, որտեղ առանց ծրագրային ապահովման հետ շփման, հնարավոր լինի գործողություններ անել, ընդհանրապես հիմա գնում ենք խանութ՝ ծրագիր է, ուր ուզում ենք գնանք ծրագիր է, ուր էլ գնում ենք ծրագրեր են մեզ շրջապատում: Հիմա այդ ծրագրերը գրվում են մարդկանց կողմից, որոնց մի մասը պրոֆեսիոնալ չի, ասենք քո պատկերացումներին չի համապատասախանում։ Հաստատ կան, չէ՞, դու գիտես այդպիսի մարդկանց, ճանաչում ես, հիմա ենթադրենք, ես շատ եմ սիրում բժիշկների օրինակը բերել, պատկերացնենք երևի մի այդքան էլ բժիշկ կա՝ 50 միլիոն բժիշկ կա ու պատկերացնենք, որ իրենց մի մասն էլ պրոֆեսոինալ չի, մի տեսակ, ոնց որ մեզ վտանգված կզգայինք, չէ՞։ Հիմա ես գնում եմ ինչ-որ մեկի մոտ, ինքն ինձ դեղ է նշանակում, ասենք ուժեղ անտիբիոտիկ է նշանակում, ես խմում եմ ու, չգիտեմ, մահանում եմ, որովհետև ինքը պրոֆեսիոնալ չէր, ինքը միգուցե նույնիսկ կրթություն էլ ուներ, բայց ասենք ինչ-որ բաներ իր մոտ այն չէր։ Հիմա, եթե ես նույն պրոբլեմները փորձում եմ տեղափոխել ծրագրավորողների վրա, որովհետև ազդեցությունն է մեծանում, եթե մենք սենց իզոլացված սֆերիկ վակումում ծրագրավորմամբ զբաղվենք մեր համար, դա խնդիր չկա, բայց խնդիրն այն է, որ ասենք մեր գրած ծրագրերը՝ երեխներին ուղիղ ազդեցություն ունեն։ Այսինքն՝ երեխան մի հատ app է քաշում օգտագործում է, իսկ այդ app-ը ով է գրել, ինչ նպատակով ու ով է վերահսկելու շատ հարցեր, բաց է մնում, թե ով է վերահսկելու: Մինչև անգամ կան դեպքեր, երբ մեծ ընկերությունների տնօրեններ իրենց ընկերության մեղքը գցում են ծրագրավորողի վրա ասում են՝ դե ես ի՞նչ իմանամ, ծրագրավորողները տենց են գրել։ Ենթադրենք այդ Volkswagen-ի հետ կապված խնդիրը, որ Ամերիկայում բացահայտվեց, որ խաբում են այդ արտանետումների %-ը, ասում են, դե չգիտենք ինչ-որ ծրագրավորողներ այդպես են գրել, չգիտենք իրենք ինչեր են գրում ու այստեղ իրականում խնդիրը ես չեմ բարձրացնում, խնդիրը կա՝ իսկ ո՞վ է վերահսկում այդ ծրագրավորողներին, ո՞վ է ապահովում, որ իրենք բավարար որակի ու բավարար կոմպետետության մասնագետներ լինեն, որ իրենց գրածը, իրոք անի այն ինչ, որ պետք է։ Հասկանում եմ, որ կա quality assurance, բայց մենք բոլորս լավ հասկանում ենք, որ ծրագրերը կարող են ունենալ գաղտնի feature-ներ, որոնք ոչ մեկ կարող է չտեսնել, բայց իրենք ինչ-որ մի բան, ինչ-որ մի տեղ անեն ու վերահսկողությունը իրոք բացակայում է: Օրինակ, եթե ես շարքային ծրագրավորող եմ, ես ունեմ project manager, վերահսկում է ես ինչ եմ անում, ինքը գիտի իմ արած կոդը ինչ է իրականում անում կամ ինչ-որ մեկը review է անում, բայց ասենք մատների արանքով է անցում այդ review-ն ու ինչ-որ մի բան բաց է մնում: Ես իրոք չեմ պատկերացնում մենք վերահսկողության գործիքներ ունե՞նք, մենք մեզ գոնե կարողանո՞ւմ ենք վերահսկել:

Արմեն- Ինձ թվում է պետք չէ այդպես բարդացնել: Տենց ծանր չի վիճակը, մենք ինքնառեգուլիացիա լինող մարդիկ ենք, բժիշկները նույն ձևի ու հնարավոր է ու այն հարցը, որ ասում ես իմ ասած, հայտարարած հայտանիշներին, եթե չեն համապատասխանում դա չի նշանակում, որ իրենք չեն կարող ծրագիր գրել կամ նորմալ ծրագիր գրել, որը որ նորմալ աշխատում է և ինչ-որ վատ բան չի առաջանում դրանից: Դա ուղղակի նշանակում է, որ քանի հետ գալիս է որակի անկում ու դու չես կարող բոլորին ասել, այ դուք սենց պետք է լինեք, որպեսզի լինեք ծրագրավորող։ Դու ուղղակի կարող ես այնպես անել, որ եթե դուք ուզում եք այս մասնագիտությամբ զբաղվեք, այ սենց սենց բաներ արեք, բայց միևնույ է քանակը մեծ է լինելու, ոչ բոլորն են այդպես անելու:

Վահրամ -Հա բայց քո այդ ասածը խորհուրդ կլինի, ոչ թե...

Արմեն- Հա դե հիմա խորհուրդ է, որովհետև ես չեմ կարող ստիպել, դու չես կարող մարդուն ստիպես մտածի ինչ է ուզում անի, նոր բաներ սովորի, դու չես կարող իրեն ստիպես: Բայց դա չի նշանակում, որ ինքը չի կարող աշխատող լինի, հատկապես մեր մոտ, օրինակ՝ հիմա շատ մեծ քանակի մարդկային ուժ է պետք, քանակային ու չկա: Մյուս կողմից՝ խնդիրների քանակը, որոնք կարող է լուծել մարդ, որը որ ավարտել է չգիտեմ Մաթեմատիկայի ֆակուլտետ կամ էկոնոմիկայի ու սովորել է ինչ-որ ծրագրավորման լեզու, ինքը կարող է լուծել ու կարող է լավ լուծել: Ոչ մեկ չի ասում, ոչ ինքը շատ վատ է լուծում ու հավատա, որ մարդիկ, ովքեր շատ վատ կոդ են գրում, այդ ֆիրմաներն էլ չեն կարողանում հաջողություն ունենալ, բայց բալանսը բերվում է քանակային, ուղղակի այդ մարդիկ տանջվում են: Կան մի քանի հոգի, իրոք լավ մասնագետ և մեծ քանակի ոչ լավ մասնագետ և ուղղակի նրանք տանջվում են: Release չեն կարողանում անել կամ անընդհատ իրենց են հարցնում: Ինչ վերաբերվում է անվտանգությանը քո ասած, դու չգիտես, թե ով է գրել այդ ծրագիրը, բայց դա ոչ մի կապ չունի ծրագրավորողի որակի հետ: Դա կապ ունի, ինչ է ինքը գրել, ինչ նպատակով, եթե ինքը փորձում է վատ ինչ-որ բան անել, դրա բռնելը, դրա դեմն առնել ուրիշ խնդիր է: Եթե բոլոր ծրագրավորողները լավ ծրագրավորող են, պրոֆեսիանալ են, դա չի նշանակում, որ վատ բան չեն գրի, մեկը մյուսի հետ, ոնց որ շատ կապ չունի: Հիմա, եթե դու վախենում ես, որ այս ինֆո ստրուկտուրան կփլվի, դժվար թե:

Վահրամ- Չէ՜, ես դրանից չեմ վախենում, ես վախենում են նրանից, որ ինչ-որ մեկը կսկսի վերահսկել, որովհետև, եթե հանկարծ կասկած առաջանա, որ վերահսկողություն մեր ներսում, մեր մոտ չկա...

Արմեն- Իսկ դու համարում ես, որ չկա՞:

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

Արմեն- Հիերարխիան պետք է ներքև իջնի: Այն ծրագրավորողը, որը ես որպես ֆիրմայի ղեկավար չեմ նայում է իր կոդը, այնտեղ արանքում մարդիկ կան, որոնք այդ նույն կոդը review են անում, ոչ թե նրա համար, որ մարդ կա վատ բան գրի, այլ ուղղակի, որ մենք ուզում ենք որակով գրել, այսինքն՝ կոդը commit լինելուց review է արվում, test է արվում, այսինքն, երբ որ դու գրում ես, մեր պրակտիկայում միշտ այդպես է եղել կարևոր չի, թե դու ինչքանով senior ես, կարևոր չի, որովհետև վերջ ի վերջո մարդ ես, քո կոդը review է լինում ամենաքիչը երկու հոգու կողմից:

Վահրամ- Շատ լավ, բայց դա պրոցես է: Մի տեղ այդ պրոցեսը կա, մի տեղ՝ ոչ:

Արմեն- Դե դա վատ է:

Վահրամ- Ընդ որում՝ վերահսկողություն չկա, որտեղ կա, թե որտեղ չկա: Նույնիսկ, եթե դուք ունեք iso 9001 սերտիֆիկատ, դա դեռ չի նշանակում, որ օրինակ՝ ձեր մոտ կա կոդ review-ի այդ կտորը:

Արմեն- Դե ես գտնում եմ, որ եթե ձեր մոտ չկա տենց պրոցես, ձեր մոտ չի ստացվի տենց պրոդուկտ: Ֆիզիկապես շատ վատ կլինի՝ իրեն չեն օգտագործի: Ես չեմ կարող պատկերացնել, որ մարդիկ սենց նստած կոդ են գրում, այս կոդը սենց կպնում է..

Վահրամ- Չէ, չէ կարող է այդ պրոցեսի բաղադրիչներից մեկը չլինի: Ենթադրենք մեկը չլինի, որի պատճառով կարող են պրոբլեմներ լինեն, որոնք վերահսկողությունից դուրս են, այսինքն՝ մենք ամբողջ գործիքակազմը չենք օգտագործում ծրագիրը մշակելուց և արդյունքում՝ ունենում ենք մի բան, որտեղ բաներ կան, որոնք մենք ուղղակի չգիտենք, ոնց են եղել:

Արմեն- Եկեք հասկանանք ինչ բանի մասին ենք խոսում հա, օրինակ՝ կան մեծ քանակի տեքստային ռեդակտորներ, սենց ասենք հա, բայց ես հիշում եմ, որ մենք ուզում էինք շատ մեծ ֆայլ բացել 2002-2001թ.-ի, շատ մեծ ֆայլ, ոչ մեկ չէր կարողանում բացել, մենք բացում էինք Visual studio-ով: Visual studio-ն ուներ սովորական տեքստային ռեդակտոր, որը փոքր ֆայլեր դու պետք է գրեիր, բայց ինքը կարողանում էր բացել մի քանի տասնյակ մեգաբայթանոց տեքստային ֆայլ, ուրիշները չէին կարողանում word, բանը, բոլորը մեռնում էին: Հիմա դա, օրինակ է մի ծրագրի, որը շատ որակով է գրված, իրոք այդ մարդիկ նստել են ասել են, դե ինչքան է պետք ֆայլը լինի՝ 10.000 տող ու այդպես մի բան գրեն, չէ իրենք ասել են ինչքան մաքսիմում, այն extra step-ն է իրենց մոտ ու արել են: Բայց դա չի նշանակում, որ մնացածը պետք է դեն գցեն, աշխատող չեն, և այլն, և այլն: Այդ մնացած ծրագրերը տարբեր ծրագրեր կան, որ վատ են աշխատում, այդ քո ասած դեպքը այն բան է, երբ -որ կա ծրագիր, ինչ-որ ուրիշ ծրագիր չկա, որ նույն խնդիրը կարողանաս լուծես, իսկ ինքը շատ վատ է աշխատում: Ու դա իրոք լավ չի, դա կարող է վտանգավոր լինել, դա կարող է ուղղակի նույն վատ դեպքերի բերի, բայց մյուս կողմից եթե նայես, օրինակ՝ կա Mission Critical գաղափարը, որ օրինակ՝ դու չես կարող բարդ, մարդկանց կյանքի հետ կապված ծրագրերը ուղղակի գրես, առանց այդ պրոցեսն ունենալու, էլի բագեր լինում են, փաստորեն մենք տեսանք, որ boing-ի ծրագրում կար բակ 787, այսինքն՝ այնտեղ բարձրանալու, թռնելու ժամանակ ինչ-որ բան սխալ էր աշխատում ու փաստորեն մեկ-երկու հատ ընկավ, շատ վատ է: Բայց այդ բագը բռնվում էր թռիչքի ժամանակ, ոչ թե՝ կոդը գրելու ժամանակ: Ընդհանրապես, եթե ինչ-որ application ես գրում, որը որ չգիտեմ ուղղակի ինչ-որ բան է անում, ոչ մեկ կարող է դրան բանի տեղ չդնել: Եթե դա ապահովության հետ կապ ունի կամ security-ի հետ է կապված կամ բանկային soft-ը, հատուկ մի հատ թիմ է նստած, որ security-ին է ստուգում: Չնայած, կարող է շատ վատ է աշխատում, շատ դանդաղ, ոնց որ բոլոր բանկային soft-երը, այսինքն՝ իրենք չեն կարող ամբողջը լավ անել, բայց ինչ-որ բան ապահովվում են, ըստ իրենց՝ դա կարևոր է: Էլ ինչ օրինակ կարող ենք բերել:

Վահրամ-Ատոմակայամի ղեկավարման համակարգը:

Արմեն –Ատոմակայնն ընդհանրապես առանձին պատմություն է: Կամ space, բացի նրանից, որ գրվում է հատուկ լեզվով, որը դրա համար է ենթադրենք գրած, այնտեղ կա requirement-ներ, որ ամեն մի համակարգը երկու երեք component-ներով է, որոնք իրար լրացնում են, մեկը չաշխատեց մյուսն է միանում, ինքնաթիռն էլ ոնց որ նույն համակարգը երկու հատ է, double է: Եթե մեխանիկակազմը փչացավ մյուսն է աշխատում, տենց պրոցեսներ կան, ինչքան ավելի բարդ, ինքը դրա համար ավելի թանկ է:

Վահրամ- Կներես, այստեղ մի հատ վախենալու հարց տամ էլի: Նշվեցին մի քանի case-եր, օրինակ՝ անվտանգության դեպքը, կամ օրինակ՝ դուբլիկացիայի անհրաժեշտությունը, իսկ չես կարծում, որ այդ դեպքերը ստեղծվել են ի պատասխան արդեն եղած նախադեպերի: Այսինքն՝ եղել է անվտանգության դեպքեր, որի համար մշակվել է անվտանգության ինչ-որ համակարգ և եղել է դեպք, երբ որ համակարգը չի աշխատել, դրա համար դուբլիկատն են դրել: Այսինքն՝ այդպիսի միտք կա, կարծեմ Չերչիլն է ասել՝ գեներալները միշտ պատրաստվում են պատերազմի, որը եղել է անցյալում, որովհետև իրենք չգիտեն ապագայում ինչ է լինելու: Նույնն այդ քո ասած անվտանգության միջոցառումներն են կամ այդ կայունության միջոցառումները, արդեն ի պատասխան ինչ-որ եղած խնդրիների են, որոնք արդեն բերել են ինչ-որ խնդիրների, մի տեղ ատոմակայան է պայթել, մի բան ընկել կոտրվել է, մարդիկ են մահացել, նոր մարդիկ մտածել են վայ, բայց գիտես պետք է այսպես անեինք: Այսինքն՝ հնարավոր չէ կանխավ ունենալ կանխարգելող պրոցեսների իդելակական մի հատ մշակված բազմություն, վերահսկողության ապարատ կամ ցանկացած լուծում, այսինքն՝ հնարավոր չէ և այ այդ կոնտեքստում, եթե առաջանա, այսինքն՝ եթե չէ կա պահը, երբ-որ մենք հասկանում ենք, որ չկա վերահսկողություն, ապա այդ վերահսկող օրգանը հնարավոր է հայտնվի մի տեղ դրսում, ինչ-որ պետական կամ չգիտեմ կենտրոնացված մի տեղ, տիեզերքում հայտնվի մի բան, որ ասի՝ նայեք ծրագրավորողներ, այ, որ ասում ես կոնկրետ լեզվով են գրում space-ի հետ կապված բաները, օրինակ՝ մշակվի մի լեզու, microsoft-ը մշակի ու այ նման կառույց ներդնի այդ լեզվով, բոլոր տեղերում, որովհետև իրենք հասկացել են, որ միակ ճիշտ ձևը ծրագրավորելու այս սա է:

Արմեն- Կամայական կարևոր կրիտիկական բանն ունի իր պրոտոկոլը այն փաստը, որ կամայական մարդ կարող է Html սովորել և web կայք բացել ընդամենը նշանակում է, որ դա կարևոր չի համարվում: Դրա համար չկա: Կամայական բան, որը դու հենց փորձես անես, որը որ իրոք կարևոր է կամ մարդկանց կյանքի հետ առնչություն ունի, անվտանգության հետ, դա ամեն ինչ լուծում է: Սենց պրոտոկոլներ կան, օրինակ՝ զինվորական մասերում կան և այլն: Պարզ է, որ դա եկել է վատ փորձից, ոչ մեկ չի վիճում, տենց չի լինում, որ ինչ-որ մեկը գա ասի ես տեսել եմ կամ չգիտեմ: Պարզ է, որ տենց ծանր պրոեկտների համար հատուկ վերցնում են մի հատ խումբ, որը այսպես ասած խելացիների խումբ է, ովքեր փորձում են դիզայն անել, օրինակ՝ երբ-որ դու մեծ տուն ես կառուցում կամ շենք, դու չես ասում եկեք միանգամից շինարարներով կառուցենք: Science-ը, եթե դու կներես գյուղում քո տունն ես կառուցում դու կարող ես պրարաբ կանչել, որը մինչև այդ կառուցել է, բազային գիտելիքներ ունի, եթե իհարկե՝ դավերիա ունես: Կամ այսպես ասեմ ինչ-որ փոքրիկ տնակ, որովհետև այնտեղ շատ քիչ գիտելիքներով կարող ես ինչ-որ բան անես: Ու էլի պարզ է, որ վատ են անում, կարող է փլվի, բայց դա չես կարող ստիպել: Այդտեղ մի քիչ ուրիշ պահ կա: Չնայած լավ կլիներ, որ դա ֆիքսվեր: Երբ-որ դու ստանում ես թույլատվություն, որ կարող ես տնակ սարքել, դրա հետ պետք է հանձնես նաև այս այն սխեման, որ սենց պետք է կառուցվի: Архитектор-ը տվելը իր դաբրոն, ոչ թե պապական ձևերով՝ եկեք քարը քարին դնենք ու ինքը լավ կլինի: Նենց, որ չէ ես համարում եմ պետք չի նման օրգան, ես կարծում եմ կա: Կան տենց պրոցեդուրաներ, ուրիշ հարց է դե եկեք գտնենք, միգուցե, coding style-ի նման մի գաղափար, այսինքն՝ եկեք բոլորս լավ ձևով անենք, եթե պրակտիկա կա, եկեք բոլորս այդպես անենք, դա էլ բնական է շարժում, որտեղ մեթոդալոգիաները, բաները, սկսած Agile-ից և այլն: Ինքը թույլ է տվել, որ ինչ-որ մեկը իրեն լավ խորհուդ է տվել ու հիմա ասում է՝ ժովովուրդ օգտագործեք: Պատմում է իրենք ոնց են արել, հետո տեսնում են, որ մեր մոտ չստացվեց, որովհետև այլ խնդիր ենք լուծում մեր մոտ են շատ մեծ չափսերը, ամեն մեկը չի կարող, ամեն ինչ լուծել: Ունիվերսալ բաներ չկան, նույնն է, ոնց որ ասենք եկեք բոլորս նույն լեզուն վերցնենք ուրիշ լեզվով գրենք: Չենք ուզի դրան գանք: Դրա համար, օրինակ՝ իմ կետերն էլ էր ծրագրավորող, երբ որ դուք ասում եք ես ծրագրավորող եմ, ու ձեզ խնդիր են տալիս ասում են այ սենց խնդիր կա, ինքը կարող է բաժանել, դե կոմպոզիցիան ունենք, մոդուլներ՝ դու ընդհանրապես ամեն մի մոդուլը կարող ես տարբեր լեզվով գրես, որովհետև կոմունիկացիան տվյալներով է, որը որ գալիս է ID-ներով, interface է կոմունիկացիան ու ընդհանրապես կապ չունի, թե դու ինչ լեզվով ես գրել, ինքը կարող է տարբեր server-ների վրա լինել, ինքը կարող է մի ծրագիր լինել, տարբեր լեզուներով գրված օբյեկտ ֆայլ սարքած և իրար կապած: Բայց, եթե դու հասկանում ես, որ դու կարող ես էֆֆեկտիվ լուծել, տարբեր լեզուներով, ուրեմն՝ շատ լավ է: Հետո гайдн բաներ շատ կան, օրինակ, եթե ծրագրավորման վերադառնանք, որովհետև շատ չխորանանք հայթեքերի մեջ, ինչ կարելի է ծրագրավորման համար անել: Օրինակ՝ կան ինչ-որ փուլեր, որ ասում են եկեք և բոլորդ սա օգտագործեք, խի են ասում օգտագործեք gid-ը, օրինակ՝ կամ նրա համար չի միայն, որ կոդը չկորի:

Վահրամ-Կամ էլ պրոցեսներ են, ոնց որ:

Արմեն- Ինքը պրոցես է, ինքը ոնց որ repository է, ինքը թույլ է տալիս change-երը track անել ու հետո rollback անել: Դա մեթոդալոգիա է, որը պետք է: Դրա համար բոլորը դա են օգտագործում, բոլորն ունեն կոդերի համար repository, կարևոր չի ինքը cloud-ում է, թե ձեր մոտ է: Հիմա, ոնց որ դու ասեիր՝ եկեք մի օրգան լիներ ու բոլորին պարտադրեր ունենան repository-ն: Պետք չէ, դա բնական է, ըստ իս, կարող է սխալվեմ: Ուրիշ հարց է, օրինակ՝ եթե դու, որպես այ ծրագրավորման դպրոցի, փաստորեն ձեր մոտ այդպես է, դու օրինակ՝ ինչ-որ պրինցիպներ, մեթոդոլոգիաներ, օրինակ՝ բարձրաձայանես կամ պատմես իրենց մասին այն մարդկանց համար, ովքեր չունեն այդ գիտելիքը: Հավանաբար, ոչ բոլորն են անցել ու թեկուզ մենք էլ համալսարանում շատ մեծ քանակի computer science ենք անցել դե ֆակտո: Մենք հասկանում ենք ինչի համար, մենք Կնուտ ենք կարդացել, դա շատ դաժան էր, բայց կարդացել ենք, մենք ծրագրավորման լեզուները սովորել են հենց ստեղծողներից, այսպես ասած: Բայց մարդիկ կան, որոնք սովորում են manual-ներից կամ ուղղակի ինչ-որ կոդ գրելով միանգամից: Պրինցիպները չեն այդքան հասկանալի, օրինակ՝ դու կարող ես որպես դպրոցի flag լինի ասենք ոնց է ավելի ճիշտ, ինչ մոտեցումներով սովորել, դա շատ մեծ և լավ գործ կլինի և ինձ թվում է կարելի է տենց ցիկլեր անել, որ բոլորը ինչ-որ բան անեն, որ մենակով չանես: Էլի այսպես ցիկլ կարող է լինել կամ հոդվածներ կարող են լինել, երբ որ օրինակ՝ լուծում եք սենց տիպի խնդիրեր, այ սենց բան արեք, երբ-որ ուզում եք պրոցեսը կազմակերպեք ծրագրավորման դուք դիմեք, արեք սենց-սենց կտորներ: Դա էլ է օգնում մարդկանց չանել այն սխալները, որոնք հաստատ կլինեն, եթե այդ պրոցեսը չունենաս:

Վահրամ-Դա արդեն ուրիշի փորձից է ուղարկած:

Արմեն- Որովհետև մի կողմից, երբ որ ասում ես ծրագրավորում, այնտեղ այ սենց պրոցես, մարդիկ վախենում են մտածում են դա գիտական էսիմ ինչ է, բայց չէ դա այն է, ինչ-որ դու ամեն օր անում ես, դա համաձայնություն է մարդկանց միջև, ոնց ինչ-որ բանի հասնել, եթե դուք դա չգիտեք, ուրմեն՝ ճիշտ կլինի սովորեք:

Վահրամ- Շատ լավ, այս մի փոքր տխուր նոտայից գանք ուրախին, որպես ամփոփման խոսք կուզեմ ասես քո խոսքը ապագա կամ սկսնակ ծրագրավորողներին: Այ ի՞նչ անել, ի՞նչ անել ծրագրավորող դառնալու ճանապարհի սկզբում, առաջին քայլեր:

Արմեն- Առաջին քայլեր, ամենաարագ ճանապարհը սովորելու՝ խնդիր լուծելն է: Ճիշտ կլինի վերջավոր խնդիր լինի delivery-ին միանգամից լուծել, եթե դուք կարող եք ընդունվել ինչ-որ մի տեղ աշխատանքի, դա իհարկե լավ է, երբ փորձեք այնտեղ challenge անեք ձեզ և ուրիշներին, որ ձեզ բարդ խնդիրներ տան, եթե դուք հնարավորություն դեռ չունեք, ուզում եք ուղղակի տան ինչ-որ բան: Կամ ինչ-որ մի տեղ աշխատում եք, ուզում եք տանը ինչ-որ բան սովորեք, վերցրեք վերջավոր ինչ-որ խնդիր, որը որ ձեզ դուր է գալիս, օրինակ՝ mobile application, կարող է դուք ընդհանրապես չգիտեք, ոնց mobile-ի վրա ծրագիր գրեք, բայց սենց մի հատ բարդ խնդիր վերցրեք, բարդ նկատի ունեմ դուք դեռ չեք արել, այն շատ պարզ կարող է լինել և փորձեք լուծել, մինչև կեսը մի թողեք, մինչև վերջ հասցրեք, դուք կսովորեք և՜ լեզուն, և՜ տեխնոլոգիաները, դուք կսովորեք տվյալների փոխանակումն ինչ է, տվյալի storage-ն ինչ է, դուք կսովորեք interface-ն ինչ է, դրանք շատ տարբեր կոմպոնենտներ են, եթե դուք սկսեք ինչ-որ միայն մի բանից, եկեք միայն սովորենք չգիտեմ backend-ում, backend գրենք, դուք ոնց որ միանգամից հեշտացնում եք ձեր աշխատանքը, ինչ-որ խնդիր պետք է վերցնեք, որը որ աբստրակտ է բավականաչափ, որովհետև միայն backend է, առանց ոչ մի բանի, կյանքից կտրված ինչ-որ բան է: Ի՞նչ է նշանակում միայն backend: Ok server կարող ենք գրել, որն ինչ-որ գործողություն է անում, բայց ինչով ես դրանք թեստավորելու, ուղղակի coler անես, ուղղակի ինքը տենց աշխատանքային բան չի, փորձեք այնպիսի խնդիր լուծել, որ տանեք ցույց տաք, որ ասեք նայի ինչ եմ գրել: Ինքը հոբբի է, դուք իրեն հետո չեք շարունակի, բայց եթե դուք իրեն սարքեցիք վերջավոր, դուք մի հատ ցիկլ փակեցիք, որ ես կարող եմ գրել ծրագիր, ես ծրագրավորող եմ: Այ իմ խորհուրդը դա է: Եթե դուք ինչ-որ խնդիրների ցուցակ կամ բան լիներ, օրինակ՝ կարելի էր նման մի բան առաջարկել, բայց ես չունեմ տենց ցուցակ:

Վահրամ- Լավ որպես օրինակ, ասենք խոսքը օլիմպիական կոչվող խնդիրի մասին չէ, կյանքի խնդիրների մասին է:

Արմեն- Այո, կյանքի խնդիրների մասին է:

Վահրամ- Ենթադրենք վերցնենք ինչ-որ ոլորտ, փորձենք դրա ավտոմատացման համակարգ մշակել կամ այդպիսի մի բան:

Արմեն- Կարող է դա շատ բարդ լինել:

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

Արմեն- Շնորհակալություն, հուսով եմ ինչ-որ օգուտ կլինի սկսնակներին և միգուցե հետո էլի հանդիպենք, ուրիշ թեմաներով խոսենք:

Վահրամ- Իհարկե, շատ շնորհակալություն, հաջողություն: