"Толук стекти иштеп чыгуучу - бул бардык программалоо тилдерин жана технологияларын билген, ошондой эле сонун ырдаган жана бийлеген техникалык уста."
Full Stack Developer деген ким?
Ошентип, салттуу мааниде Full Stack иштеп чыгуучусу деген эмне? Эң кеңири таралган аныктама бул системанын функционалдуулугунун бардык бөлүктөрүн, анын ичинде продукттун колдонуучу тарабын (фронт) жана бөлүштүрүлгөн serverлерде иштеген ички codeду (backend) иштеп чыгуу үчүн жооптуу адис экенин айтат. Эреже катары, эгер ачык вакансия боюнча жарнакта “толук стек” деген сөз айкашы чыкса, бул иштеп чыгуучу бир эле учурда бэкэндди жана фронтендди иштеп чыгуу боюнча бorмге жана көндүмгө ээ болушу керек дегенди билдирет. Бирок, көптөгөн компаниялар андан ары барышат жана "Full Stack иштеп чыгуучусу" деп алар программалык продуктунун бардык компоненттерин иштеп чыгууга гана жөндөмдүү болбостон, ошондой эле өнүмдөрдү башкаруудан баштап операциялык системаны орнотууга чейин бардыгын ала алган универсалдуу жоокерди билдирет. serverлердеги система жана кеңсе принтерин оңдоо. Чынында, көпчүлүк учурларда, толук стек иштеп чыгуучу долбоорду ийгorктүү аяктоо үчүн зарыл болгон технологиялардын жыйындысы боюнча татыктуу бorмге ээ болушу талап кылынат. Ошентип, бул учурда "стек" талап кылынган функцияга жетүү үчүн бириктирилген программалык модулдардын жана компоненттердин жыйындысын билдирет.![Швед да, Орок да. Full Stack иштеп чыгуучусу ким жана кантип ага айланса болот? - 3](https://cdn.javarush.com/images/article/422ca489-6a1c-4a14-be28-0e685d52d076/512.jpeg)
Эмне үчүн бул тема мынчалык талаштуу?
Full Stack иштеп чыгуучусу чындыгында кандай болушу керектиги жана андай жырткычтын мындай адистерди өзүнчө топко бөлүүгө жетиштүү санда бар же жок экендиги жөнүндө талаш бир топ убакыттан бери уланып келет. Тажрыйбалуу программисттер белгилегендей, Facebookтун өкүлдөрү 2000-жылдары түзүлгөндө, иштеп чыгуучулар үчүн адистештирилген конференциялардын биринде сүйлөгөн сөзүндө, алар жалаң гана Full Stack иштеп чыгуучуларын жалдай турганын айтышкандан кийин, ал жаңы күч менен жанды. "Эгер Full Stack иштеп чыгуучунун салттуу аныктамалары сизди чаташтырса, анда баары туура. Себеби Full Stack иштеп чыгуучусу убактылуу нерсе. "Толук стек" деген эмне экенин сүрөттөгөн orмий модель жок. Башка ушул сыяктуу иштеп чыгуучуларга салыштырмалуу толук стек иштеп чыгуучунун деңгээлин өлчөөнүн так жолу жок. Full Stack боюнча бирден-бир консенсус - бул кубулуштун маңызынын бирдиктүү аныктамасы боюнча эч ким макул эмес. Ошондуктан бул темада окуганыңыздын баары субъективдүү пикирден башка эч нерсе эмес”, - дейт тажрыйбалуу программалык камсыздоону иштеп чыгуучу жана архитектор Райланд Голдштейн.![Швед да, Орок да. Full Stack иштеп чыгуучусу ким жана кантип ага айланса болот? - 4](https://cdn.javarush.com/images/article/32575d86-9f99-462b-8409-9aa9ed02904d/512.jpeg)
Full Stack өнүктүрүүнүн төрт түркүгү
Бирок, көптөгөн эксперттер Full Stack иштеп чыгуучусу талаштуу концепция деп ырасташса да, бош орундар аз эмес, тескерисинче. Ошондуктан, келгиле, бул кызматка тапшыруу үчүн, эреже катары, кайсы тармактарда бorмге ээ болушуңуз керектигин карап көрөлү.-
Frontend иштеп чыгуу.
Эреже катары, алдыңкы тил HTML, CSS жана JavaScript сыяктуу веб-иштеп чыгуу технологияларын жана программалоо тилдерин билдирет. Ал ошондой эле React сыяктуу JavaScript алHowтарын жана буюмдун "кардар" тарабына тиешелүү бардык башка технологияларды камтыйт.
Окууну кайдан баштоо керек:
Сиз React App же Gatsby алHowтарын түзүү менен баштасаңыз болот , анын жардамы менен толук кандуу React тиркемесин түзүү оңой. CSS препроцессорлорун, CSS-in-JS сыяктуу негизги CSS куралдарын жана Sass сыяктуу куралдарды үйрөнүү жакшы идея .
-
Backend өнүктүрүү.
Backend serverлерде иштеген бардык codeдорду, анын ичинде сайттын иштешин камсыз кылган колдонмолорду жана API'лерди камтыйт. Backend үчүн негизги программалоо тилдери Java, Python, Ruby жана башкалар. Мындан тышкары, serverди иштеп чыгуу SQL бorмин талап кылган маалыматтар базасын башкарууну да камтыйт.
Окууну кайдан баштоо керек:
Биринчиден, JavaScript боюнча бorмиңизди тереңдетүү менен баштоо сунушталат, бул көптөгөн учурларда фронт менен бэкенддин ортосундагы көпүрө катары. Атап айтканда, JavaScriptти жогорку адистештирилген тилден жалпы максаттуу тилге айландырган V8 кыймылдаткычына негизделген программалык платформа болгон NodeJSти үйрөнүү жакшы идея .
Также для того, чтобы иметь максимально полную квалификацию в бэкенде, рекомендуется, помимо Java, постепенно осваивать такие языки программирования, How Python (в первую очередь), PHP и Ruby.
-
Проджект-менеджмент.
От проджект-менеджера, если вкратце, требуется управлять проектом, что включает множество задач, среди которых взаимодействие с клиентами, коллегами, сторонними подрядчиками и т.д. Словом все, что нужно для успешной реализации проекта. Сюда также входит планирование, принятие стратегических решений по работе над продуктом и т.д.
С чего начать изучение:
Для успешного развития в качестве проджект-менеджера не помешает изучить наиболее популярные инструменты в этой сфере. Основными можно назвать: GanttPRO (сервис для планирования и управления проектами с помощью диаграммы Ганта), Jira Software (популярная система для планирования и отслеживания agile-проектов), LiquidPlanner (инструмент для проджект-менеджмента в реальном времени), Basecamp (еще одна система управления проектами и совместной работы) и т.д.
-
DevOps.
Ну и, наконец, четвертым столпом фуллстек-девелопмента является знание DevOps. Обязанности DevOps-а могут сильно отличаться в зависимости от проекта, но How правило к ним относится все, что касается запуска программного codeа в продакшн, включая, например, настройку serverов, на которых будет функционировать приложение, и обеспечение слаженной работы специалистов команды вместе с техническими решениями, которые они используют.
С чего начать изучение:
Сфера DevOps также включает в себя довольно много всяких инструментов. Вот те, с изучения которых имеет смысл начинать: инструменты управления исходным codeом (GitLab, GitHub, Bitbucket), CI/CD-инструменты (Ansible, Jenkins, Chef), тулзы для коммуникации и коллаборации (Slack и Microsoft Teams), а также сервисы облачных вычислений и хранения данных (AWS, Azure и GCP).
Помимо вышеперечисленных четырех базовых составляющих “полного стека,” он не был бы действительно полным, если бы не включал в себя также мобильную разработку, базы данных и QA автоматизацию — истинный Full Stack разработчик разбирается и в этих технологиях тоже.
Зарплаты Full Stack разработчиков
Толук стекти иштеп чыгуучулардын эмгек акысына келсек, алар иштеп чыгуу боюнча өзгөчө адистиги бар кесиптештерине караганда орточо анчалык жогору эмес. PayScale ылайык, АКШда толук стекти иштеп чыгуучулардын орточо айлык акысы жылына дээрлик 75 миң долларды түзөт . Ошол эле учурда, минималдуу эмгек акы (толук стек кызматтарында программисттер үчүн) болжол менен жылына $46,000, ал эми максимум жылына болжол менен $114000 түзөт. Экс-СССР өлкөлөрүнө келсек, Украинада Work.ua ресурсуна ылайык, толук стекти иштеп чыгуучулардын орточо эмгек акысы айына 35 миң гривнаны (болжол менен 1300 доллар) түзөт, ал эми Киевде 45 миңди (болжол менен 1650 доллар) түзөт. Россияда, бул маалыматтарга ылайык, толук стекти иштеп чыгуучулардын эмгек акысы орто эсеп менен 40 миң рублдан (530 доллар) 150 миң рублга чейин жетет. (2000 доллар). Эгерде биз жалпы дүйнө боюнча орточо көрсөткүч жөнүндө айта турган болсок, анда биз карап жаткан кызматта иштеген адистер жылына 45 миң долларга жакын киреше табышат. Ал эми Европада толук стекти иштеп чыгуучулар Дания менен Швецияда эң жогорку айлык акы алышат.![Швед да, Орок да. Full Stack иштеп чыгуучусу ким жана кантип ага айланса болот? - 6](https://cdn.javarush.com/images/article/ff2f2ef8-d937-4a4c-a46d-57b7d9ffcb9a/512.jpeg)
Кантип Full Stack иштеп чыгуучусу болууга болот?
Эми өзүңүздү толук ишеним менен жана эч кандай ирониясыз толук стекти иштеп чыгуучу деп аташ үчүн өздөштүрүү керек болгон көндүмдөрдү, жөндөмдөрдү жана технологияларды кыскача карап көрөлү.-
Программалоо тилдери.
Толук стекти иштеп чыгуучу бир нече программалоо тилдерин жакшы бorши керек. Биринчиден, албетте, негизгилери бар: Java, PHP, C#, Python, Ruby, Perl ж.б. Бир сөз менен айтканда, буюмдун негизги бизнес-процесстери жазыла турган эң популярдуу тилдер. Албетте, мындай тилдердин бүтүндөй спектрин мыкты үйрөнүү өтө кыйын болот. Бирок сиз жок дегенде өнүгүүдө маанилүү ролду ойной турган тилдин грамматикасын өздөштүрүшүңүз керек, ошондой эле бир же бир нече тилге негизделген долбоорду кантип түзүүнү, иштеп чыгууну, ишке ашырууну жана сынап көрүүнү жакшы бorшиңиз керек.
-
АлHowтар жана code китепканалары.
Ооба, негизги программалоо тилдерин жакшы билүү көпчүлүк учурда Java Spring, Hibernate, Python Django, PHP Thinkphp, MyBatis жана башкалар сыяктуу популярдуу алHowтарды жана китепканаларды колдонуу мүмкүнчүлүгүн камтыйт.
-
Frontend технологиялары.
Толук стекти иштеп чыгуучулар үчүн алдыңкы технологияларды билүүнүн мааниси да чоң жана убакыттын өтүшү менен жогорулайт. Бүгүнкү күндө ыңгайлуулук жана буюмдун жалпы “орогу” функционалдуулуктан кем эмес мааниге ээ болуп калганда, долбоордун жалпы ийгorгинин олуттуу бөлүгү фронттун ийнине туура келет. Толук стек үчүн сиз жок дегенде негизги алдыңкы технологияларды, башкача айтканда, HTML5, CSS3 жана JavaScript-ти бorшиңиз керек, ошондой эле негизги алдыңкы алHowтарды жана китепканаларды, атап айтканда JQuery, LESS, SASS, AngularJS жана мурда айтылгандарды өздөштүрүшүңүз керек. React.
-
Маалыматтар базасы.
Маалыматтар базалары "толук стектин" дагы бир маанилүү компоненти болуп саналат, анткени ар кандай продукт же кызмат маалымат бир жерде сакталышы керек. Демек, толук стекти иштеп чыгуучу жок дегенде эң популярдуу маалымат базасы тутумдарынын бир нечесин жана алар менен кантип иштөөнү бorши керек. Бүгүнкү күндө эң популярдуу маалымат базасы системалары MySQL, MongoDB, Redis, Oracle, SQLServer жана башкалар. Алардын арасында MongoDB ар кандай интернет долбоорлору үчүн маалымат базасы катары эң популярдуу, MySQL жана Oracle корпоративдик продуктулар тармагындагы бэкенд үчүн эң популярдуу, ал эми Redis көбүнчө кэштөө жана тутумдун иштешин жакшыртуу үчүн колдонулат.
-
Башкаруу жана жумшак көндүмдөр.
Бирок бул жаатта жакшы натыйжаларга жетүү үчүн кандайдыр бир технологияны же программалоо тorн үйрөнүү жетиштүү болбойт. Долбоорду ийгorктүү башкаруу көптөгөн компоненттерди камтыйт, анын ичинде убакытты башкаруу, пландаштыруу, жакшы баарлашуу көндүмдөрү жана башкалар. Ал эми мунун баары негизинен практика аркылуу алынат.
-
Дизайн боюнча негизги бorм.
Акыр-аягы, дизайн бorми, тактап айтканда UX/UI дизайны базалык деңгээлде болсо да, толук стекти иштеп чыгуучунун компетенциясына кирет.
Айтмакчы, бул жерде жогоруда аталган технологиялардын бардык түрлөрүн графикалык түрдө көрсөтүү үчүн иштелип чыккан жакшы түзүлгөн жол картасы .
GO TO FULL VERSION