Щодо цієї професії точиться багато суперечок в середовищі IT. Немає єдиної думки щодо сутності, переваг та недоліків. Проте популярність Full Stack Developer не лише не зменшується, а й зростає. Тож поговоримо про те, хто це такі, чим займаються, які Hard Skils та Soft Skils повинні мати. Розбираємо переваги та недоліки роботи, відповідаємо, чи варто йти у цю професію, з чого розпочати і як вчитись (додаємо великий перелік крутих курсів), як написати якісне резюме та Cover Letter, яку будете отримувати зарплату і які перспективи професійного зростання.
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.
Більш докладно на цих пунктах зупинимось далі.
На початку 2000-х років Full stack розробником з веб спеціалізацією міг умовно називатись той, хто міг намалювати вебсторінку в Photoshop або Fireworks, перенести цей дизайн у HTML, CSS, створити «гарячі точки» на зображеннях і завантажити дані ресурсу на FTP-сервер. Такий розробник мав розбиратись в базових сценаріях PHP 4.0, зберігати динамічні дані в MySQL. Тобто все було значно простіше. Проте можливостей отримувати складні та цікаві проєкти було не так багато, і дохід від них міг бути менше.
FS-розробників у світі навіть побільшало. Якщо за підсумками глобального дослідження Stackoverflow за 2018 рік в структурі усіх опитаних розробників світу їх було 48%, то за свіжими даними 2020 року їх вже стільки ж, як і у ролі-лідера — Back-end: біля 55%.
До того ж середній досвід професійного програмування FSD складає 8-9 років.
Бюро трудової статистики США (U.S. Bureau of Labor Statistics) дослідило, що до 2024 року кількість робочих місць за FSD зросте зі 135 тис. одиниць на момент розрахунку до 853 тисяч місць. До того ж, тільки у США очікується 1,4 млн незаповнених вакансій за цією професією.
Такий попит обумовлений зокрема тим, що взаємодія Back-end- та Front-end-підрозділів завжди складніша, вимагає більше часу, супроводжується більшою кількістю помилок та непорозумінь. Тому бажання спростити процес цілком зрозуміле. До того ж у великих проєктах (промисловість, інші комерційні проєкти) часто замовник не дає чітко формалізованих вимог або вносить багато поточних змін. Щоб не втрачати у продуктивності, логічніше ставити на таку проєкти Full Stack розробників.
Зазвичай, Full Stack Developer потрібен при розробці та супроводі Web- та мобільних застосунків або на проєктах для платформ E-Commerce. Але це далеко не вичерпний перелік.
Не зовсім. У списках вакансій часто можна знайти роль Full Stack Engineer. Коротко опишемо її так:
Беремо Senior Full Stack Developer, додаємо досвід проєктного менеджменту у системному адмініструванні (налагодження управління, підтримка систем та мереж). Ось вам і Full Stack Engineer.
Як то кажуть — «замість тисячі слів»: схема, яка коротко та дохідливо ілюструє Hard Skil Set для FSD.
Специфіка вимог до Full Stack Developer може бути різною на різних проєктах. Наприклад, в деяких компаніях розробник повинен мати впевнений середній технічний рівень у Front-end, але надзвичайно високий — у Back-end. Або навпаки. В ідеалі — це рівень Senior в обох напрямках, але ж і платити за таке треба добре, а не заощаджувати (про це — далі).
Незалежно від того, який стек ви оберете, в роботі побачите багато спільного в архітектурі та патернах. Отже, ось вони:
Досвідчені Full Stack Developers повинні:
1. Процес розробки значно швидший, ніж у проєктах, де за FE та BE відповідають різні люди. Нема з ким сперечатись, доводити те, що здається вірним. Взяв і зробив. Без зайвих ланцюжків комунікацій.
2. Багато розробників задоволені тим, що вони можуть гнучко обирати лише ті великі проєкти, які їм дійсно цікаві. Тож, коли у 2020 році у компаніях почались скорочення, шукати роботу Full Stack розробникам було трохи простіше. Якщо вже до цього дійшло, адже, як правило, таких універсальних профі намагаються не відпускати без важливих причин.
І це не просто красномовні заяви. Дослідження Stackoverflow на початок 2020 року показує, що тих FSD, хто активно шукає роботу, значно менше, ніж інших ролей, — 15,7%.
1. З одного боку — завжди зручно, коли одна людина займається питаннями, які інакше страждали б від нестачі комунікацій, затягувань, непорозумінь тощо. З іншого — часто компанії шукають універсалів «не від гарного життя», а намагаються зекономити. Результатом економії може бути занижена зарплата або посередня якість виконання. Отже, важливо, щоб Full Stack Developer був дійсно професіоналом.
2. Якщо важливе рішення залежить від точки зору Full Stack Developer, то існує ймовірність, що це рішенні буде помилковим. Або успіх або невдача у реалізації рішення буде залежати від рівня навичок розробника.
3. У спілкуванні зі замовниками часто постає неймовірна кількість вимог та запитів до розробника. У таких ASAP-випадках якість програмування може бути нижче, адже нема часу сісти та нормально розібратись у проблемі. Один FSD на проєкті буде намагатись встигнути усе, що розпорошуватиме його продуктивність.
4. Доводиться набагато більше навчатись: не завжди можна відкидати щось з Back-end чи Front-end як «не моє».
5. Нерідко Front-end-складова буде посередньої якості, адже дуже важко швидко реалізувати обидва боки проєкту одному-двом фахівцям.
5. Часом продуктові компанії ставляться до Full stack developer як до економного варіанту фахівця, який годиться для підтримки або розвитку проєкту.
1. FSD має писати усі типи коду самостійно. Насправді, він має знати різні технології, але це не означає, що він сам завжди пише усі коди.
2. Це універсальний розробник, що має майстерно володіти усіма стеками. Насправді, в цьому огляді ви бачили, що можна глибоко спеціалізуватись на декількох ключових стеках. Проте це не скасовує знання на доброму рівні інших стеків.
3. Працюючи в аутсорсі, не можна стати FSD. Насправді, це залежить лише від вас та того, чи володієте ви необхідними технічними знаннями та бажанням вчитись.
4. Багато розробників вважає міфом тезу «вузька спеціалізація робить розробника сильнішим». Адже якщо людина має великий досвід, то вона швидко заглибиться у технологію (за необхідності). Їхні опоненти відповідають: універсальні фахівці — це пережиток СРСР, і бути фахівцем у всьому нереально
Отже, як зрозуміло з попередніх пунктів, бути FSD водночас і складно (універсал), і легко (контролювати втілення проєкту від прототипу до MVP, без суперечок і складної взаємодії з іншими ланками проєкту в багатьох випадках — дуже зручно).
Отже, проміжні підсумки.
Згідно з нашим дослідженням щодо зарплат Full Stack Developer отримує в Україні від $518 до $4000 на місяць, медіана — $2259.
Якщо подивитись цифри з дослідження Guru99, бачимо шалений розрив. У США Full Stack Developer отримує від $3600 до $17750 на місяць, медіана — $9300 на місяць.
Цю ж медіану бачимо і за даними Stackoverflow.
За даними Indeed для усередненого американського Full Stack Developer з 2-3 роками досвіду, рівнем бакалавру середня місячна зарплата складає $8003 та річний бонус $4100.
У Старому Світі медіанна зарплата трохи вища. Скажімо, в Англії зарплата Full stack developer складає GBP3300-GBP5800 на місяць, що приблизно дорівнює $4300—$7600.
За даними Stackoverflow, загальносвітова медіана трохи скромніша — $4500 на місяць.
Трохи екзотики: за даними Indeed, в Австралії FSD отримує еквівалент $6500 на місяць (максимум — $11600).
Як пише DOU, частіше FSD стають Back-end-розробники, яким доводиться розбиратись у Front-end. Якщо ж Front-end-розробник розпочне розбиратись в Back-end, то йому буде набагато складніше.
Крок №1. Вивчіть необхідні мови програмування, про які ми пишемо в цьому огляді.
Крок №2. Удоскональте, протестуйте та закріпіть на практиці знання (зробіть, наприклад на JS тестову сторінку, відпрацюйте на ній базові концепції). Сконцентруйтесь на семи фундаментальних напрямах:
В ідеалі ви повинні вміти зібрати з окремих концептуальних частин єдиний справний проєкт: сервіс чи застосунок.
Крок №3. Розвивайте вправність у якомога більшій кількості потрібних технологій, проте зробіть головною для себе лише одну.
Крок №4. Вивчіть якісний курс від авторитетних організацій. Наприклад: The Odin Project, Treehouse, Codecademy. Більш докладно щодо найкращих курсів — див. далі.
Застерігаємо: не спокушайтесь на курси, які обіцяють швидко навчити всього (особливо, якщо вони коштують занадто дорого).
Корисними будуть онлайн курси з Full Stack Development із закріпленням ментора та гнучким графіком. Особливо корисно, коли у розклад включаються практичні проєкти (наприклад, University of Phoenix дуже вміло включає в розклад командну роботу над проєктами). Дуже добре, якщо є можливість докладних QA-сесій, роз'яснення усього, що не зрозуміло, індивідуального репетиторства тощо.
Цікаві цифри щодо часу навчання залежно від формату наводить Careerkarma.
Крок №5. Практикуйтесь. Отримані знання обов'язково закріплюйте на практиці, особливо в команді.
Крок №6. Тренуйтесь у додаткових проєктах, за якими у вас недостатньо експертизи. Саме так її й прокачаєте.
Важливе зауваження: якщо тільки набиваєте руку на технології — не занурюйтесь занадто у візуальне оформлення. Концентруйтесь на тому, щоб ваш навчальний проєкт працював, як було задумано.
За цим питанням немає єдиної думки: хтось вважає, що новачок почне хапатись за все й одразу, зрештою не заглибиться в жодний напрям і стане таким собі «різноробом». Хтось не без підстав вважає, що градація Junior/Middle/Senior при обиранні 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).
Варто не задовольнитись написанням «I am a Full Stack Developer», а створити CV за всіма правилами. Які Hard Skills та Soft Skills писати, ми розповіли вище.
Нагадуємо, що ми розробили повний гайд (українською та англійською), як правильно скласти резюме з шаблоном, який ви можете швидко заповнити та відправити рекрутеру. Також не забувайте, що дуже важливо скласти коректний супровідний лист (Cover Letter), який зачепить роботодавця.
Коли писалась ця стаття, на 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 або на редакційну пошту.
Отримуйте першими корисні статті, вичерпні гайди щодо пошуку віддаленої роботи в цифровому світі, розвитку Soft Skills та Hard Skills, цікаві та мотивуючі інтерв'ю, огляди трендів, лайфхаки.