У цій статті поговоримо про те, що таке Full Stack розробка, як стати таким розробником та розвінчуємо міфи про цю спеціальність.
Однаково добре розбиратися у фронтенді та бекенді, що і є фулстек-розробкою, неможливо. У більшості випадків фахівець-фулстек розбирається і в тому, і в іншому не на повну глибину. Тому що обсяг інформації і з бекенду, і з фронтенду величезний, навіть одну сферу вивчити добре складно, що ж говорити за дві одночасно. Зазвичай фулстек розробник краще розуміється на беку, а у фронті посередньо, або навпаки.
Є проекти, де дуже складний бекенд і на цих проектах віддають перевагу бекендерам, їм знання фронту зазвичай не потрібні. На таких проектах або додатково беруть фулстек-розробника, щоб він міг поправити фронт, або ж наймають окремого фронтендера. А є великі проекти, але не з супер складним бекендом та фронтендом. Для таких проектів дуже вигідно брати full stack розробників, які трохи (на достатньому рівні) знаються на беку, і трохи знаються на фронті.
Зарплати у бекенд-, фронтенд- та фулстек-розробників зазвичай однакові. Тому, якщо ви думали перейти у фулстек через підвищення зарплати — цей варіант не спрацює. Просто ви підходите на більшу кількість проектів.
Починати можна звідки завгодно — хоч із бека, хоч із фронту. Жодної різниці немає. Ви просто доучує ще якийсь шматок знань, а в якому порядку ви вчитиметесь — не має значення. Я знаю фулстекерів, які починали з фронтенду, і знаю тих, хто починав із бекенда. А ось чого я ніколи не бачив, так це фулстек-розробника, у якого і той і інший навик однаково добре прокачується. Зазвичай це або бекендер, який плюс-мінус знає фронт, або навпаки фронтенд-розробник, який щось може зробити на беку.
Це, звичайно, нісенітниця. Фулстек-розробник – це такий самий розробник, як і будь-який інший, а значить крім технічних знань повинні бути і хороші софт скіли.
Треба розуміти, що full stack розробник – це фахівець, який щось знає з фронту і знає з беку. На фронті є три основні фреймворки: Angular, React, Vue. Достатньо знати один, вчити три не має сенсу. На беку може бути будь-яка мова програмування. Тобто, full stack розробником буде вважатися спеціаліст, який знає, наприклад, React (фронт) + Phyton (бек). Або Angular+С#. Або Vue+Ruby. І так далі. У вас може бути будь-яка комбінація знань з фронтенду та бекенду і все це буде фулстек-розробкою. Тобто, варіацій безліч, тому для мене дуже дивно бачити курси Full stack-розробки.
Так от, крім цих технічних знань, фулстек-розробник повинен знати та вміти працювати з базами даних та версткою. Ну і як будь-яким іншим розробникам, фулстекерам потрібні soft skills.
Зазвичай цей міф якраз поширюють продавці курсів фулстек-розробки. Розробник, який хвалиться, що вміє писати код будь-якою мовою – це зазвичай розробник, який не може писати нормальний код взагалі. За фактом, будь-який розробник може написати код будь-якою мовою, але добре він знатиме одну, на якій, власне, і спеціалізується. Девелопер (не важливо якою мовою) досить швидко освоює будь-яку іншу мову, оскільки синтаксис +/- зрозумілий.
Насправді ні. Я бачив і джунів full stack, просто тому, що у них були такі вимоги проекту. Немає жодної дуже серйозної проблеми, щоб окрім своєї мови довчити шматочок тієї технології, яку вимагає проект. Звичайно ж, у міру того як ви ставатимете більш експертним, ви знатимете більше і у своїх технологіях, і в тому, як взагалі ведеться розробка.
Це черговий камінь у город тих курсів, які навчають фулстек-розробці. Я вже казав, що варіацій Full Stack дуже багато, оскільки поєднань фреймворків на фронті та мов на беку безліч.
На JavaScript можна писати і на фронті, і на беку, тому деякі вважають, що якщо працюють з JS на фронті, то легко перейти на бек на Node.js (це теж JS). Але насправді твердження, що фулстек-девелопером можна бути лише вивчаючи JavaScript — це міф. Вивчити Node.js набагато простіше та швидше іншим бекенд-розробникам, тому що Node.js – це про бек. Потрібно розуміти, що синтаксис — це дуже мала і далеко не найскладніша частина вивчення мови. Усі сучасні мови є Сі-подібними, тому синтаксис, наприклад JavaScript, Java та С# дуже схожий. А ось сама фронтент- та бекенд розробка відрізняються одна від одної кардинально. Тому бекендер на умовному PHP або Ruby перевчиться на Node.js набагато простіше ніж фронтендер з JS, просто тому що бекенд-розробник розуміє, які завдання у бека і як це все працює.
Тому якщо ви збираєтеся стати фулстек-розробником, не обов’язково упиратися в JavaScript. З іншого боку, JS вам все ж таки допоможе, тому що є загальні інструментарії (той самий npm), є загальні підходи до коду і так далі. Але все ж таки доучувати доведеться дуже багато: робота з базами даних, робота з операційною системою, файловою системою та інші знання, які зазвичай фронтендерам не потрібні. Тому впиратися в JavaScript я не радив би, але якщо дуже хочеться, то чому б і ні. Node.js — досить потрібний напрямок. А курси у нас є за всіма перерахованими напрямками 🙂
Якщо ваше завдання стати розробником і потрапити в ІТ, то я не радив би зосереджуватися на тому, щоб бути саме фулстек-девелопером. Для того щоб стати хорошим full stack розробником вам потрібно пройти два курси – по бекенд і фронтенд. Якщо ми, звісно,
Якщо ви хочете добре вивчитися і мати реальні знання для подальшої роботи, виберіть або бекенд, або фронтенд. А далі, в процесі пошуку роботи буквально трохи часу витратите на вивчення якогось простенького фреймворку з фронту. Якщо ви фронтендер, то повчіть щось просте з бека, наприклад PHP. Node.js, до речі, зовсім не простий. Тобто, досить просто мати загальне уявлення та вміти трохи користуватися суміжною технологією. Це значно підвищить ваші шанси знайти першу роботу. Так, всі будуть розуміти, що ви не фулстек-девелопер, але невеликі знання про те, що у вас знаходиться на бейку (якщо ви фронтендер), або те, що знаходиться у вас на фронті (якщо ви бекендер) буде великим плюсом на роботі. Можливо, ви поступово перейдете у фулстек. Це дуже гарний та робочий варіант.
Проходити два курси, наприклад, спочатку з бекенду з Java, а це 6+ місяців, а потім з фронтенду, наприклад, Angular, ще 6+ місяців — ну такий собі варіант. Поки ви вчитимете одну частину фулстека, ви вже забудете іншу.
Якщо ви навчаєтесь самостійно, не через курси, то я вам співчуваю. Це справді важко, бо досить складно зрозуміти, що треба вивчити. Але якщо ви любите вчитися самостійно і у вас все виходить, то рекомендація та сама — коли ви вже почали подавати резюме, повчіть трохи суміжну технологію.
Звичайно, для того, щоб шукати роботу, потрібно створити хороше резюме, в якому ви вказуєте проекти, над якими працювали. Кожна ваша навичка має бути підтверджена якимось проектом, інакше ваше резюме просто полетить у кошик. Як шукати роботу я повторюватися не буду, вже багато разів говорив на цю тему.
Але, повторюся, мені здається, що фулстек-девелопер — це не те, на що потрібно цілитися програмістам-початківцям.
Завжди ваш Сергій Немчинський