Full Stack: зайві ускладнення чи найближче майбутнє розробки
Чи є у мене майбутнє в розробці? Чи можу я зі своїми скілами конкурувати з молодшими розробниками? Що робити, щоб бути потрібним на ІТ-ринку? Може, пора світчнутись в Full Stack? Певен, багато хто ставить собі подібні питання. Тому пропоную розглянути загальні принципи Full Stack розробки та відповісти собі, чи є бажання рухатись в цьому напрямку.
Як Back-end розробник компанії Innovation Feel з
Чи є Full Stack дійсно перспективним напрямком для кар’єри в IT? Винятково Back-end чи Front-end вакансій стає дедалі менше. Всім частіше потрібні універсальні розробники, здатні закривати кілька аспектів розробки.
Звісно, Full Stack — це не панацея. Це не завжди приємно та комфортно, але така тенденція і запит ринку. Тому такий скіллсет може стати потужним інструментом розвитку. Іноді клієнти (роботодавці) можуть мати різне уявлення, що таке Full Stack: від поєднання скілів Front-end та Back-end розробки до фул сета (Front-end + Back-end + Mobile + DevOps, але таке трапляється дуже рідко).
В цій статті я розповім, що таке Full Stack у класичному розумінні Front-end + Back-end, чи є попит на таких розробників, і які скіли вони повинні мати у своєму арсеналі, щоб вийти на новий рівень.
Хто такі Full Stack розробники
Full Stack розробник — це програміст, який може працювати з різними елементами кодової бази та технологіями.
Звіт LinkedIn за 2023 рік показує, що такі спеціалісти входять у топ-10 найбільш популярних ІТ-спеціалістів у світі. Можна сказати, що це «універсальний розробник», який за необхідності може працювати над різними сторонами проєкту, а також прискорювати й покращувати взаємодію між Front-end і Back-end частинами застосунку.
Переваги для компанії
- Швидкість розробки.
Замість того, щоб наймати кількох розробників для Front-end та Back-end, можна покластися на одну кваліфіковану людину, яка впорається з усім. Це призводить до зниження витрат на управління проєктом, скорочення часу на комунікацію та відсутність непорозумінь, що робить процес розробки більш ефективним загалом.
- Універсальність.
Завдяки Full Stack розробникам компанія може оптимізувати комунікацію та управління проєктами. Також думка такого розробника під час планування, грумінгу чи технічного дослідження може бути більш цілісною.
- Зниження витрат.
Залучення Full Stack розробників допомагає компаніям заощадити кошти, оскільки вони усувають потребу в більшій команді. Це особливо корисно для стартапів, коли компанія тільки починає свій проєкт і має обмежені ресурси. Також це знижує навантаження на HR-департамент, хоча при цьому трохи ускладнює їм завдання.
Переваги для розробника
- Розширення кругозору.
Full Stack розробник може мати знання у більшій кількості технологій, що допомагає краще розуміти та вирішувати технічні завдання.
- Підвищення конкурентоспроможності.
Український ІТ-ринок цінує фахівців, які володіють повним стеком. Це дає більше можливостей для кар’єрного зростання.
- Можливість бачити й направляти розробку з обох сторін.
Досвідчені Full Stack спеціалісти можуть приймати рішення на будь-якому рівні реалізації проєкту.
Міфи про Full Stack розробників
Міф 1: ці розробники знають все про все
Хоча Full Stack спеціалісти мають широкий набір навичок, нереально очікувати, що вони будуть експертами в кожному аспекті розробки програмного забезпечення. Вони можуть мати глибоке розуміння як зовнішніх, так і внутрішніх технологій, але не обов’язково є експертами в кожній ніші чи структурі цих областей.
З мого досвіду, коли ти вивчаєш одну мову програмування або технологію до рівня самостійної розробки (в моєму випадку це був Vue.js), а потім, з різних причин, змушений вивчати іншу і працювати з нею протягом тривалого часу (у моєму випадку це React Native), то з часом попередні навички частково втрачаються. А уявіть, якщо така ситуація виникає не раз і не два.
Це відбувається тому, що такий розробник працює з мовою чи технологією недостатньо довго, щоб відпрацювати навички до рівня автоматизму. Зворотна ситуація у світчерів у fullstack з мовами, які тривалий час були основними. Саме тому варто концентруватись на кількох технологіях і намагатись довести навички саме до цього механічного рівня.
Міф 2: Full Stack розробники знають мало, але в багатьох технологіях
Попри те, що таким спеціалістам потрібно мати практичні знання про різноманітні технології, вони, як і будь-який розробник, також повинні глибоко занурюватися в конкретні предметні області, коли це необхідно.
Потрібно мати цілісне уявлення про взаємодію різних компонентів, але також важливо зберігати фокус на кількох технологіях, не намагаючись охопити всі. Абсолютно справедливою теза про «механічну» памʼять буде і в цьому пункті. Для мене таким стеком став Ruby + Vue.js + React Native.
Міф 3: Full Stack розробники заробляють більше
Хоча розробники з повним скілсетом зазвичай отримують конкурентоспроможну оплату, вона часто буде нижчою за оплату профільних експертів. Але тут все залежить від рівня розробника.
Опитування DOU показує, що у 2023 році заробітна плата Full Stack на позиції Middle впала. Інші тайтли або не змінилися, або зросли.
Згідно Glassdoor, середня зарплата Full Stack розробників за 2023 рік становила близько $106,000 в США, водночас Back-end спеціалісти в середньому заробляли $110,000. Отже, хоча Full Stack можуть отримувати хороші зарплати, вони не завжди випереджають профільних спеціалістів.
Міф 4: Full Stack — це майбутнє розробки
Хоча така розробка є популярним і важливим напрямом, це не єдиний шлях до успіху в розробці програмного забезпечення. Спеціалізовані розробники з глибоким досвідом у певних областях завжди будуть затребувані, якщо є попит на технології, в яких вони є експертами.
Що з оплатою у 2024 році
Згідно з останніми галузевими звітами, середня зарплата Full Stack розробників у Європі стартує від $8000. В Україні таку заробітну плату може отримувати Senior, а Middle може розраховувати на $2200 — $4300.
Заробітна плата залежно від мов програмування
Ruby Stack розробники (зазвичай Ruby + React/Vue.js) у США в середньому отримують близько $7250. В Україні ті самі спеціалісти дістають $2500. Йдеться саме про середню оплату без привʼязки до рівня.
MEAN Stack розробники (JS-based: AngularJS, Node.js, Express.js тощо) у США в середньому заробляють трохи менше — $6000. В Україні вони отримують таку ж суму, як і спеціалісти з Ruby — $2500. Альтернативою може бути MERN-стек, який також базується на JS, але з React замість AngularJS.
LAMP Stack розробники (Linux, Apache, MySQL, PHP — не зовсім Full Stack, тут лише для порівняння) отримують у США в середньому $6700. В Україні ця цифра — $2500.
Бюро статистики праці прогнозує близько 189 200 вакансій для Full Stack щороку в період між 2020 і 2030. Очікується, що кількість робочих місць суттєво зросте протягом наступних 10 років, і такі розробники зможуть відігравати ключову роль серед найбільш потрібних фахівців.
Як я став Full Stack розробником
Вище я писав, що мій кар’єрний стрибок у Full Stack був вимушений, оскільки цього вимагав поточний проєкт. Та цей перехід стимулював мене рости й розвиватись згідно з потребами ринку та задачами на проєкті. Розуміння поточних трендів на ринку праці є одним з ключових аспектів для того, щоб стати успішним Full Stack розробником.
Що ж можна робити, щоб досягти цієї мети? Ділюся власним досвідом:
- Переглядайте вакансії на популярних платформах як-то Djinni, DOU, GitHub jobs, LinkedIn. Це допомагає краще зрозуміти, які технології та навички наразі мають найбільший попит.
- Вивчайте популярні фреймворки та мови. Від такого спеціаліста очікують знання Back-end і Front-end одночасно. Також максимально корисними будуть знання хмарних технологій та баз даних. Розвиток розробника дуже важливий і цей процес вічний!
- Опануйте DevOps-інструменти хоча б на базовому рівні. Успішний Full Stack часто поєднує не тільки навички Front-end та Back-end розробки, але й DevOps-практики для інтеграції та доставлення коду. Важливими інструментами є Docker, Kubernetes, а також CI/CD як-то Jenkins, GitHub Actions чи Bitbucket Pipeline для автоматизації тестування та розгортання.
- Готуйтесь до співбесід. Можливо, пройдіть кілька тестових. Робіть тестові завдання якісно, але лаконічно, щоб максимально показати свої навички. Попросіть більш досвідчених колег провести вам інтерв’ю та оцінити рівень, дати якісь рекомендації. І, звичайно, слідкуйте за трендами.
Підсумки
Перед тим, як ухвалити рішення рухатись в сторону Full Stack, необхідно врахувати довгострокові цілі та готовність освоювати нові технології. Оцініть свої сильні та слабкі сторони та почніть з малих проєктів. Пам’ятайте, що такий перехід потребує часу, але може значно розширити ваші кар’єрні можливості.
Підсумовуючи:
- необхідно моніторити ринок і слідкувати за трендами. Можливо, тут корисніше буде навіть прогноз трендів, а не тільки їх нинішній стан;
- треба концентруватись на кількох обраних технологіях, не розпилюватись на велику кількість мов та технологій;
- час від часу варто практикуватись в мовах, які вже знаєте, але в роботі наразі не використовуєте;
- потрібно весь час навчатись — ця сфера не терпить застою.
Поділіться своїм досвідом та думками у коментарях. Чи розглядаєте ви можливість змінити напрям або, можливо, вже працюєте в цій сфері?
22 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів