Плюсы и минусы full-stack разработчика
Стоит ли вообще создавать в себе универсального бойца, или развиваться исключительно в узкой специализации - вопрос спорный, и пожалуй каждый выбирает для себя сам.
Начну с минусов
Ты проигрываешь любому узкому специалисту. Вполне логично, что тот кто 5 лет прокачивал в себе навыки только JavaScript - владеет им лучше тебя.
Ты медленнее развиваешься. Это связано с тем, что ты чисто физически не сможешь качественно прокачать множество навыков на единицу времени. То ли час тратить на один, то ли час на три, смекаешь? Если хочешь быть тем самым универсальным бойцом и поддерживать себя в форме по всем фронтом — жертвуй собственной скоростью прокачки по каждому направлению.
Тобой разве что бутылки не будут открывать. Просто готовься к тому, что разработчик с пометкой full-stack представляет из себя уж слишком большой соблазн для тех, кто ставит задачи в компании. Что если нужно что-то довести до ума, а профильный разработчик в отпуске? Отлично, у нас же есть full-stack! Есть задача, с которой никто не разобрался? У тебя же самые обширные знания, ну-ка попробуй.
Ты постоянно будешь загружен. Это собственно как логичное следствие из пунктика выше. Всё, на что в компании не хватит узких специалистов, улетит на твои плечи.
Забудь про отпуск. В небольших веб-студиях практикуют такую штуку: если два работника с одной специализацией подают заявку на отпуск одновременно, кого-то из них просят подвинуться — иначе в компании на месяц просто не будет определенного типа специалистов. А вот фулл-стэк в принципе плохо заменяем: конечно, его могут заменить несколько узких разработчиков, но тогда нужно будет пересматривать всю их нагрузку на этот период. Удобнее не пускать тебя в отпуск под разными предлогами.
Тебя будет швырять как старую шхуну. Шхуна — это такой корабль, а не женщина с пониженной социальной ответственностью, если что. Твоя универсальность будет играть с тобой злую шутку — как только закончится проект, под который тебя специально искали, тебя начнут переключать с проекта на проект — не особо интересуясь, что тебе интересно делать, а что нет. Ты столько всего умеешь, значит — вперед, в бой.
Ну, в целом, всё не так грустно, поэтому перейду к плюсам
Ты ощущаешь себя крутым. Нет, ну серьезно, разработчик, который в состоянии и UI сверстать, и запилить веб-приложение, и портировать под все мобильные платформы, и даже серверные пляски с бубном ему под силу — имеет причины гордиться собой.
Ты редкий, как белый носорог. Уникальный набор скиллов, которые не сыщешь среди резюме и с бэт-прожектором под мышкой — это гарантия низкой конкуренции. Сможешь проще устроиться туда, где подойдешь по навыкам
Твоя работа разнообразнее. Меньше выгораний, меньше рутины — ты сможешь всегда найти себе отдушину. Цени это, твой сосед уже изнывает от php с Битриксом и ночами кодит свою Dwarf Fortress с воксельной графикой..
Ты очень ценный кадр, ведь тебя сложно заменить. Со временем на тебе завяжется достаточно сложных задач, которые будут препятствием для твоего увольнения, так как компании это может грозить большими потерями. Поэтому даже если будут моменты, когда ты не будешь загружен на полную катушку — компания предпочтет сохранить тебя в штате.
Ты можешь получить опыт в стартапах. Очень часто им нужны именно «молодые и амбициозные» (и в идеале умеющие работать за пятерых). full-stack разработчик подходит под определение — если хочется острых ощущений, куража и тонны опыта, то у тебя больше всех шансов.
Тебе легче будет уйти в разработчики-одиночки и развивать свой продукт. Узкому специалисту придется искать команду единомышленников и быть от неё зависимым (и с кем-то делить прибыль). Ты сможешь начать один, а собрать команду — это всегда успеется.