Стоит ли становится Fullstack разработчиком

Сегодня я кратко (или не очень) изложу свои мысли о том, стоит ли быть fullstack разработчиком, какие плюсы и минусы у такого пути развития и для кого такое направление выгодно.

c3e58faf4b57c3436da191d22d30f01e.jpeg

Немного вводной информации -, а кто такие эти ваши fullstack«и?

Ранее fullstack«ов не было, точнее, они были, но носили немного презрительное название «веб-мастер». Их стек достаточно стандартен: PHP для backend, MySQL в качестве базы данных и HTML, CSS, JS + JQuery для работы с клиентской составляющей. В их работу входило создание сайтов с нуля. С развитием технологий появилось и разнообразие стэков для разработки. Из популярного это Angular + Java + PostgreSQL или React + NodeJS + MongoDB. Однако количество связок технологий не ограничивается этими двумя, так как для backend«a разработчик мог выбрать что-то из:

  1. PHP

  2. Python

  3. Ruby

  4. JavaScript

  5. Go

  6. C#

  7. Java

  8. C++

  9. И черт знает чего еще…

…а для frontend«а из:

  1. React

  2. Vue

  3. Angular

  4. JQuery

  5. Ember

  6. И снова черт знает чего еще…

Ну и не стоит забывать, что большинство технологий дают выбор использовать TypeScript или нет.

А ведь еще нужно работать с базами данных, у которых тоже есть свои подвиды. Тем не менее из-за их общей схожести оставим, что есть базы семейства SQL и базы не SQL вида (NoSQL). Понятно, что есть популярные сочетания и вы вряд ли встретите сочетание Java + Vue (без TypeScript) + MongoDB (NoSQL), но все же комбинаций стеков можно насчитать немерено.

Однако сейчас есть тенденция добавлять к Fullstack разработке еще и мобильную разработку. Это логично и правильно (так как мобильное приложение очень похоже на frontend), но теперь стек обычного fullstack разработчика похож на описание всех технологий в компании.

Что-то я сам потерялся. Оно и понятно, ведь всё это обильное разнообразие на самом деле вводит в замешательство. Однако, если вам кажется, что я пугаю людей, которые хотят начать свою карьеру с fullstack разработки… вам не кажется, так как я правда не считаю fullstack хорошим вариантом для старта. Но в отличие от веб мастеров, fullstack разработчики обычно не занимаются разработкой всего приложения с нуля, почти никогда.

Я знаю про четыре применения fullstack разработчиков:

  1. Разработчик одного направления — Front или Back. В нужный момент его можно перекинуть на тёмную стороны силы для тушения дедлайнов, но часто это не называют fullstack«ом, а указывают в вакансии как «желательно общее понимание темной стороны силы».

  2. Для создания модулей приложения одним человеком. Часто это практикуется в компаниях, которые продают время разработчиков и не создают свои продукты. Здесь fullstack«и могут быстрее поправить полностью незнакомый модуль, так как им не нужно договариваться с другими разработчиками — сам поправил и back, и front.

  3. Для работы, где пересекаются технологии и front«a и back«a, но там обычно еще и DevOps«ы замешаны, поэтому сверх всего вышеописанного нужно будет хотя бы базово понимать суть их работы.

  4. Делать сайты с нуля — редко, но бывает.

Теперь разберем мотивы тех, кто стремится стать fullstack разработчиком:

  1. Больше денег

  2. Больше вакансий

  3. Разнообразие

  4. Перспективы

Вроде это основные причины из-за которых люди идут на тропу fullstack.

Высокие зарплаты

Начнем с высоких зарплат. Будем сравнивать Junior и Senior уровень во frontend«е, android и backend«е. Для чистоты backend будет на NodeJS, PHP и Go.

Junior Frontend (252 вакансии)

image.png

Junior Frontend

Junior Android (59 вакансии)

image.png

Junior Android

Junior Backend NodeJS (14 вакансий)

image.png

Junior Backend NodeJS

Junior Backend Go (115 вакансий)

image.png

Junior Backend Go

Junior Backend PHP (29 вакансий)

Junior Backend PHP

Junior Backend PHP

Junior Fullstack (35 вакансий)

image.png

Junior Fullstack

Теперь посмотрим на Senior уровень:

Senior Frontend (890 вакансий)

image.png

Senior Frontend

Junior Android (233 вакансии)

image.png

Junior Android

Senior Backend NodeJS (68 вакансий)

image.png

Senior Backend NodeJS

Senior Backend Go (310 вакансий)

image.png

Senior Backend Go

Senior Backend PHP (167 вакансий)

image.png

Senior Backend PHP

Senior Fullstack (162 вакансии)

image.png

Senior Fullstack

Итог такой — мы получили много цифр и букв, давайте разбираться.

Средняя зарплата fullstack разработчика ниже, чем у профильного специалиста, но и возможность получать более 600.000 достаточно неплохая. Получается, что смысла идти в fullstack из-за денег нет? Скорее всего. Да, ваша зарплата может вырасти на текущем месте работы, скорее всего это и есть те 600.000+, и это хороший плюс, но вот смена работы для вас будет уже не такой приятной. Подробнее про это в следующих пунктах.

Больше вакансий

Продолжаем смотреть на графики и понимаем, что это тоже неправда. Вакансий сильно меньше, чем у большинства узких специалистов. Однако тут нужно сделать уточнение — давайте разобьём fullstack разработчика на основные навыки и посмотрим вакансии по отдельно взятым технологиям:

image.png

Тут мы уже можем получить гораздо более высокий охват вакансий, но тут как с поиском подруг в Таиланде — нужно внимание к деталям

image.png

Сразу отвечу на ваш вопрос: «а почему Senior превратился в два Middle и одного Junior?». В теории возможно знать все на Senior уровень, но от Fullstack«ов не требуется уметь во все тонкие механизмы одной технологии. Из-за этого большая часть Senior разработчиков узкого профиля будут на голову выше. Никто не запретит продавать себя Senior Fullstack разработчику как Senior Java разработчика, так как часть своего времени вы тратили на совсем другое. На мой взгляд, имея одинаковый опыт с другим кандидатам узкого профиля будучи fullstack«ом, у вас мало шансов продать себя.

И тут мы понимаем, что у нас много навыков, которые многим нужны, но в тот же момент мало кого интересует платить вам за знание DevOps и Angular на позиции Java разработчика. В итоге мы получаем три эффекта, приятных или нет, решайте сами:

  1. Смена работы превращается в долгий поиск или снижение зарплаты

  2. При смене работы вы точно что-то не будете знать, из за большого разнообразия технологий на рынке.

  3. При решении остаться в рамках одной компании, вы сможете расти как специалист или менеджер (про менеджера чуть дальше)

Разнообразие

Единственный настоящий плюс. Если вы сможете уместить в голове множество процессов в вашей компании и искать пути для улучшений этих процессов, то вы станете идеальным кандидатом в Product owner«ы или Team lead«ы, так как вам уже знакомы многие тонкости проекта и технологий. В то же время это вам поможет лучше понимать, как выглядит весь цикл разработки, что будет полезно на более высоких должностях.

Вот мы и получили дополнение к одному из пунктов — При решении остаться в рамках одной компании, вы сможете получить определенный бонусы, и перспективы роста выше, чем у узких специалистов.

Перспективы

Единственный настоящий плюс. Если вы сможете уместить в голове множество процессов в вашей компании и искать пути для улучшений этих процессов, то вы станете идеальным кандидатом в Product owner«ы или Team lead«ы, так как вам уже знакомы многие тонкости проекта и технологий. В то же время это вам поможет лучше понимать, как выглядит весь цикл разработки, что будет полезно на более высоких должностях.

Вот мы и получили дополнение к одному из пунктов — При решении остаться в рамках одной компании, вы сможете получить определенный бонусы, и перспективы роста выше, чем у узких специалистов.

Итог

FullStack это возможность для роста внутри компании. Вы должны стать Middle или Senior «что-то» разработчиком, а потом уже можете расти как FullStack. Это может быть не самым рациональным маршрутом, но это возможность получить новые навыки и расти в статус менеджеров или полностью менять вектор развития, например, с Java backend на Angular Frontend.

Для Junior специалистов не стоит даже думать о Fullstack разработке. Сейчас в одной специальности знаний слишком много и тратить время на изучение второй технологии слишком дорого для вас. Станьте хотя бы Middle разработчиком, а дальше уже можно переходить в Fullstack, но подумайте над причиной этого перехода, возможно, вам это совсем не нужно.

© Habrahabr.ru