Կյանքի Դասեր


Ուսնողներին. ինձ թվում է, որ եթե դուք պարզապես տրամադրվեք, հանգիստ կարող եք ժամանակ գտնել համ անվճարը պահելու, համ էլ 4 տարվա ընթացքում 5-6 հատ մի քիչ ծավալուն, մի քիչ դժվար, ամբողջական, հպարտանալու արժանի պրոեկտներ գրել՝ ունենալ ձեր րեզյումեներում, կամ նույնիսկ հաջողակ կոմերցիոն արտադրանք դարձնել դրանք: 4 տարվա մեջ 3 հատ միայն ամառ կա, որոնց ընթացքում կարող եք փորձել նման պրոեկտներ անել: Եվս 2 հատ էլ կուրսային/դիպլոմային աշխատանք ունեք - եղավ 5: Դրանք լավ ընտրեք ու հավեսով արեք: Բանալին էդ "ծավալուն" պրոեկտներն են: Դա ծրագրավորում սովորելու անխուսափելի փուլերից է: Իսկ եթե գտնեք մի խնդիր, որը հավեսով, սիրով կանեք՝ անելով համ կհանգստանաք, համ էլ ձեր ապագայի համար կարևորագույն գործ կանեք: Մի 3 ամառ ձեզ զրկում եք Երևանյան գույնզգույն երեկոների ջերմ զեփյուռներից, բայց դրա փոխարեն աշխատելուց մի քանի տարի հետո ամբողջ կյանքում ամբողջ աշխարհը ձերն է լինելու՝ վայելելու: Դուք գուցե չգիտեք, բայց ձեր ժամանակը ճիշտ կազմակերպելու դեպքում 4 տարին ու 3 ամառը ավելի քան բավարար է, որ ավարտելուց անմիջապես հետո ցանկացած գործի համար դիմելուց ձեր րեզյումեն նայողը մտածի. "Սրան կանգնեցնել հնարավոր չէ: Էս մարդուն կանչես-չկանչես, ընդունես-չընդունես, ինքը իր նպատակին հասնելու է:"



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



Հատված Բ. Ստրաուստրուպի հետ կարճ հարցազրույցից, որտեղ 12-րդ րոպեի վերջում հարց տրվեց, թե ինչ խորհուրդ կտար ծրագրավորում սովորող ուսանողներին: Էական հատվածը թարգմանել եմ.
— Սկսնակ ծրագրավորողների, համալսարանը նոր ավարտող կամ բարձր կուրսերի ուսանողների համար ի՞նչ խորհուրդ կտայիք ծրագրավորման հետ կապված, C++ի կամ այլ լեզվի օգտագործման առումով:
— Դա իսկապես շատ բարդ հարց է: Ծրագրավորողները շատ մեծ համայնք են կազմում: Ես կասեի. փորձիր լայն տեսանկյունով նայել ամենինչին: Մի տարվիր մասնավոր դեպքերով, լեզվական ֆանատիկ մի եղիր, մի եղիր օպերացիոն համակարգերի ֆանատիկ, սովորիր հիմնարար գաղափարները, հնարավորինս շատ ժամանակ ծախսիր նաև այն նյութերի վրա, որոնք միայն վաղը-մյուս օրն են քեզ պետք գալու: Այսինքն՝ լայն հիմքով, լուրջ վերաբերմունքով: Այսպիսի խոսք կա. «Ծրագրավորիր այնպես, կարծես դա մեծագույն կարևորություն ունի», որովհետև դա իսկապես այդպես է - մեր քաղաքակրթությունը ծրագրային ապահովման վրա է հիմնված: Հաշվի առ, որ երկար ապագայի համար ես սովորում, ունակությունների լայն փաթեթ ձեռք բեր... շատ բան կարելի է ասել: Մի քիչ էլ իդեալիզմ պետք կգա հաստատ:



Մի երկու միտք աշխատանքի անցնելու՝ շատերիդ մոտ (լրիվ հասկանալի) ձգտումների մասին: Այսօր հանդիպեցի մեր դասընթացի ամենաառաջին՝ սկզբում 15 հոգանոց խմբի ուսանողներից մեկին, ով իր առաջին ծրագրավորման աշխատանքի է ընդունվել: Մի ամիս առաջ էլ մեկ ուրիշ ուսանող՝ նույն խմբից, ընդունվեց աշխատանքի: Եվ էլի՝ նաև 2-րդ և ընթացիկ խմբերից: Հիմա, ինչքան հասկացա, այսպիսի հետաքրքիր պատկեր է ստացվում. ամենաառաջին խմբի ուսանողներից բոլորը, ովքեր մեր դասերի 80%-ին կամ ավել մասնակցել են՝ արդեն կամ անցել են մասնագիտությամբ աշխատանքի, կամ՝ ինքնուրույն են աշխատում (freelance) ու գոհ են: Ես համոզված եմ, դա ոչ այնքան դասընթացի արդյունքն է, ինչքան պարզապես այն փաստի, որ մեր դասընթացի բարդ, խորը, ու մեծ մասամբ լրիվ նոր թեմաներին այդքան երկար դիմացողները արդեն ունեն սովորելու այն որակները, որոնք ի վերջո ցանկալի արդյունքի հասցնում են: Այնպես որ լրիվ արխային եղեք, որ ժամանակը ճիշտ օգտագործելու դեպքում ձեր ուզած արդյունքներին և աշխատանքին անպայման կհասնեք:

Ես նաև մի քանի անգամ մեջբերել եմ այն (ոչ միայն իմ) դիտարկումը, որ ծրագրավորման ֆակուլտետներում նույնիսկ ամենավատ սովորող ուսանողները մեծամասամբ ի վերջո անցնում են մասնագիտական աշխատանքի: Այդքանով արխային ու վստահ եղեք, բայց դուք ձեր նպատակների նշաձողը շատ ավելի բարձր պահեք — միշտ: Ձգտեք լինել, ու անընդհատ քայլեր արեք ձեր ասպարեզում world-class լինելու ուղղությամբ: Ամենատարբեր ուսումնասիրությունները ցույց են տալիս, որ ցանկացած ոլորտում բարձրակարգ մասնագետ դառնալու համար առնվազն 10 տարի պետք է (նույնիսկ Մոցարտը 13 տարի սովորելուց հետո նոր համաշխարհային որակի երաժշտություն սկսեց գրել): Բայց այդ 10 տարվա ընթացքում (ինչպես և հետագայում) պիտի անընդհատ սովորեք, աճեք, հակառակ դեպքում «10 տարվա փորձը» նույնքան արժեք կունենա, որքան 10 տարվա վարորդական փորձը, որի ընթացքում վարորդը ընդամենը 5000 կմ է քշել: Աշխատանքի ընդունվելուց կանգ մի առեք — այդ ժամանակ կյանքի մեծ (ու առավել մնայուն) մասը դեռ նոր-նոր է սկսվում:



Մենք ունենք մեր թեմաների ու դիտարկած կոդի օրինակների էֆեկտները (vector/list, սորտավորված մասիվ, և այլն) Visual Studio-ով բացատրող տեսանյութեր: Որպեսզի զուտ տեսական չմնա մեր անցածը, անպայման նայեք և ինքնուրույն նույն քայլերը փորձեք անել, հատկապես քանի դեռ թարմ է մեր անցածը: Մեկ է մի օր պիտի անեք — ամենաուշը գործի տեղում, երբ չորս կողմից հազար ու մի այլ մանրուք, անհարմարություն ու ժամանակային սահմանափակումներ կան — ավելի լավ չի՞ հիմա անեք, երբ լրիվ ազատ եք, որ հետո հեշտ լինի: Ինչքան շատ նման նյութեր սովորեք, «արանքից հանեք», այնքան հետագայում հեշտ կլինի:

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