Backend-бағдарламалаушы: немен айналысады, жалақысы қанша?

Жарияланды
фото: shutterstock

Backend – бағдарламалаушы деген — сайттың ішкі құрылымын жасайтын маман. Фронтенд-бағдарламалаушы көзге көрініп тұратын дүниелерді істесе, бэкендтің жұмысы қарапайым қолданушыға көрінбейді. Бірақ бұл жұмыс өте маңызды. Бүгінгі материалда аталған мамандыққа шолу жасап, оған қажет машықтар мен алатын жалақысына тоқталамыз. 

Backend-бағдарламалаушы деген кім?

         Бэкендтің басты міндеті — сайт админкасына бас-көз болып, деректер базасымен жұмыс істеп, жобаның барлық ішкі құрылымына жауапты болу. Түсінікті болу үшін мысал түрінде айтайық. Айталық, қолданушы әлдебір интернет-дүкеннің сайтына кіріп, өзіне керек заттарды алды. Міне, сайтта қолданушының не істейтінін дәл тауып, деректерін дөп басу үшін жұмыстарды бэкенд реттейді. Сол секілді компания API арқылы өз CRM-іне сыртқы сервистер қосатын болса да, техникалық жұмыстың бәрін осы backend-программист атқарады.

Қандай Hard Skills қажет?

           Кодпен жұмыс істейтіндіктен, бірінші кезекте уеб-бағдарламалаудың майын ішетін маман болуы керек. Backend болу оңай емес. Бірнеше айлық курстарды оқып алып, ертесіне жұмыс табыла салмайды. Олай болса, басты талаптарға тоқталайық: 

  • Сайтты қолдану сценарийін енгізу үшін серверлік бағдарламалау тілдерін меңгерген болуы керек. Оның ішінде: PHP, Ruby, Python, Java, Go және т.б.
  •  Деректер базасын басқару үшін MySQL секілді жүйелерді білуі сұралады;
  • Өз кодымен жобаларды әрмен қарай жүргізу үшін фреймуорктарды білуі қажет. Мысалы Ruby on Rails, Yii, Django дегендей; 
  • Ақпарат жіберіп, алмасып тұру үшін TCP/IP, HTTP хаттамаларының стектерін білуі қажет;
  • Жобада кодтың қалай өзгергенін біліп отыру үшін GIT өзгерістерін бақылау жүйесін білгені дұрыс; 
  • Өзіне керек нәтижелерге қол жеткізу үшін алгоритмдерді білуі керек;
  • Төлем транзакцияларын жүргізу, электрон пошталарды қабылдау және жөнелту деген секілді тапсырмаларды орындай алу үшін керек сервистерді қосып, бағдарламалау алуы қажет;
  • Желі қауіпсіздігі негіздерін жақсы білгені дұрыс;
  • Юнит-тестілер жасай алуы керек;
  • Linux операциялық жүйесін қолдана алатын машыққа ие болғаны жөн;
  • Frontend-бағдарламалауға қатысты құжаттамалар жүргізі алатын болуы қажет.

Қандай Soft Skills керек?

  • Ағылшын тілін білуі керек. Жалпы бағдарламалауда тіл білгеннің пайдасы шетелдік жобаларды да алуға мүмкіндік беретінінде. Әрі қашықтан істей беруге болады. Сондықтан бэкенд-бағдарламалаушының да ағылшын тілін жетік білгені өзіне жақсы. Тіл білетін адам тұрмыстық тақырыпта ғана емес, кәсіби деңгейде коммуникация құра алады. Одан қала берді өз салаңыздағы кейінгі трендтерді уақытылы біліп отырасыз. Шетелдік ресурстарда жаңа ақпарат жиі шығады. Егер тіл білмесеңіз, оның аударылғанын ұзақ күтіп қалуыңыз мүмкін. Оның өзінде түпнұсқадан оқығанның орны бөлек екенін ұмытпаңыз.
  • Білуге, үйренуге құмар болған жақсы. Технологиялар қазір қарыштап дамып жатыр. Біліміңізді ұдайы арттырып, деңгейіңізді көтеріп отырмасаңыз болмайды. Сонда ғана сұранысы жоғары маман боласыз.
  • Өзгелермен жақсы тіл табыса білетін қабілет. Жоба болғандықтан, оны бірнеше адамнан тұратын команда атқарады. Оның ішінде продакт-менеджер, дизайнер, фронтенд-бағдарламалаушы секілді мамандармен тығыз жұмыс істейсіз. Оларға ойыңыңыздағыны дәл жеткізіп, ұсыныстар айту үшін коммуникация құра алатын машықтың болғаны дұрыс.
  • Темірдей тәртіп. Мұндай жұмыста дедлайн сақтау мәселесі аса маңызды. Өйткені тапсырылған тапсырманы кешіктіргеніңіз командадағы басқа процестерге кері әсер береді.
  • Жауапкершілік. Бэкенд-бағдарламалаушыға бұл қабілет аса қажет. Мысалы фронтенд маман жасаған онша емес дизайн әрі кетсе қолданушыға қолайсыздық тудыруы мүмкін. Ал енді бэкенд тарапынан қате кететін болса, онда бұл жұмысқа кері әсер береді. Соның кесірінен бизнес қаржылық шығындарға да тап болуы ғажап емес.
  • Мұқият болуы керек. Мұнда ұсақ-түйек деген дүние жоқ. Барлығын дұрыс бақылауда ұстап, жекелеген элементтерді бір тұтас етуі керек.
  • Еңбекқорлық. Бағдарламалаушының әріптестерімен ұзақ уақыт сөйлесіп отыратын уақыты жоқ. Өйткені код жазу үшін тиянақты қарап, алаңдамай жұмыс істеу керек. Оның әр минуты қымбат.
  • Логикалық ойлау және талдау жасай алу қабілеті. Мұның не үшін керек екені айтпаса да белгілі.
  • Бастаған ісін аяқтай алатын болуы керек. Мысалы соңғы нұсқада қолданба дұрыс жұмыс істемей тұрса, ол жоба барысында қандай керемет фича қосып, жекелеген кодтарды қолмен жазса да, оның еш маңызы болмайды.
  • Өзгеріс ене қалса, соған тез бейімделуі қажет. Көбіне кодтың бір бөлігін қалдырып, басқа тұстарын реттеу керек деген тапсырма түсіп жатады. Сондай көлемді функция қосылатын болса, соған сай жұмыс атқара алғаны абзал. Код архитектурасына үңіліп, түсіну оңай емес. Осы сынды әртүрлі жұмыс режимінде тез ауыса алатын қабілет болуға тиіс.

Junior маманға қойылатын талаптар

  • Серверлік бағдарламалау тілдерінің негізгі синтаксисін білуі керек. Кемінде біреуін жақсы меңгергені абзал. Мысалы Python, PHP, Java дегендей;
  • Аса күрделі болмаса да орташа деңгейдегі жобалармен жұмыс істеп, толық аяқталған болуы қажет. Айталық, интернет-дүкен не онлайн-сервис сайтын бастан-аяқ жасап шыққан тәжірибесі сұралады;
  • Негізгі фреймуорктар мен мәліметтер базасымен жұмыс істей алуға тиіс;
  • Нұсқау бойынша күрделі емес тапсырмаларды орындай алатын машығы болғаны дұрыс;
  • Код-ревью жасайтын ментордың бақылауымен бағдарламалау жасауы керек;
  • Жоба жетекшісімен арада әлдебір сұрақ туындаған кезде оны талқылай алуы қажет;
  • Жобаның соңғы нұсқасына қосылатын кодтарды жаза алуы керек.

Middle маманға қойылатын талаптар

  • Өздігімен яғни ментордың көмегінсіз бағдарламалай алу тәжірибесі кемінде 2-3 жыл болуы қажет;
  • Түрлі кітапхана мен фреймуорктармен жұмыс істей білуге тиіс;
  • Бірнеше код жазу бағдарламаласын толыққанды білуі керек;
  • Жоба паттерндерін түсінуі қажет;
  • SQL-де код құру машығы болып, әрі сұраныстарды оптимизациялауы керек;
  • Бір-біріне ұқсамайтын түрлі тапсырманы өздігімен орындай алатын болуға тиіс;
  • Код-ревьюсіз бағдарламалай білуі керек;
  • Кешенді бір тапсырманы бірнеше қарапайым тапсырмаға бөліп, олардың орындалу мерзімін дәл есептеп, оған қажет технологияларын тізбегін жасай алғаны дұрыс.

Senior маманға қойылатын талаптар

         Бэкендте істейтінSenior-бағдарламалаушының білімі өте терең болады. Код жазатын бір емес, бірнеше тілді жақсы біледі, Django, Laravel, Spring секілді заманауи фреймдермен жұмыс істей алады. Бұл саладағы тәжірибесі — кемінде 5 жыл. Тапсырыс берушілер тарапынан берілетін күрделі кешенді тапсырмаларды шешуге дайын болуы керек. Одан соң соған қажет технологиялар тізбегін әзірлейді. Бірнеше бағдарламалаушыдан тұратын команданы басқарып, оларға бақылап жасау, процестерді ұйымдастырады. Өнімнің соңғы нұсқасының сапасы тексеріп, соған жауапты болады. Көп жағдайда жоба жетекшісі мен тим-лид функциясын қатар атқаруы мүмкін.  

  Backend-бағдарламалаушы қанша жалақы алады?

         Қазақстандық HH сервисіндегі хабарландыруларды шолып шықтық. Өзекті вакансия саны көп. Айлығы да әртүрлі. Әлбетте, жалақы көлемі бағдарламалаушының деңгейіне байланысты. Мысалы джуниорларға кей жерде 150 мың теңге ұсынса, енді бір жерде 450 мың теңге деп көрсетілген. Ал мидл және сеньор мамандардың айлығы тіпті жоғары. Жұмыс тәжірибесі 3-6 жылдан кем болмасын деп көрсетілген ұсыныстардың соңында 4-5 мың доллар жалақыны жиі көруге болады. Ал кем дегендегі көлемі 700 мың теңгеден жоғары. Тим-лидтерге орта есеппен 1 миллион теңге ұсынылған.

         Бэкенд-бағдарламалаушылар түрлі салада жұмыс істейді. IT-ге қатысты шешімдер енгізіп жатқан компанияның барлығына дерлік керек. Мысалы:

  • Банктер;
  • Мемлекеттік құрылымдар мен корпарациялардағы IT-депортаменттер;
  • Бағдарламалаумен айналысатын студиялар;
  • IT-интеграторлар;
  • Сервистер мен SaaS-шешімдермен айналысатын компаниялар.

Бұл мамандықтың артықшылықтары мен кемшіліктері қандай?

  • Мамандықтың сұранысы жоғары. Нарықта вакансия өте көп. Орташа жалақысы да жоғары екенін айттық. Бэкенд-бағдарламалаушыларды нейрон желілері әзірге ауыстыра алмайтындықтан, алдағы уақытта бұл сұраныс жуық арада азаймайтыны анық. Әсіресе, Қазақстанда бағдарламалаушы тапшылығы көп екенін білеміз.
  • Қашықтан істеуге мүмкіндік бар. Бастысы, компьютер мен интернет болса болғаны. Шетелдік компанияларға кіріп, жақсы жалақы ала аласыз. Ақпараттық технологиялар саласының жақсы тұсы сол — фриланста, қашықтан істеуге болатынында.
  • Кемшіліктеріне келсек, мұнда өзгеріс өте жиі болады. Үнемі дамып, жаңа бағдарламалау тілдерін, фреймуорктерді, стектерді біліп, хабардар болып отырмасаңыз болмайды. Егер жаңа дүниені меңгерсеңіз, бұл жақсы жалақы алуға әсер етеді. Ал тыс қалып қойсаңыз, жұмыссыз қалуыңыз мүмкін. Бұл салада ұдайы әрі үздіксіз үйрену қажет. 
  • Мойынға артылатын жауапкершілігік жүгі жоғары. Қате кетсе, бүкіл жұмысқа әсер ететін күрделі жобаларда жұмыс істеуге тура келеді. Мысалы бэкенд тарапынан қаржы сервисіндегі мәліметтер базасында қате кетсе, алаяқтарға қолды болуы мүмкін. Бұл болса, өте үлкен мәселені туындатады. Сондықтан аса мұқият болу қажет.
  • Техникалық ойлау қабілеті мықты болу қажет. Гуманитарлар да меңгеріп кете алады, әрине. Дегенмен артықшылық ретінде техникалық ойлай алатындарды алады. Олай болатын себебі — бэкендке бағдарламалауға қатысты терең білім қажет.
Сондай-ақ оқыңыз