Ո՞ւմ համար է ծրագրավորողը: Հուշում նշել

Հոդվածում ես նկարագրում եմ իմ կարծիքը ծրագրավորողների համար գործատու ընտրելիս առաջնահերթությունների մասին: Որպես հիմնական գործոն ես նշել եմ աշխատավարձի չափը՝ դա հիմնավորելով նրանով, որ դա ավելի շատ ժամանակ է թողնում կյանքի համար։ Հաջորդը, ես բերում եմ իմ պատճառները, թե ինչու դուք չպետք է տարվեք վերամշակմամբ: Ես շարունակում եմ հոդվածը տնային նախագծերի մշակման հայացքով, ինչը, իմ կարծիքով, օգնում է հետ մնալ մասնագիտության միտումներից և, բացի այդ, հաճույք է պատճառում: Ես եկել եմ այս մտքերին 8 տարի լրիվ դրույքով ծրագրավորող աշխատելուց հետո:


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

Առաջնահերթություններ

Աշխատանք ընտրելիս ինձ համար սահմանել եմ հետևյալ առաջնահերթությունները.

  1. Ստացված դրամական եկամուտների չափը. Դա պարզ է.
  2. Աշխատանքային տարածքի հարմարավետություն. Ահա թե որքան հարմար կամ անհարմար կարող է լինել այն, ինչ շրջապատում է ձեզ աշխատավայրում՝ տնից հեռավորություն, գրասենյակում գտնվող մարդիկ, աշխատանքային համակարգչի աշխատանքը, եղանակը աշխատավայրի մոտ, տեսախցիկ ձեր մոնիտորի վրա, ձեր մոնիտորը դեպի միջանցք, հարաբերություններ հետ. կառավարում, տուգանքներ ուշանալու համար եւ այլն։
  3. Ձեր մասնագիտական ​​զարգացման հնարավորություն։ Սա ներառում է այն փորձը, որը դուք ձեռք եք բերում աշխատանքի ընթացքում: Սա ձեզ համար նոր տեխնոլոգիաներ սովորելը, նախկինում սովորածը կատարելագործելը և ձեզ համար օգտակար նոր հմտությունների ձեռքբերումն է: Այն ամենը, ինչ ձեզ դարձնում է ավելի փորձառու մասնագիտորեն:

Այս ցանկից շատ քիչ բան կարելի է նախապես իմանալ ընկերության մասին՝ աշխատանքի դիմելուց առաջ: Բայց հաշվի առնելով առաջնահերթությունների հերթականությունը, դուք հեշտությամբ կարող եք համեմատել ձեր ընթացիկ աշխատանքը և մեկ այլ պոտենցիալը՝ իմանալով աշխատավարձի չափը: Երբեմն կարելի է զոհաբերել երկրորդի և երրորդի մի մասը՝ հանուն լավ աշխատավարձի։ Իհարկե, այս հավասարակշռությունը բոլորի համար տարբեր է:


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

Ինչպես բարձրացնել ձեր աշխատավարձը

Կարծիք կա, որ դա կարող եք պարզապես խնդրել ձեր ղեկավարությունից։ Դա կարող է աշխատել: Բայց ես առաջարկում եմ նախ պարզել, թե այլ գործատուները որքան են պատրաստ ձեզ վճարել: Եթե ​​դուք չունեք պատրաստի աշխատանքի առաջարկներ, ապա դուք պետք է սկսեք ինքնուրույն թափուր աշխատատեղեր փնտրել։ Մտածեք այնպիսի տարբերակներ, որոնք համապատասխանում են ձեր փորձին և աշխատավարձին, քան ձեր ընթացիկից: Պատրաստ եղեք կատարել թեստային առաջադրանքներ, Skype հարցազրույցներ կամ դեմ առ դեմ հարցազրույցներ: Դիտեք դրան որպես պոտենցիալ շահույթ, մի պատնեշեք ձեզ ձեր էգոյի հետ:


Հաշվի առեք ոչ միայն ձեր քաղաքում գործատուներին, այլև հեռավոր աշխատանքին: Հեռավոր աշխատանքի թերությունների մասին շատ հոդվածներ կան, բայց եթե ինքներդ չեք փորձել, ապա կարող եք դեռ դիտարկել նման տարբերակներ: Հիշեք, որ հեռավար աշխատանք չի նշանակում անպայման աշխատել տնից: Ծրագրավորողի աշխատավարձով կարող եք գրասենյակ վարձել կամ տեղափոխվել աշխատանքային տարածք:


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


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


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


Երբ դուք ստանում եք գրավիչ աշխատանքի առաջարկ, լուռ մի լքեք ձեր գործատուին: Քննարկեք իրավիճակը ձեր աշխատավարձը բարձրացնելու որոշում կայացնողի հետ: Սա շատ հուզիչ պահ է, առաջին անգամ դուք կարող եք բավարար վճռականություն չունենալ: Եթե ​​ձեզ հարմար չեք զգում այս տեսակի հարցերը քննարկելիս, կարող եք փորձել սկսել քննարկումը էլեկտրոնային փոստով: Բայց, ամենայն հավանականությամբ, դուք դեռ ստիպված կլինեք շփվել ձայնով։


Եթե ​​չեք պատկերացնում, թե ինչպես համարձակություն ձեռք բերել աշխատավարձի բարձրացում խնդրելու համար, ապա առաջարկում եմ ձեզ հետևյալը. Սկսեք կենտրոնանալ ձեր ներկայիս աշխատանքի վայրի բոլոր թերությունների վրա. ինչպես չեք սիրում, որ ճաշի ժամանակ ինչ-որ մեկը միշտ ձուկ է տաքացնում, որ օդորակիչը աշխատում է հենց ձեր մեջքի վերևում, ինչպես եք զայրանում մեկ րոպեի համար տուգանքից: ուշացել եք աշխատանքի, ինչպես եք հոգնել գործարկել այնպիսի գործառույթներ, որոնք իրականում ոչ ոքի պետք չեն, որքան հոգնած եք կիրառվող տեխնոլոգիաների ներկա փաթեթից, ինչպես երկար ժամանակ նոր բան չեք սովորել: Բայց ամենակարևորը, պատկերացրեք, որ դուք կարող եք վաստակել +X% գումար, բայց չեք ստանում այն ​​ձեր գործատուի պատճառով: Ձեզ դուր է գալիս, երբ ձեր գործատուն պահում է ձեր գումարը: Ոչ? Շարունակեք և խոսեք նրա հետ այդ մասին: Պարզապես վիրավորված մի գնացեք աշխատանքի, ինչ-որ կերպ կատարեք ձեր աշխատանքը՝ հուսալով, որ ղեկավարը դա կնկատի և ինչ-որ բան կառաջարկի: Սա ոչ պրոֆեսիոնալ է։


Եթե ​​ձեր ղեկավարը մերժում է ձեզ առաջխաղացումը և թույլ է տալիս գնալ, ապա ժամանակն է հեռանալ: Որքա՞ն հաճախ կարող եք բարձրացնել աշխատավարձը: Քանի դեռ դուք ստանում եք առաջարկներ, որոնք զգալիորեն ավելի լավն են, քան ձեր ներկայիս իրավիճակը: Բայց մի փորձեք խաբել, դուք պետք է վավեր աշխատանքի առաջարկ ունենաք բոլոր հարցազրույցներն անցնելուց հետո:

Արտաժամյա աշխատանք

Ամբողջ դրույքով աշխատանք նշանակում է, որ դուք աշխատում եք շաբաթական 40 ժամ: Եթե ​​ձեզանից պահանջվում է աշխատել ավելին, ապա հիշեք, որ աշխատանքն արդեն զբաղեցնում է ձեր ամբողջ առօրյա կյանքի մոտ մեկ երրորդը: Եթե ​​կյանքում աշխատանքից և քնելուց բացի ուրիշ ոչինչ չունես, ապա կարող ես ժամանակ սպանել աշխատանքով։ Հակառակ դեպքում մտածեք ձեր առաջնահերթությունների մասին։ Մի համաձայնեք արտաժամյա աշխատել, եթե այն բավարար չափով չի վճարում: Բայց նույնիսկ այս դեպքում կարող է պարզվել, որ դուք պարզապես ժամանակ չունեք ձեր աշխատավարձը ծախսելու համար։ Կարող եք մտածել, որ հիմա կխնայեք բնակարանի, հետո մեքենայի, ապա ընտանեկան արձակուրդի համար, իսկ հետո կյանքը կշարունակվի: Բայց կյանքն արդեն առաջ է գնում, իսկ դու ծերանում ես։ Փորձեք, ի վերջո, սկսել ավելի շատ վաստակել շաբաթական նույն 40 ժամվա համար, այլ ոչ թե արտաժամյա: Ձեր ազատ ժամանակն անցկացրեք ձեզ դուր եկած բաներով և նոր բաներ սովորելով՝ ձեր մասնագիտության միտումներին հետևելու համար:

Տնային նախագծեր

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



Կարող է թվալ, որ դուք ժամանակ չեք ունենա դրա համար: Սակայն տնային նախագծերի մշակումն ավելի շատ կապ ունի ստեղծագործության հետ, քան ձեր ամենօրյա աշխատանքը որպես ծրագրավորող: Եվ կա հիանալի կոմիքս՝ ստեղծագործելու ժամանակի մասին: Բանն այն է, որ երբ դուք ծրագրավորում եք զվարճանալու համար, դուք շտապում եք, որը դժվարացնում է կանգ առնելը, նույնիսկ ուտելը կամ քնելը: Բայց հիշեք, որ կյանքում ծրագրավորումից բացի այլ հետաքրքիր բաներ էլ կան, փնտրեք ձեր հավասարակշռությունը։

Ծրագրավորման մասնագիտությունը համեմատաբար նոր է, ուստի դրանում քիչ հաղթահարված ուղիներ կան: Այս պրոֆիլի մասնագետները սովորաբար գտնում են իրենց հաջողության ճանապարհը փորձության և սխալի միջոցով:

Ի՞նչ ճանապարհներով նրանք կարող են իրականացնել իրենց կուտակած փորձը։

Հորիզոնական կարիերա որպես գործադիր ծրագրավորող

Գիկի համար լավագույն ընտրությունը (այսինքն՝ նպատակային ուսուցումն է՝ առանց աշխատանքի կարգավիճակը փոխելու): Անընդհատ կատարելագործվող ծրագրավորողը արժեքավոր աշխատակից է:

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

Հուշում նշել.

ՏՏ ոլորտում գեներալիստ լինելն իրատեսական չէ։ Հորիզոնական արագ շարժվելու համար ընտրեք կոնկրետ ուղղություն(շտեմարաններ, C++, java և այլն) և փորձեք դառնալ լավագույնը դրանում:

Որպես փորձագետի առաջխաղացում

Հասնելով որոշակի մակարդակի, դուք կհասկանաք, որ պատրաստ եք կիսվել ձեր փորձով։ Այս փուլում ձեր առջեւ բացվում է նոր հեռանկար՝ խորհրդատուի դերում ինքնաիրացում։

Դուք կարող եք խորհրդակցել և՛ օֆլայն հաճախորդներին (օրինակ՝ քաղաքային ընկերություններին, որոնք ստեղծում են ապրանքներ վաճառելու վաճառքի կայք), և՛ հաճախորդների վիրտուալ տարածքից: Այս կարգի լավ աշխատանքը ձեզ համար անուն կստեղծի, իսկ դա էլ իր հերթին եկամուտ կապահովի։

Երազո՞ւմ եք դառնալ հարգված փորձագետ: Մի կենտրոնացեք միայն ծրագրավորման վրա: Սովորեք հեշտությամբ մարդկանց հետ շփվելու համար, գրագետ և պատկերավոր Արտահայտեք մտքերը.

Կառավարչական աշխատանք

Եթե ​​դուք հասել եք փորձագետի մակարդակի, բայց չեք ցանկանում գրանցել անհատ ձեռներեց, փորձեք ուղղահայաց կարիերա կառուցել հեղինակավոր ընկերությունում:

Ձեզ հանձնարարված կլինի պլանավորել և վերահսկել այլ մասնագետների աշխատանքը:

Ըստ էության, դուք կլինեք ղեկավարը: Հետևաբար, զարգացեք ձեր մեջ առաջնորդության հմտություններ, սովորեք մոտիվացնել մարդկանց։

Սեփական ստարտափ

Կարիերայի մեկ այլ տարբերակ, գուցե ամենադժվարը, ձեր սեփական նախագիծը կյանքի կոչելն է (օրինակ, օրիգինալ վճարովի ծառայության գործարկումը):

