Ովքեր են ծրագրավորողները



Photo by Dean Pugh on Unsplash

Ծրագրավորողների ով և ինչպիսին լինելու մասին տեղեկությունը շատ քիչ է։ Շատ փոքրաթիվ մարդիկ են իրոք հասկանում, թե ով է այդ ծրագրավորող ասածը, ինչ է մտնում նրա պարտականությունների մեջ, ինչով է նա զբաղված ողջ օրը և ընդհանրապես․․․

Ինչպե՞ս տարբերել ծրագրավորողին

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

Մոտավորապես նույն բանն էլ պետք է ասենք ծրագրավորողի մասին։ Եթե ինչ-որ մեկը գիտի «ֆորմատ անել», ապա նա դեռ ծրագրավորող չի։ Եթե ինչ-որ մեկը գիտի «Լինուքս գցել կոմպի մեջ», ապա դա էլ դեռ բավարար չի։ Եթե ինչ-որ մեկը կարող է Google Site սարքել, ապա նա դեռ ծրագրավորող չէ։ Եթե ինչ-որ մեկը կարող է Էքսելի միջի աղյուսակից գրաֆիկական ներկայացում (chart) ստանալ, ապա նա դեռ ծրագրավորող չէ։

Նույնիսկ, երբ մարդ կարող է տվյալների բազայից SQL լեզվով հարցում անել և արդյունքը RDL-ի միջոցով նկարագրված ձևանմուշի միջոցով իր ուզած տեսքով արտահանել PDF և այն նամակով ուղարկել իր տնօրենին․․․ Նա ևս պարտադիր չէ, որ լինի ծրագրավորող։

Եթե մարդ կարող է փակ աչքերով րոպեում 250 բառ անգլերեն գրել այնպես, որ տեխնիկական մասնագետն իր գրածի հիման վրա կարողանա մշակել համակարգի ճարտարապետությունը․․․ Դա էլ բավական չէ ծրագրավորող կոչվելու համար։

Եթե մարդ կարողանում է կարգավորել Facebook-ի կայքը և կազմակերպել վճարովի գրառումներ։ Երբ մարդ կարող է համակարգիչը չաշխատող վիճակից վերակենդանացնել և նոր համակարգ տեղադրել․․․ Երբ կարող է PSD ֆայլից ստանալ SVG և այն բարեհաջող կերպով տեղադրել իր կայքում․․․ Այս ամենն էլ բավարար չէ, որպեսզի այդ մարդիկ համարվեն ծրագրավորող։

Շարունակե՞նք։

Ծրագրավորողներ չեն project manager-ները, product owner-ները, scrum master-ները, QA engineer-ները, UI/UX designer—ները, business analyst-ները, HR manager—ները, system administrator—ները, hardware developer-ները․․․

Սահմանենք ծրագրավորողին

Մենք դեռ չենք հասել ծրագրավորողի սահմանմանը, բայց արդեն բավական հոգնել ենք, չէ՞։

Համակարգչի առջև նստող մարդկանց կարելի է բաժանել հետևյալ խմբերի։

  • Շարքային օգտագործողներ։ Մարդիկ, ովքեր միացնում են համակարգիչը, բացում են web-browser-ը, կամ միացնում են իրենց սիրելի խաղը և ոչ մի ուրիշ բանի չեն կպնում։

  • Առաջադեմ օգտագործողներ։ Օգտագործողներ, ովքեր սիրում են "բզբզել", տեսնել, թե ինչ կլինի այս կամ այն ֆայլը ջնջելու դեպքում։ Պարբերաբար կարիք են ունենում օպերացիոն համակարգը նորից տեղադրել, քանի որ, իրենց արածների պատճառով, այն դադարում է նորմալ աշխատել։

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

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

  • Կիրառական ծրագրավորող։ Մարդ, ով կարողանում է կիրառություններ մշակել՝ օգտվելով օպերացիոն համակարգի տրամադրած միջոցներից։ Կարող է գտնել, կոմպիլացնել և իրար հետ ինտեգրել տարատեսակ ծրագրային գրադարաններ՝ հեծանիվ չհորինելու համար։ Հարկ եղած դեպքում կարող է հորինել այնպիսի հեծանով, որի նմանը մինչ այդ գոյություն չուներ, և օգտագործել այն իր ծրագրում։ Տիրապետում է ալգորիթմների, տվյալների կառուցվածքների անգին գիտելիքների։ Կարողնաում է հմտորեն օգտվել ծրագրային և ճարտարապետական ձևանմուշներից։ Կարճ ասած՝ գրում է լուրջ ծրագրեր։

  • Համակարգային ծրագրավորող։ Մարդ, ով ստեղծում է այն գործիքները, որոնցից օգտվում է կիրառական ծրագրավորողը։ Համակարգային ծրագրավորողները մշակում և իրականացնում են օպերացիոն համակարգեր, սարքերի դրայվերներ, կոմպիլյատորներ, ֆայլային համակարգեր, տվյալների բազաների ղեկավարման համակարգեր։ Համակարգային ծրագրավորողներին հիմնականում շարքային օտագործողները չեն տեսնում, քանի որ նրանց ստեղծած գործիքները ևս մեծամասամբ անհասանելի են օգտագործողների համար։

  • Հաքերներ։ Ոչ, խոսքը չի գնում համակարգեր կոտրող, ուրիշի ունեցվածքը գողացող, այլոց վնաս պատճառող մարդկանց՝ հանցագործների մասին։ Hacker տերմինը չի նշանակում հանցագործ։ Նշանակում է մարդ, ով ունի էապես այլ մտածողություն, ինչն իրեն թույլ է տալիս տեսնել այս կամ այն գործիքի կամ համակարգի կիրառության մեկ այլ, ավելի հետաքրքիր եղանակ։ Մեր դեպքում՝ հաքերներն այն մարդիկ են, ովքեր կատարում են հեղափոխություն ծրագրավորման աշխարհում։ Ոչ թե մշակում են նոր App, որն ունի 1521046210 բեռնում, այլ ստեղծում են նոր ուղղություն կամ մշակույթ ծրագրավորման մեջ։ Նրանք շատ քիչ են և ծրագրավորողներից բացի ուրիշ ոչ մեկին կարող է ծանոթ չլինեն․․․

Դե ի՞նչ։ Արդեն պա՞րզ է, թե ովքեր են ծրագրավորողները։ Ծրագրավորողը կարող է լուծել իրենից առաջ թվածս բոլոր օգտագործողների՝ ներառյալ ցանցային ադմինիաստրատորի, խնդիրները։ Կհարցնեք, թե ի՞նչ խնդրի մասին է խոսքը։ Ցանցային ադմինիստրատորի բոլոր գործիքները մշակված են ծրագրավորողների կողմից։

Դեռ ցանկանո՞ւմ եք դառնալ ծրագրավորող։ Ծրագրավորող չեն դառնում մի հատ վիդեո դասընթաց լսելով։ Ծրագրավորող չեն դառնում մի ծրագրավորման լեզու կիսատ-պռատ սովորելով։ Ծրագրավորողը շատ բարդ ճանապարհ պետք է անցնի այդ մասնագիտական որակավորումը իրավամբ վաստակելու համար։ Մոտավորապես այնպես, ինչպես բժիշկները․․․ Ուղղակի այն տարբերաությամբ, որ ծրագրավորողներն այնքան էլ շատ չեն սիրում կտրատել մարդկանց։


Դեռ կարծում ես, որ դու ծրագրավորո՞ղ ես։ Պատմիր ինձ ծրագրավորողի քո՛ Ուղու մասին։


Կարդալ ավելին

Լինում է, չի լինում՝ մի Ուսանող է լինում։

Հարգելի մեծապատիվ ավագ և փորձառու ծրագրավորողներ։

Հիշում ե՞ք, թե ինչպես եք ձեռք բերել այդ փորձն ու պաշտոնը։ Եկեք մի փոքրիկ ճամփորդություն կատարենք դեպի ձեր պատմության խորքը։

Շատերը կարծում են, թե ծրագրավորող դառնում են ծրագրավորման լեզու սովորելով։ Դա նման է նրան, որ պնդենք, թե մարդ են դառնում լեզու սովորելով։ Քանի լեզու գիտես՝ այնքան մարդ ես, չէ՞։ Բայց արդյո՞ք քանի ծրագրավորման լեզու գիտես՝ այնքան ծրագրավորող ես։