Ինչպե՞ս դառնալ կոդավորող, մշակող կամ ծրագրային ապահովման ինժեներ:

Ո՞րն է լավագույն տարբերակն ընտրելու և ճիշտ ուղու վրա գտնվելու համար: Եթե ​​մենք իմանայինք պատասխանը, ապա մենք կարող էինք հավատարիմ մնալ այդ պատասխանին և կյանքի կոչվել:

Հե՞շտ է թվում:

Եթե ​​միայն կյանքն այդքան պարզ լիներ, ապա նրանց միջև ընտրություն կատարելու կարիք չի լինի:

Վերադառնալով տեխնոլոգիական ոլորտում իմ ճանապարհորդության սկզբին, ես ունեի այս հարցը և չկարողացա գտնել պատասխանը, այսօր երկար տարիներ անց ես վերջապես ճանաչեցի այն:

Պատասխանը ոչ մեկը է և միևնույն ժամանակ, ես կբացատրեմ, թե ինչ նկատի ունեմ, բայց նախ եկեք հետ գնանք ժամանակին:

Իմ մասնագիտական ​​կյանքի տարբեր փուլերում՝ սկսած քոլեջի նախագծերից, առաջին աշխատանքից և, հետևաբար, բոլոր մյուսներից, ես լսել եմ, որ շատ մարդիկ դիմում են Ծրագրային ապահովման մշակողներին՝ որպես կոդավորողներ, մշակողներ, ծրագրավորողներ, ինժեներներ և այլոց:

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

Հաշվի առեք, որ այս ժամանակը տեղի էր ունենում իմ կանաչ 20-ականների սկզբին, որտեղ միշտ առկա է մեր հպարտության զգացումը, ուշադրության արժանանալու ցանկությունը և աշխարհը նվաճելու պատրաստակամությունը:

Ճշմարտության որոնում

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

Քիչ պատասխաններ էին. հըմմ, կոդավորողը այն տղան է, ով կոդավորում է և ստիպում շարժվել (հիանալի է: կոդավորիչը կարող է լինել տելեկինետիկ և շարժել առարկաներ), …կոդավորող կոդ է գրում ճիշտ? ( սա հարց էր, թե պատասխան), թե՞ այս մեկը «մշակողը չէ, ով զարգացնում է իրերը» (անհավանական ձևով, այս տղան հանճար էր): և իմ սիրելիներից մեկն Արդյո՞ք ինժեներները ուսումնասիրում են համակարգիչը և այդ իրերը: Մի՞թե միայն նրանք չեն կառուցում մայրուղիներ, կամուրջներ և շենքեր։ (Չգիտեի, թե ինչպես լուծել այս հարցը):

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

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

Չկա հստակ սահմանում, և դեռևս ծրագրակազմ մշակողները կոչվում են բազմաթիվ անուններ….

Արագ վերահասցեավորում ժամանակին և մի քանի աշխատանքային փորձից հետո….

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

Եթե ​​մտածեք դրա մասին, ապա այն անձը, որը փորձում է դասակարգել այդ 3 մակարդակները լավից մինչև գերազանց, ձեզ «կոդավորողի» պաշտոն կտա, որպեսզի ձեզ չվճարի «ինժեների» իր հայեցակարգը, ստորև կարող եք տեսնել, թե ինչպես է այս հայտարարությունը ճշմարիտ դառնում:

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

Coder-ը այն անձն է, ով կարող է գրել ցանկացած հիմնական, միջին բարդ կոդ՝ օգտագործելով հիմնարար հասկացություններ, ինչպիսիք են IF/ELSE պայմանները կամ FOR օղակները, որոնք կրկնվում են հավաքածուներում՝ աշխատանքն ավարտելու համար: Աշխատանքը պարզապես կկատարվի և մի՛ նպատակա հետապնդում պաշտպանական կոդավորման, ինչպիսին է սխալի գեղեցիկ բռնումը կամ վավերացումները՝ համոզվելու համար, որ օբյեկտները հասանելի են: Դուք նույնպես չպետք է և հավանաբար ակնկալեք կոշտ օբյեկտի վրա հիմնված կոդի մոտեցում: Հավելվածը կաշխատի ըստ պահանջի, մինչդեռ բարելավումները կարող են դժվար լինել: Օգտատերերի ավելի բարձր պահանջների և հավելվածի խափանումների վերականգնման լավ մասշտաբայնություն ունենալն այստեղ չպետք է ակնկալվի, և եթե առկա է, դա դրական կլինի: Շատ դյուրանցումներ, որոնք վերաբերում են տեխնոլոգիային կամ օգտագործվող գործիքներին, նույնպես կարող են կանխատեսվել:

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

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

Վերը նշված սովորական սահմանումները ոչ մի կերպ կապված չեն որևէ կրթության կամ տարիների փորձի ուսումնասիրությունների հետ, այն ավելի շատ վերաբերում է անձի վերաբերմունքին, արտադրանքի որակի, հուսալիության և քննադատական ​​մտածողությանը նվիրվածությանը:

Իրականությունն այն է, որ ընկերությունները մեր օրերում, երբ փնտրում են այնտեղ իրենց կարիքներին համապատասխանող թեկնածուների՝ կա՛մ լրիվ դրույքով պաշտոնների, կա՛մ պայմանագրերի համար, նրանք ձեզ կդասակարգեն իրենց մտքում:

Եկեք ընդունենք, որ դուք չեք կարող կանգնեցնել այն:

Այնուամենայնիվ, մենք կարող ենք խաղը տեղափոխել հաջորդ մակարդակ և վաճառել նրանց մեր մասին համապատասխան պատկերը՝ տրամադրելով ուժեղ արտադրանք/տպավորություն և ստանալ մեր ցանկալի չաղ զուտ վարձատրությունը:

Եկեք լուծենք առեղծվածը

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

Թվերը կարող են տարբեր լինել ԱՄՆ նահանգների միջև, բայց եթե որպես օրինակ վերցնենք Օռլանդոն, Ֆլորիդա, կարող ենք ասել, որ փոքր ընկերությունները պատրաստ կլինեն վճարել 32k — 45k լավ կոդավորողի համար, մինչդեռ մշակողները կարող են գալ միջին/մեծ ընկերություններ մինչև 50k — 70k, 75k հնարավոր է առաջատարի կամ մենեջերի պաշտոնի համար: Այնուամենայնիվ, փորձառու ինժեները (3 տարի+) կարող է հեշտությամբ ստանալ 75k — 120k, կախված ոլորտներից, ինչպիսիք են տվյալների բազան, բջջային հեռախոսը, վեբը, ՏՏ:

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

Ի վերջո, ո՞ր տարբերակն ընտրել:

Ես կասեի, որ կլինեն ժամանակներ, երբ ձեզանից կպահանջվի լինել coder:

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

Վերջապես, ինժեներին միշտ կխնդրեն շատ վայրերում, քանի որ նրանք կարող են պարզել բաները, առաջնորդել այլ երիտասարդներին, ճարտարապետական ​​լուծումներ շահութաբերության համար (ավելի քիչ վթարներ և օպտիմալ որակ) և առաջարկել հարմարեցված լուծումներ՝ հիմնված որոշակի նախագծերի կարիքների վրա: .

Ինժեներները կունենան ավելի մեծ հնարավորություններ կորպորատիվ սանդուղքներով բարձրանալու դեպի ղեկավար պաշտոններ՝ շնորհիվ քննադատական ​​մտածողության և ընդհանուր պատկերը տեսնելու ունակության:

Բոլոր տարբերակները հարմար են ինչ-որ մեկի համար, եկեք պատրաստվենք այն ամենին, ինչ սպասվում է, երբ դուրս լինեք և փորձեք դրամայնացնել ձեր ժամանակը:

Կյանքի ինչ-որ պահի ես ինքս եմ եղել նրանցից բոլորը և հանդիպել եմ բազմաթիվ մարդկանց իրական աշխարհում, ինչպես նրանցից յուրաքանչյուրը:

Եթե ​​ինչ-որ բան կարող ենք վերցնել իմ ընդհանուր փորձից, նկարահանվեք Developer-ի համար, և դուք լավ կանեք, պլանավորեք Ինժեներ, և դուք կշարունակեք կյանքը, կցանկանաք հանգստանալ և հանգստանալ: այն ժամանակ եկեք լինենք երջանիկ կոդավորող:

Ո՞րն է քո պատմությունն այստեղ:

Սկզբնապես հրապարակվել էwww.bigmegacode.com/coder-vs-developer-vs-engineer/2016 թվականի մայիսի 3-ին: