20.01.2023

Сергей Немчинский: Мифы и правда о Full Stack

Сергей Немчинский
16 минут просмотра
<strong>Сергей Немчинский: Мифы и правда о Full Stack</strong>

В этой статье поговорим о том, что такое Full Stack разработка, как стать таким разработчиком и развенчаем мифы об этой специальности.  

 

Мое мнение о Full Stack

 

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

 

Востребованность на рынке

 

Есть проекты, где очень сложный бэкенд и на этих проектах предпочитают выделенных бэкендеров, им знания фронта обычно не нужны. На таких проектах либо дополнительно берут фулстек-разработчика, чтобы он мог поправить фронт, либо же нанимают отдельного фронтендера. А есть большие проекты, но не с супер сложным бэккендом и фронтендом. Для таких проектов очень выгодно брать full stack разработчиков, которые немного (на достаточном уровне) разбираются в бэке, и немного разбираются во фронте.

 

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

 

6 мифов по Full Stack разработке

 

  • Миф 1. Full stack разработчиком нужно становиться начиная с фронтенда

 

Начинать можно откуда угодно — хоть с бэка, хоть с фронта. Никакой разницы нет. Вы просто доучиваете ещё какой-то кусок знаний, а в каком порядке вы будете учить — не имеет значения. Я знаю фулстекеров, которые начинали с фронтенда, и знаю тех, кто начинал с бэкенда. А вот чего я никогда не видел, так это фулстек-разработчика, у которого и тот и другой навык одинаково хорошо прокачен. Обычно это либо бэкендер, который плюс-минус знает фронт, либо наоборот фронтэнд-разработчик, который что-то может сделать на бэке.

 

  • Миф 2. Full stack разработчику нужны только технические знания

 

Это, конечно, ерунда. Фулстек-разработчик — это такой же разработчик, как и любой другой, а значит помимо технических знаний должны быть и хорошие софт скиллы.  

Надо понимать, что full stack разработчик — это специалист, который что-то знает с фронта и что-то знает с бэка.  На фронте есть три основных фреймворка: Angular, React, Vue. Достаточно знать один, учить три не имеет смысла. На бэке может быть любой язык программирования. Т.е. full stake разработчиком будет считаться специалист, который знает, например, React (фронт) + Phyton (бэк). Или Angular+С#. Или Vue+Ruby. И так далее. У вас может быть любая комбинация знаний из фронтенда и бэкенда и все это будет фулстек-разработкой. Т.е. вариаций огромное множество, поэтому для меня очень странно видеть курсы Full stack-разработки.

 

Так вот, помимо этих технических знаний, фулстек-разработчик должен знать и уметь работать с базами данных и вёрсткой. Ну и как любым другим разработчикам, фулстекерам нужны soft skills. 

 

  • Миф 3. Full stack разработчик может писать код на любом языке

 

Обычно этот миф как раз-таки распространяют продавцы курсов фулстек-разработки. Разработчик, который хвастается, что умеет писать код на любом языке — это обычно разработчик, который не может писать нормальный код вообще. По факту, любой разработчик может написать код на любом языке, но хорошо то он будет знать один, на котором, собственно, и специализируется. Девелопер (не важно на каком языке) довольно быстро осваивает любой другой язык, так как синтаксис +/- понятный.

 

  • Миф 4. Full stack девелопер должен быть экспертом

 

На самом деле нет. Я видел и джунов full stack, просто потому что у них были такие требования проекта. Нет никакой очень серьезной проблемы чтобы помимо своего языка доучить кусочек той технологии, которую требует проект. Конечно же, по мере того как вы будете становиться более экспертным, вы будете знать больше и в своих технологиях, и в том, как вообще ведется разработка.

 

  • Миф 5. Все разработчики Full-Stack одинаковы

 

Это очередной камень в огород тех курсов, которые обучают фулстек-разработке. Я уже говорил, что вариаций Full Stack очень много, поскольку сочетаний фреймворков на фронте и языков на бэке огромное множество.

 

  • Миф 6. Только изучение JavaScript может сделать вас полноценным 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-разработчиком

 

Если ваша задача стать разработчиком и попасть в ИТ, то я бы не советовал сосредотачиваться на том, чтобы быть именно фулстек-девелопером. Для того чтобы стать хорошим full stack разработчиком вам нужно пройти два курса — по бэкенду и по фронтенду. Если мы, конечно, не говорим про продажу воздуха. Когда на каких-то курсах вам говорят, что пройдя всего-лишь один курс вы станете фулстек-разработчиком, потому что вы там выучите все что нужно, скорее всего вы там не выучите ни фронта, ни бэка.

Если вы хотите хорошо выучиться и иметь реальные знания для дальнейшей работы, выберите или бэкенд, или фронтенд. А дальше, в процессе поиска работы буквально чуть-чуть, недельку потратьте на изучение какого-нибудь простенького фреймворка с фронта. Если вы фронтандер, то поучите что-нибудь простое с бэка, например PHP. Node.js, кстати, совсем не простой. Т.е. достаточно просто иметь общее представление и уметь немного пользоваться смежной технологией. Это существенно повысит ваши шансы найти первую работу. Да, все будут понимать, что вы не фулстек-девелопер, но небольшие знания о том, что у вас находится на бэйке (если вы фронтендер) или то, что находится у вас на фронте (если вы бэкендер) будет большим плюсом на работе. Возможно, вы постепенно перейдете в фулстек. Это очень хороший и рабочий вариант.

Проходить два курса, например, сначала по бэкенду по Java, а это 6+ месяцев, а потом по фронтенду, например, Angular, еще 6+ месяцев — ну такой себе вариант. Пока вы будете учить одну часть фулстека, вы уже забудете другую.

 

Если вы учитесь самостоятельно, не через курсы, то я вам сочувствую. Это действительно тяжело, потому что довольно сложно понять, что нужно выучить. Но если вы любите учиться самостоятельно и у вас все получается, то рекомендация та же самая — когда вы уже начали подавать резюме, поучите немного смежную технологию.

 

Что делать дальше

 

Естественно, для того чтобы искать работу нужно создать хоршее резюме, в котором вы указываете проекты, над которыми работали. Каждый ваш навык должен быть подтвержден каким-то проектом, иначе ваше резюме просто полетит в корзину. Как искать работу я повторяться не буду, уже довольно много раз говорил на эту тему. 

 

Но, повторюсь, мне кажется, что фулстек-девелопер — это не то, на что нужно целиться начинающим программистам.

 

Всегда ваш Сергей Немчинский