Ստարտափները հաջողության են հասնում միայն այն ծրագրավորողների համար, ովքեր ունեն ձեռնարկատիրական ոգիկամ գտնել փորձառու բիզնես գործընկեր:

Անմիջապես մի ցատկեք մեծ նախագծի մեջ, որը պահանջում է հսկայական գումար և ժամանակ: Նախ, փորձեք ինքներդ ձեզ մի բիզնեսում, որը սկզբում թույլ կտա պահպանել ձեր եկամտի նախկին աղբյուրը:

Հավանաբար, հոդվածը կարդալուց հետո դուք սկսեք թափուր աշխատատեղ փնտրել: Օգտվե՛ք մեր կատալոգում հրապարակվածներից:


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

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

Ես 37 տարեկան եմ, և մի քանի դեռահասների կես դրույքով աշխատատեղերից բացի, ես ծրագրավորել եմ 20 տարուց ավելի ապրելու համար: Այս ժամանակի մեծ մասն այն ընկերություններում է, որտեղ ես իմ սեփական ղեկավարը չեմ: Մինչ այժմ ես գիտակցաբար դիմակայել եմ ստորգետնյա հոսանքին, որը ծրագրավորողներին ներգրավում է կառավարման մեջ երկու պատճառով. Ես զգում եմ, որ ավելի քիչ եմ հաճույք ստանում դրանից և չեմ կարծում, որ ես այդքան լավ կլինեմ դրանում: Մինչ այժմ ես չեմ զղջացել այս որոշման համար։ Բայց ի՞նչ եմ անելու ևս 20 տարի հետո՝ ենթադրելով, որ ողջ եմ, համեմատաբար առողջ և դեռ աշխատում եմ: Շատ բան դեռ կարող է փոխվել. բայց եթե ես հատուկ չփորձեմ և չթռվեմ, կյանքի իներցիայի օրենքը ասում է, որ նույնիսկ 57 տարեկանում ես կսեղմեմ ստեղները և կմտցնեմ հիմնաբառեր տեքստային խմբագրիչում ինչ-որ ընկերությունում: Կլինե՞ն լավ, հետաքրքիր հնարավորություններ և նախագծեր 57-ամյա ինձ համար ոլորտում, ինչպիսին կլինի 20 տարի հետո: Հիմա մեր ոլորտում, կրկնում եմ, 50-ն անց ծրագրավորողներ կան, բայց բավականին քիչ են...

Վերջերս HN-ի («Ի՞նչ է պատահում ավելի հին ծրագրավորողներին») թեմայով իմ մտքերը առաջ բերեցին այս մասին, և թեև այն կոնկրետ պատասխան չտվեց, այն առաջարկեց բազմաթիվ հնարավորություններ: Այնտեղի վերին մեկնաբանությունը լավ ամփոփում է զարգացման տարբեր տարբերակները, որոնք ես վերը նկարագրեցի՝ դառնալ մենեջեր, մնալ ծրագրավորող և խորացնել քո հմտությունները, դառնալ ստարտափ բիզնեսմեն, անցնել բոլորովին այլ մասնագիտության: Այնտեղ մեկնաբանություններում ինձ նման շատ մարդիկ կան, ովքեր դեռ նախընտրում են, բոլորը հավասար լինեն, գումար վաստակել խմբագրի հիմնաբառեր օգտագործելով: 50-ից բարձր մարդիկ ավելի հաճախ են գրում, որ քանի դեռ պահպանում են տեխնիկական գիտելիքները և ժամանակին համընթաց, նրանք դժվարությամբ չեն աշխատանք գտնելու, թեև դրանք հիմնականում ամերիկյան կարծիքներ են, այլ երկրներում կարող է տարբեր լինել: Բայց պարզ չէ, թե քանիսն են մնացել, ովքեր նույն բանն են ցանկացել, բայց ծերության ժամանակ դժվարացել են փոխել աշխատանքը, կամ որ դժվարացել են ընդունել այն փաստը, որ իրենց տարիքի բոլորը գերազանցել են իրենց հիերարխիայում, կամ որ նրանք պարզապես հոգնել են։ .

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

Դուք պետք է սկսեք ձեր ուղին դեպի ծրագրավորող կարիերա՝ պատասխանելով հարցին՝ Ձեզ ընդհանրապես ծրագրավորում պե՞տք է։ Այս հարցը չի վերաբերում նրանց, ովքեր սովորում են կամ սովորել են ծրագրավորմանը մոտ մասնագիտությամբ։ Եթե ​​դպրոցում ավելի լավ էիր մաթեմատիկայից, քան հումանիտար, եթե սիրում ես շատ ժամանակ անցկացնել համակարգչում, եթե ուզում ես նոր բան սովորել, ապա ծրագրավորումը քեզ համար է:

Որտեղ սկսել

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

Եթե ​​վերը նշվածներից ոչ մեկը ձեզ հետ չի պատահել, ապա դուք ունեք չորս տարբերակի ընտրություն.

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

Ինչ լեզու, տեխնոլոգիա և ուղղություն ընտրել

Երբ դառնաս ծրագրավորող, մեկ-երկու տարի հետո դու ազատ կլինես ընտրել քո ցանկացած լեզու: Բայց առաջին ծրագրավորման լեզու ընտրելիս սկսնակը պետք է հաշվի առնի հետևյալ չափանիշները.

  • Շուկայում թափուր աշխատատեղերի առկայությունը. Այս ճանապարհի վերջնական նպատակը ծրագրավորողի աշխատանք գտնելն է: Եվ դա դժվար կլինի անել, եթե աշխատաշուկայում ոչ ոք ձեր ծրագրավորման լեզվով մշակողներ չփնտրի: Ստուգեք աշխատանքի կայքերը, տեսեք, թե ով է ամենից շատ փնտրված, գրեք տասնյակ լեզու: Եվ անցեք հաջորդ չափանիշին:
  • Մուտքի ցածր մակարդակ. Եթե ​​դուք պետք է երկար ժամանակ ծախսեք լեզու սովորելու համար, դա կարող է ձեզ ընդհանրապես հուսահատեցնել ծրագրավորումից: Կարդացեք վերևում ձեր ընտրած լեզուների մասին: Վերանայեք այն գրականությունը, որը դուք պետք է կարդաք այս լեզուներ սովորելու համար: Եվ ընտրեք նրանց, որոնք նկարագրված են որպես հեշտ, կամ որոնք ձեզ հեշտ են թվացել։ Նման լեզուները կարող են լինել PHP, Ruby, Python:
  • Գործընթացի հուզմունքը. Եթե ​​ձեզ դուր չի գալիս կոդ գրելը ձեր ընտրած լեզվով, դուք չեք վայելի գործընթացը, ձեր աշխատանքը կամ ձեր կյանքը: Ձեզ դա պե՞տք է։ Կատարեք ճիշտ ընտրություն:

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

Ամեն դեպքում, սովորեք վեբ տեխնոլոգիաներ: Սա HTML նշագրման լեզու է, CSS ոճեր և , որոնք ձեր էջը դինամիկ կդարձնեն: Հաջորդ քայլը սերվերի կողմից լեզու (Python, PHP, Ruby և այլն) և դրա համար հարմար վեբ շրջանակներ սովորելն է։ Ուսումնասիրեք տվյալների բազաները. գրեթե յուրաքանչյուր ծրագրավորողի թափուր աշխատատեղ նշում է դա:

Ինչպես ստանալ նախնական փորձ

Առանց փորձի դուք աշխատանք չեք ստանա։ Առանց աշխատանքի փորձ չեք ստանա։ Իրական կյանքի արատավոր շրջան. Բայց ոչինչ, մենք դուրս կգանք դրանից:

Նախ, մի սպասեք, մինչև կարդաք ձեր ընտրած ծրագրավորման լեզվի յուրաքանչյուր գիրք: Սկսեք գրել ձեր կոդի առաջին տողերը գրքի երկրորդ գլխից հետո: Կատարի՛ր գրքերի բոլոր առաջադրանքները, նորից տպի՛ր օրինակները, հասկացի՛ր դրանք: Բարդացրեք գրքերի օրինակներն ու առաջադրանքները ձեր սեփական գաղափարներով: Ստեղծեք ձեր սեփական առաջադրանքները ձեր լուսաբանած նյութի համար: Լուծեք այս խնդիրները:

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

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

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

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

Վերջին ճանապարհը ձեր սեփական նախագծերն են, տարբեր հաքաթոններ կամ համատեղ աշխատանքային տարածքում աշխատելը: Դժվար է ինքնուրույն սկսել ձեր սեփական նախագծերը, ավելի լավ է փնտրել ծանոթներ կամ ընկերներ:

Ինչու՞ ընտրել Python-ը

Եկեք մի փոքր ավելի շատ խոսենք ձեր առաջին ծրագրավորման լեզվի ընտրության մասին: Առաջին լեզուն պետք է լինի պարզ և հայտնի շուկայում: Այդպիսի լեզու է Պիթոն. Ես բարձր խորհուրդ եմ տալիս ընտրել այն որպես ձեր առաջին ծրագրավորման լեզու:

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

Հանուն արդարության արժե նշել ծրագրավորման այլ լեզուներ։ Javaկարող է լավ ընտրություն լինել սկսնակների համար: Այս լեզուն ավելի հայտնի է, քան Python-ը, բայց նաև մի փոքր ավելի բարդ: Բայց զարգացման գործիքները շատ ավելի լավ են մշակված։ Մնում է միայն համեմատել Eclipse-ը և IDLE-ն: Java-ից հետո ձեզ համար ավելի հեշտ կլինի անցնել ցածր մակարդակի ծրագրավորման լեզուներով աշխատելուն։

PHP- մեկ այլ շատ հայտնի լեզու: Եվ ես կարծում եմ, որ դա նույնիսկ ավելի պարզ է, քան Python-ը: Շատ հեշտ է ֆորումում մենթոր կամ խնդրի լուծում գտնելը: Դա պայմանավորված է նրանով, որ աշխարհում կան հսկայական թվով տարբեր մակարդակների PHP ծրագրավորողներ: PHP-ում նորմալ ներմուծում չկա, նույն խնդիրը լուծելու շատ տարբերակներ կան։ Եվ սա բարդացնում է ուսումը: Իսկ PHP-ն նախատեսված է բացառապես համացանցի համար։

Լեզուներ ԳԵվ C#շատ դժվար է սկսնակների համար: Ռուբին- լավ ընտրություն է որպես երկրորդ լեզու, բայց ոչ առաջին: JavaScript- շատ պարզ լեզու, բայց դա ձեզ ոչ մի լավ բան չի սովորեցնի: Բայց առաջին ծրագրավորման լեզվի խնդիրը դեռևս ձեզ ինչ-որ ճիշտ բան սովորեցնելն է, ինչ-որ տրամաբանություն սահմանելը։

Արդյո՞ք անգլերենը կարևոր է:

Կարևոր. Չգիտեմ? Ուսուցանել. Դու գիտես? Բարելավել. Սովորեք կարդալ, գրել, լսել և խոսել անգլերեն: Կենտրոնացեք տեխնիկական գրականության վրա: Լսեք անգլալեզու փոդքասթեր: Կարդացեք անգլերեն լեզվով ծրագրավորման դասագրքեր:

Այն, ինչ դուք պետք է իմանաք, բացի ծրագրավորման լեզվից

Իհարկե, բացի ծրագրավորման լեզվից և անգլերենից, պետք է նաև այլ բան իմանալ։ Բայց ինչ կախված է ձեր ընտրած ուղղությունից: Վեբ ծրագրավորողը պետք է իմանա HTML, CSS, JavaScript: Սեղանի ծրագրավորողը սովորեցնում է օպերացիոն համակարգերի API-ներ և տարբեր շրջանակներ: Բջջային հավելվածների մշակողը սովորում է Android, iOS կամ Windows Phone շրջանակները:

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

Վերջին քայլերը

Ձեզ անհրաժեշտ է ռեզյումե պատրաստել: Ոչ միայն ռեզյումե, այլ . Դուք չպետք է այնտեղ գրեք, բայց պետք չէ նաև լռել ձեր հմտությունների մասին: Երբ ձեզ հրավիրում են հարցազրույցի, դուք պետք է պատրաստվեք դրան: Անցեք այն նյութին, որը նշված է ձեր ռեզյումեում: Դուք պետք է վստահ լինեք ձեր գիտելիքների վրա: Նայեք այն նախագծերին, որոնց վրա աշխատել եք, մտածեք ձեր օգտագործած տեխնոլոգիաների մասին: Եվ առաջ՝ դեպի պայծառ ապագա՝ ծրագրավորողի նոր մասնագիտությամբ:

Մտածեք ձեր կարիերայի մասին: Լուսանկարը՝ Udachnaya kimberlite խողովակ, Յակուտիա:

Վատ ծրագրավորողը նա է, ով չի ձգտում դառնալ CIO: Փառասիրությունն ու կարիերայի բարձունքների ձգտումը սովորաբար կողք կողքի են գնում ձեր ոլորտում գերազանց մասնագետ դառնալու ցանկության հետ:

HR մենեջերները հաճախ թվարկում են կարիերայի աճի հնարավորությունը որպես երիտասարդ մասնագետ աշխատանքի ընդունելու կետերից մեկը, իսկ ՏՏ խոշոր ընկերությունների մեծ մասի համար ծրագրավորողի մասնագիտական ​​զարգացման հեռանկարները բառացիորեն նշվում են կետ առ կետ: Նման պլանն արտացոլում է այն հիմնական գործոնները, որոնք պետք է բարելավեն աշխատողի աշխատանքը՝ հետագայում ավելի բարձր պաշտոնի բարձրացման համար:

Եկեք դիտարկենք ծրագրավորողի կարիերայի ուղին՝ օգտագործելով ուղղահայաց շարժման օրինակը, քանի որ սա դասական և ամենատարածված ճանապարհն է պրակտիկանտից մինչև մենեջեր: Բացի այդ, հենց ուղղահայաց աճն է նպաստում կարիերայի ամենաարագ առաջխաղացմանը:

Ուսուցանող (կրտսեր ծրագրավորող)

Ծրագրավորողների մեծամասնությունը սկսում է իրենց կարիերան այս առաջին քայլից: Աշխատանքի ընդունման հիմնական պահանջներից.

Բարձրագույն կամ թերի տեխնիկական կրթություն.
Ծրագրավորման լեզուների հիմունքների իմացություն։

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

Ծրագրավորող

Այս պաշտոնին անցնելու պահին ծրագրավորողը պետք է առնվազն.

Ունենալ մասնագետի դիպլոմ (ցանկալի է տեխնիկական մասնագիտություն, բայց ոչ պարտադիր):
Իմացեք ամեն ինչ ծրագրային ապահովման ճարտարագիտության մասին:
Մի քանի ծրագրավորման լեզուների տիրապետում:
Իմացեք տվյալների բազայի կառավարման համակարգեր, վեբ ծառայություններ, ՕՀ:

Այս փուլում աշխատողի պարտականությունները հասնում են բոլորովին այլ մակարդակի. նրան վստահված է ծրագրային ապահովման մշակումն ու ներդրումը, վստահված է աշխատել նոր նախագծերի վրա և պահպանել գոյություն ունեցողները:

HR մենեջերներն ընդգծում են, որ ծրագրային ապահովման մշակողի պաշտոնում աշխատողի համար կարևոր է իրեն դրսևորել ոչ միայն որպես ծրագրավորման գործընթացներում խելացի մասնագետ, այլև որպես շփվող, ոչ կոնֆլիկտային մարդ: Հետագա առաջխաղացումը կարիերայի սանդուղքով ենթադրում է ավելի սերտ շփում թիմի, այլ գերատեսչությունների աշխատակիցների և բաժինների ղեկավարների հետ, ուստի անձնական որակները շատ կարևոր են:

Առաջատար ծրագրավորող

Դիմորդին ներկայացվող պահանջները լրացուցիչ ներառում են.

Աշխատանքային փորձ խոշոր մասնագիտացված ընկերությունում՝ 2 տարուց։
Մասնակցություն առևտրային կորպորատիվ նախագծերին:

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

Զարգացման բաժնի ղեկավար (Թիմի ղեկավար)

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

Հիմնական պարտականությունները, որպես կանոն, ներառում են նախագծի կառավարում և նախագծային որոշումներ կայացնելը, թիմային աշխատանքի կազմակերպումը և բոլոր տեսակի տեխնիկական խնդիրների լուծումը:

Ծրագրի ղեկավար

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

Շարժվեք առաջ՝ մի քանի ուղղություններով. անցեք մեկ այլ, ավելի հետաքրքիր և մասշտաբային նախագծի, զարգացեք որպես զարգացման տնօրեն կամ դարձեք ՏՏ տնօրեն: Ընտրված ուղին մեծապես կախված է մասնագետի շահերից և այն ոլորտից, որտեղ նա ձգտում է ապացուցել իրեն: