Full Stack Developer: хто це, чим займається, скільки заробляє та як ним стати

Щодо цієї професії точиться багато суперечок в середовищі IT. Немає єдиної думки щодо сутності, переваг та недоліків. Проте популярність Full Stack Developer не лише не зменшується, а й зростає. Тож поговоримо про те, хто це такі, чим займаються, які Hard Skils та Soft Skils повинні мати. Розбираємо переваги та недоліки роботи, відповідаємо, чи варто йти у цю професію, з чого розпочати і як вчитись (додаємо великий перелік крутих курсів), як написати якісне резюме та Cover Letter, яку будете отримувати зарплату і які перспективи професійного зростання.

Хто такий Full Stack developer

Full Stack Developer (далі FSD) — це розробник, який має досвід в розробці Back-end та Front-end. Знань цього фахівця має бути достатньо для реалізації проєкту на достатньому рівні.

Коротко кажучи: Full Stack розробник в першу чергу концентрується на задачах «Що треба зробити», а не «Яким способом зробити». Останнє питання він часто також вирішує самостійно, адже володіє необхідними технологіями. Full Stack Developer працює як з клієнтським (client-side), так і з серверним ПЗ (server-side). Йому не треба синхронізувати роботу фахівців Back-end та Front-end, адже він сам — «людина-оркестр».

Full Stack розробник може створити з прототипу повноцінний MVP (мінімальний життєздатний продукт).

До речі, в глобальному розумінні під стеком (Stack) розуміють типовий набір програм та технологій, які дозволяють досягти заданого результату. Наприклад, програмний стек смартфону включає ОС, базові та додаткові застосунки для телефону, браузери. Частіше говорять про веб стек, мобільний стек та стек нативних застосунків (native application stack). Проте у більшості випадків, коли говорять про FSD, мають на увазі Full Stack Web Developer. А серед веб розробників найчастіше згадують (та гуглять) Full Stack Java Developer.

Чим займається Full Stack Web Developer

  1. FSD перекладає вимоги замовника у стандартний формат.
  2. Управляє проєктом та координує його з клієнтом.
  3. Пише для Back-end код на Ruby, Python, Java, PHP тощо.
  4. Пише та оптимізує Front-end код на HTML та JavaScript.
  5. Продумує, створює та налагоджує (Debug) запити до баз даних.
  6. Тестує та валідує застосунки згідно з клієнтськими вимогами.
  7. Відстежує та коригує продуктивність веб застосунків та інфраструктури.
  8. Швидко та ефективно розв'язує проблеми, що виникають з веб застосунками.

Більш докладно на цих пунктах зупинимось далі.

Якими були Full Stack Web розробники 20 років тому

На початку 2000-х років Full stack розробником з веб спеціалізацією міг умовно називатись той, хто міг намалювати вебсторінку в Photoshop або Fireworks, перенести цей дизайн у HTML, CSS, створити «гарячі точки» на зображеннях і завантажити дані ресурсу на FTP-сервер. Такий розробник мав розбиратись в базових сценаріях PHP 4.0, зберігати динамічні дані в MySQL. Тобто все було значно простіше. Проте можливостей отримувати складні та цікаві проєкти було не так багато, і дохід від них міг бути менше.

Популярність та майбутнє професії Full Stack Developer. Чи багато зараз у світі FSD чи це загрожений вид

FS-розробників у світі навіть побільшало. Якщо за підсумками глобального дослідження Stackoverflow за 2018 рік в структурі усіх опитаних розробників світу їх було 48%, то за свіжими даними 2020 року їх вже стільки ж, як і у ролі-лідера — Back-end: біля 55%.

Full Stack Developer: хто це, чим займається, скільки заробляє та яким ним стати
Джерело: Stackoverflow

До того ж середній досвід професійного програмування FSD складає 8-9 років.

Full Stack Developer: хто це, чим займається, скільки заробляє та яким ним стати
Джерело: Stackoverflow

Бюро трудової статистики США (U.S. Bureau of Labor Statistics) дослідило, що до 2024 року кількість робочих місць за FSD зросте зі 135 тис. одиниць на момент розрахунку до 853 тисяч місць. До того ж, тільки у США очікується 1,4 млн незаповнених вакансій за цією професією.

Деякі причини зростання попиту на FSD

Такий попит обумовлений зокрема тим, що взаємодія Back-end-  та Front-end-підрозділів завжди складніша, вимагає більше часу, супроводжується більшою кількістю помилок та непорозумінь. Тому бажання спростити процес цілком зрозуміле. До того ж у великих проєктах (промисловість, інші комерційні проєкти) часто замовник не дає чітко формалізованих вимог або вносить багато поточних змін. Щоб не втрачати у продуктивності, логічніше ставити на таку проєкти Full Stack розробників.

Деякі типи проєктів, яким потрібен FSD

Зазвичай, Full Stack Developer потрібен при розробці та супроводі Web- та мобільних застосунків або на проєктах для платформ E-Commerce. Але це далеко не вичерпний перелік.

Full Stack Developer та Full stack Engineer — це одне й те саме?

Не зовсім. У списках вакансій часто можна знайти роль Full Stack Engineer. Коротко опишемо її так:

Беремо Senior Full Stack Developer, додаємо досвід проєктного менеджменту у системному адмініструванні (налагодження управління, підтримка систем та мереж). Ось вам і Full Stack Engineer.

Вимоги до Full Stack Developer, які Soft Skills та Hard Skills потрібні

Портрет ідеального Full stack Developer

  1. Від 3 років досвіду в розробці.
  2. Має знати технології Front-end, Java, JavaScript, HTML, PHP, C# (щонайменше HTML5, CSS3, and ECMAScript 6). 
  3. Вміє розгорнути та управляти веб застосунком за допомогою GitHub Pages, AWS, Heroku, Firebase, Netlify, Digital Ocean.
  4. Для Back-end: знає мову програмування, хоча б Python, Ruby або JavaScript, .Net, Java та PHP (так, знову вони), Go.
  5. Працює з СУБД (системи управління базами даних), знання технологій MySQL, MongoDB, Oracle, SQLServer та кешем через Varnish, Memcached, Redis, розуміння платформ для хостингу, спостереження, ведення журналів тощо.
  6. Може працювати з головними фреймворками: Bootstrap, для JavaScript — Angular.js, React.js та Vue.js. Якщо працюватиме з масштабними комерційними застосунками — може знадобитись фреймворк Redux (докладніше про фреймворки — далі).
  7. Добре розуміє глибинні особливості браузерів — хоча б трьох: Chrome, Firefox та Microsoft Edge.
  8. Впевнено працює в інтегрованому середовищі розробки (IDE): NetBeans або Visual Studio від Microsoft. Або ж редактор Visual Studio Code (VS Code) від тієї ж Microsoft, який зараз набирає популярність. А можна використовувати навіть текстовий редактор з плагінами (наприклад, Sublime Text).
  9. Добре розбирається в питаннях безпеки та знає, що робити з відомими вразливостями систем (vulnerabilities).
  10. Знає CSS preprocessor, Ruby Bundler, бібліотеки jQuery, LESS, Angular, React JS тощо.
  11. Знає веб сервіси, REST та SOAP сервіси, вміє зв'язувати через API Front-end та Back-end та працювати з Fetch API та його аналогами, добре розбирається у JSON.
  12. Достатньо розуміє User Experience (UX), хоча б базово розуміє основи дизайну (зокрема UI) та прототипування. Важливо розумітись на адаптивному дизайні (адже мобільна розробка наразі дуже популярна).
  13. Здатний провести тестування якості, особливо unit tests; вміє автоматизувати тестування та добре його документувати.
  14. Має досвід у роботі з системою управління версіями Git та іншими VCS.
  15. Для командної розробки знадобиться знання менеджменту. Тож треба розбиратись в SCRUM, Agile або Kanban.
  16. Глибоко розуміє алгоритми та структури даних.
  17. Здатен писати чистий та добре документований код.

Як то кажуть — «замість тисячі слів»: схема, яка коротко та дохідливо ілюструє Hard Skil Set для FSD.

Full Stack Developer: хто це, чим займається, скільки заробляє та яким ним стати
Full Stack Developer Skill Set. Джерело: Guru99

Специфіка вимог до Full Stack Developer може бути різною на різних проєктах. Наприклад, в деяких компаніях розробник повинен мати впевнений середній технічний рівень у Front-end, але надзвичайно високий — у Back-end. Або навпаки. В ідеалі — це рівень Senior в обох напрямках, але ж і платити за таке треба добре, а не заощаджувати (про це — далі).

Три популярні стеки

Незалежно від того, який стек ви оберете, в роботі побачите багато спільного в архітектурі та патернах. Отже, ось вони:

Просунуті Hard Skills для Middle та Senior FSD

Досвідчені Full Stack Developers повинні:

Сім найважливіших гнучких навичок (Soft Skills) для FSD

  1. Сильне критичне мислення.
  2. Здатність до розв'язання проблем.
  3. Увага до деталей.
  4. Організаційні здібності.
  5. Навички проєктного менеджменту.
  6. Відмінні комунікаційні навички.
  7. Здатність працювати ві команді (Team Player).

Професійний розвиток для Full Stack розробника

  1. Рівень Lead.
  2. Team Lead або інші управлінські гілки.
  3. Architect.
  4. CTO (Chief technology officer).
  5. Розвиток вшир: нові технології або складніші проєкти.
  6. Універсальний досвід допоможе стати ключовою фігурою в стартапі.

Переваги роботи Full Stack розробника

1. Процес розробки значно швидший, ніж у проєктах, де за FE та BE відповідають різні люди. Нема з ким сперечатись, доводити те, що здається вірним. Взяв і зробив. Без зайвих ланцюжків комунікацій.

2. Багато розробників задоволені тим, що вони можуть гнучко обирати лише ті великі проєкти, які їм дійсно цікаві. Тож, коли у 2020 році у компаніях почались скорочення, шукати роботу Full Stack розробникам було трохи простіше. Якщо вже до цього дійшло, адже, як правило, таких універсальних профі намагаються не відпускати без важливих причин.

І це не просто красномовні заяви. Дослідження Stackoverflow на початок 2020 року показує, що тих FSD, хто активно шукає роботу, значно менше, ніж інших ролей, — 15,7%.

Full Stack Developer: хто це, чим займається, скільки заробляє та яким ним стати
Джерело: Stackoverflow

Недоліки та проблемні питання в роботі

1. З одного боку — завжди зручно, коли одна людина займається питаннями, які інакше страждали б від нестачі комунікацій, затягувань, непорозумінь тощо. З іншого — часто компанії шукають універсалів «не від гарного життя», а намагаються зекономити. Результатом економії може бути занижена зарплата або посередня якість виконання. Отже, важливо, щоб Full Stack Developer був дійсно професіоналом.

2. Якщо важливе рішення залежить від точки зору Full Stack Developer, то існує ймовірність, що це рішенні буде помилковим. Або успіх або невдача у реалізації рішення буде залежати від рівня навичок розробника.

3. У спілкуванні зі замовниками часто постає неймовірна кількість вимог та запитів до розробника. У таких ASAP-випадках якість програмування може бути нижче, адже нема часу сісти та нормально розібратись у проблемі. Один FSD на проєкті буде намагатись встигнути усе, що розпорошуватиме його  продуктивність.

4. Доводиться набагато більше навчатись: не завжди можна відкидати щось з Back-end чи Front-end як «не моє».

5. Нерідко Front-end-складова буде посередньої якості, адже дуже важко швидко реалізувати обидва боки проєкту одному-двом фахівцям.

5. Часом продуктові компанії ставляться до Full stack developer як до економного варіанту фахівця, який годиться для підтримки або розвитку проєкту.

Міфи стосовно Full Stack розробників

1. FSD має писати усі типи коду самостійно. Насправді, він має знати різні технології, але це не означає, що він сам завжди пише усі коди.

2. Це універсальний розробник, що має майстерно володіти усіма стеками. Насправді, в цьому огляді ви бачили, що можна глибоко спеціалізуватись на декількох ключових стеках. Проте це не скасовує знання на доброму рівні інших стеків.

3. Працюючи в аутсорсі, не можна стати FSD. Насправді, це залежить лише від вас та того, чи володієте ви необхідними технічними знаннями та бажанням вчитись.

4. Багато розробників вважає міфом тезу «вузька спеціалізація робить розробника сильнішим». Адже якщо людина має великий досвід, то вона швидко заглибиться у технологію (за необхідності). Їхні опоненти відповідають: універсальні фахівці — це пережиток СРСР, і бути фахівцем у всьому нереально

Чи варто йти у Full Stack розробники

Отже, як зрозуміло з попередніх пунктів, бути FSD водночас і складно (універсал), і легко (контролювати втілення проєкту від прототипу до MVP, без суперечок і складної взаємодії з іншими ланками проєкту в багатьох випадках — дуже зручно).

Отже, проміжні підсумки.

7 причин стати Full stack developer

  1. Великий попит на цю роль, особливо за кордоном.
  2. Цей попит зростатиме (див. розділ про майбутнє професії).
  3. Достатньо великий рівень зарплати (про це — в наступному розділі).
  4. Більше різних можливостей зростання завдяки тому, що ви володієте більшою кількістю інструментів.
  5. Широкі можливості для навчання — багато дійсно корисних курсів та матеріалів на авторитетних платформах.
  6. Гнучкість — у 2020 році значно зріс тренд переходу на віддалений формат з гнучкими графіками роботи. Тож вже минули часи, коли розробник мав сидіти цілодобово в офісі, обставивши свій стіл горнятками з кавою.
  7. Для FSD є досить великі шанси потрапити на роботу до світової компанії мрії. Для прикладу візьмемо лише декілька відомих компаній, які періодично шукають FSD: Apple, General Assembly, Coding Dojo, When I Work тощо.

Яка зарплата у Full Stack developer

Зарплати в Україні

Згідно з нашим дослідженням щодо зарплат Full Stack Developer отримує в Україні від $518 до $4000 на місяць, медіана — $2259.

Full Stack Developer: хто це, чим займається, скільки заробляє та яким ним стати
Джерело: Ukraine IT Salary Overview

Зарплати за кордоном

Якщо подивитись цифри з дослідження Guru99, бачимо шалений розрив. У США Full Stack Developer отримує від $3600 до $17750 на місяць, медіана — $9300 на місяць.

Full Stack Developer: хто це, чим займається, скільки заробляє та яким ним стати
Джерело: Guru99

Цю ж медіану бачимо і за даними Stackoverflow.

Full Stack Developer: хто це, чим займається, скільки заробляє та яким ним стати
Джерело: Stackoverflow

За даними Indeed для усередненого американського Full Stack Developer з 2-3 роками досвіду, рівнем бакалавру середня місячна зарплата складає $8003  та річний бонус $4100.

Full Stack Developer: хто це, чим займається, скільки заробляє та яким ним стати
Джерело: Indeed

У Старому Світі медіанна зарплата трохи вища. Скажімо, в Англії зарплата Full stack developer складає GBP3300-GBP5800 на місяць, що приблизно дорівнює $4300—$7600.

За даними Stackoverflow, загальносвітова медіана трохи скромніша — $4500 на місяць.

Full Stack Developer: хто це, чим займається, скільки заробляє та яким ним стати
Джерело: Stackoverflow

Трохи екзотики: за даними Indeed, в Австралії FSD отримує еквівалент $6500 на місяць (максимум — $11600).

Як стати Full Stack Developer 

Як пише DOU, частіше FSD стають Back-end-розробники, яким доводиться розбиратись у Front-end. Якщо ж Front-end-розробник розпочне розбиратись в Back-end, то йому буде набагато складніше.

Поради

Шість кроків, щоб увійти до професії Full Stack Developer

Крок №1. Вивчіть необхідні мови програмування, про які ми пишемо в цьому огляді.

Крок №2. Удоскональте, протестуйте та закріпіть на практиці знання (зробіть, наприклад на JS тестову сторінку, відпрацюйте на ній базові концепції). Сконцентруйтесь на семи фундаментальних напрямах:

  1. Робота серверів.
  2. Мережі.
  3. Вебхостинги та оточення.
  4. Алгоритми.
  5. Структури даних (типи, властивості).
  6. Технології програмування.
  7. Управління базами даних.

В ідеалі ви повинні вміти зібрати з окремих концептуальних частин єдиний справний проєкт: сервіс чи застосунок.

Крок №3. Розвивайте вправність у якомога більшій кількості потрібних технологій, проте зробіть головною для себе лише одну.

Крок №4. Вивчіть якісний курс від авторитетних організацій. Наприклад: The Odin Project, Treehouse, Codecademy. Більш докладно щодо найкращих курсів — див. далі.

Застерігаємо: не спокушайтесь на курси, які обіцяють швидко навчити всього (особливо, якщо вони коштують занадто дорого).

Корисними будуть онлайн курси з Full Stack Development із закріпленням ментора та гнучким графіком. Особливо корисно, коли у розклад включаються практичні проєкти (наприклад, University of Phoenix дуже вміло включає в розклад командну роботу над проєктами). Дуже добре, якщо є можливість докладних QA-сесій, роз'яснення усього, що не зрозуміло, індивідуального репетиторства тощо.

Скільки часу треба, щоб навчитись писати код

Цікаві цифри щодо часу навчання залежно від формату наводить Careerkarma.

Full Stack Developer: хто це, чим займається, скільки заробляє та яким ним стати
Джерело: Careerkarma

Крок №5. Практикуйтесь. Отримані знання обов'язково закріплюйте на практиці, особливо в команді.

Крок №6. Тренуйтесь у додаткових проєктах, за якими у вас недостатньо експертизи. Саме так її й прокачаєте.

Які навчальні проєкти можна створити новачкам та чим вони будуть корисні

Важливе зауваження: якщо тільки набиваєте руку на технології — не занурюйтесь занадто у візуальне оформлення. Концентруйтесь на тому, щоб ваш навчальний проєкт працював, як було задумано.

Для прокачування JavaScript

Для прокачування React

Чи може Junior стати Full Stack Developer

За цим питанням немає єдиної думки: хтось вважає, що новачок почне хапатись за все й одразу, зрештою не заглибиться в жодний напрям і стане таким собі «різноробом». Хтось не без підстав вважає, що градація Junior/Middle/Senior при обиранні Full Stack Developer не є доречною.

18 шанованих курсів та джерел, щоб вивчитись на Full Stack Developer

1. Full-Stack Web Development Course with React (Coursera)

Курс від Hongkong University of Science and Technology. В програмі: Bootstrap 4, React, React Native, Node JS, Express та MongoDB. Можна спробувати безкоштовний тиждень, і заплатити за подальше навчання, лише якщо сподобалось.

Тривалість: 16 тижнів, 6-8 годин на тиждень

2. Full Stack Web and Multiplatform Mobile App Development (Coursera)

Ще один курс від Hongkong University of Science and Technology. Концетрцується на front-end та back-end, гібридній мобільній розробці, мультиплатформенним рішенням. Аналогічно — можна розпочати безкоштовно.

Тривалість: 20 тижнів, 6-8 годин на тиждень

3. Full Stack Web Development: HTML, CSS, React & Node (Udemy)

Курс для новачків від відомого викладача-практика Марка Прайса. В програмі HTML, CSS, React, Node, Express, Bootstrap 4. Платний, але часто бувають знижки.

Тривалість: понад 25 годин.

4.The Complete 2020 Web Development Bootcamp(Udemy)

Курс від Angela Yu. Покриває основні фундаментальні технології, необхідні для веброзробки. Платний, але часто бувають знижки.

Тривалість: 43 години.

5. The Web Developer Bootcamp (Udemy)

Курс веде Colt Steele. Аналогічно іншим курсам Udemy — платний.

Тривалість: 46 годин.

6. Full Stack Web Developer Nanodegree (Udacity)

Платний. Тривалість: 4 місяці, 10 годин на тиждень

7. Web Designing for Everybody – Basics (University of Michigan)

Безкоштовно. Тривалість: 3 місяці

8. The Advanced Full Stack Developer Bootcamp (Udemy)

Для тих, хто вже має базові знання з FSD. Більш глибоко розбирають CSS3, OOP та функціональне програмування в JavaScript, React, Node.js. До того ж матимете можливість використати отримані знання та створювати застосунки.

Платний. Тривалість: 34 години.

9. Free Full Stack Developer Course (LinkedInLearning – Lynda)

Курс проводиться на платформі LinkedIn Learning. Можна спробувіати місяць безкоштовної підписки.

Тривалість: 43 години.

10. Секція курсів Web Development Courses Online (edX)

Багато різних курсів від Harvard, Microsoft тав інших відомих організацій, включаючи ті, що дають можливість пройти професійну сертифікацію. Є безкоштовний обмежений доступ. Апгрейди та сертифікати — платні.

11. Full Stack Developer Course (edX)

Ще одна підбірка курсів. Тривалість: за власним графіком, індивідуально.

12. Web Development Courses (Codecademy)

Тривалість: 30 тижнів. Є пробний безкоштовний доступ.

13. Full Stack Developer Certification (Edureka)

Тривалість: 200+ годин. Платний. При першому відвідуванні часто пропонують купон на знижку.

14. Intro to Coding and Programming Nanodegree (Udacity)

Платний (є безкоштовний урок). Тривалість: 4 місяці, 10 годин на тиждень

15. Full Stack Development Course – MEAN Stack (SimpliLearn)

Платний. Тривалість: 90+ годин

16. Free Full-Stack Development Training (LinkedIn Learning – Lynda)

Ще один курс на LinkedIn Learning. Проводить Samer Buna

17. Безкоштовний набір програм freeCodeCamp.

Понад 2000 годин програмування, реальні проєкти, сертифікати.

Бонус: перелік 48 найкращих буткемпів для тих, хто вчиться писати код (від Cource Report).

Як скласти якісне резюме на роль Full-stack developer

Варто не задовольнитись написанням «I am a Full Stack Developer», а створити CV за всіма правилами. Які Hard Skills та Soft Skills писати, ми розповіли вище.

Нагадуємо, що ми розробили повний гайд (українською та англійською), як правильно скласти резюме з шаблоном, який ви можете швидко заповнити та відправити рекрутеру. Також не забувайте, що дуже важливо скласти коректний супровідний лист (Cover Letter), який зачепить роботодавця.

Як і де знайти роботу Full Stack developer

Коли писалась ця стаття, на DOU кількість вакансій складала майже 300, з них переважали такі міста, як Київ (більш ніж половина вакансій), майже чверть — Харків, 18% — Львів, 8% — Одеса. Закордонних вакансій там майже немає (2,7%). Проте віддаленої роботи — майже третина від усіх вакансій.

Якщо відповісти на поставлене вище питання «Чи варто Junior ставати Full Stack Developer» цифрами, то серед цих вакансій 19% — з бажанням отримати спеціаліста з досвідом від 5 років. Переважна більшість (майже 44%) роботодавців все ж розглядає Middle-фахівців з досвідом від 3 до 5 років, і майже 28% готові працювати з розробниками, що мають досвід 1-3 роки. Новачків з досвідом до року — майже не шукають (3%).

Щоб стежити за світовим ринком IT та Digital-вакансій, радимо підписатись на міжнародний Job Board. Щоб моментально отримувати нові вакансії, підпишіться на наш канал з вакансіями та на поштову розсилку

Отже, це головне, що потрібно знати щодо ролі Full Stack Developer. Звісно, цю тему можна поглиблювати майже нескінченно. Якщо хочете, щоб ми висвітлили якісь окремі особливості цієї або іншої професії в IT та Digital, пишіть нам у Facebook, Instagram,Telegram або на редакційну пошту.

Поділитись у соцмережах

Автор
Денис Якушенко
Про автора
Редактор Make it in UA
Thanks for signing up
Oops! Something went wrong while submitting the form.
Powered by Verifalia email verification