Кто такой fullstack-разработчик и сколько он зарабатывает

Почему JavaScript

Причин может быть много, вот мой топ лист:

  • Простота: В основном, библиотеки в Node имеют простые API с которыми легко разобраться и которые работают интуитивно понятным образом. Если не получилось с одной библиотекой, как правило, несложно найти хорошую альтернативу.

  • Контроль: Программист сам строит инфраструктуру проекта, выбирая и объединяя небольшие модули для конкретных задач. Это требует больше времени, но результат стоит того. Разобравшись один раз, полученный опыт легко применять в дальнейшем.

  • Универсальность: JavaScript изначально работал только на клиенте. Вначале вместе с Node он перебрался на сервер, а совсем недавно на нем стало можно успешно писать десктопные (Eletctron) и мобильные приложения. Причем, для мобильных приложений есть опция гибридных приложений (используется обертка над браузером (Cordova)) или приложений с нативным интерфейсом (ReactNative, NativeScript). Для Node существует огромное множество библиотек и его легко интегрировать с другими технологиями, базы данных, облачные технологии, различные форматы и протоколы, найдется все.

  • Легкое развертывание: Node очень легко разворачивать на сервере: как на Linux, так и на Windows. После многих лет работы с .NET, деплоймент каждый раз был для меня неприятным испытанием, на Node этот процесс даже приносит удовольствие. Это просто надо попробовать.

  • Производительность: Node асинхронен и не блокирует процесс выполнения во время длительных операций, таких как вычитка файла или обращение к базе данных. Это позволяет достичь высокого уровня производительности при использовании единственного потока (single threaded environment). C другой стороны, вычисления в JavaScript медленнее чем в статически типизированных языках. Для большинства проектов это не проблема. Если нужны вычисления, а не просто преобразования данных, то лучше написать отдельный сервис на чем-то другом.

  • Один язык на сервере и клиенте: Это удобно, так как позволяет, без усилий переносить код между клиентом и сервером, легче в разработке и поддержке.

  • Язык JavaScript: JavaScript очень гибок и прост в использовании, многие недостатки языка исправлены в последней версии ES6, типизацию опционально можно добавить, используя TypeScript.

И это далеко не полный список.

Краткое описание

JavaScript – распространенный мультипарадигмальный (синтетический, сочетающий изобразительные возможности разных, как правило, неродственных языков) язык программирования, отличающийся развитой инфраструктурой. JavaScript используется преимущественно во frontend-разработке – в создании пользовательских интерфейсов и клиентских частей приложений, веб-сервисов.

Fullstack-разработчик на JavaScript (Fullstack Developer, fullstack-девелопер) может самостоятельно создавать сразу обе стороны продукта – клиентскую и серверную, которыми часто раздельно друг от друга занимаются два разных специалиста – frontend- и backend-разработчики. Фактически профессия существовала уже в начале 2000-х и даже раньше. В те годы из-за простоты технологий и программного обеспечения процессы, которыми сейчас раздельно занимаются фронтенд- и бэкенд-девелоперы, были в руках одного разработчика. С усложнением ИТ и повышением требований к ПО специальность разделилась на две отдельные ветви (front и back), но появление новых языков и технологий снова возродило ее уже под другим названием – fullstack-разработчик (специалист, девелопер). 

Fullstack-разработчик на JavaScript выполняет проектирование и техническую поддержку проекта, консультирует других участников создания продукта. Специалист уровня Senior или Team lead часто может общаться с заказчиком, но это связано с получением обратной связи по функциональности продукта, а не, например, по финансированию проекта.

Сколько получает fullstack-разработчик?

Зарплата зависит от компании и навыков программиста. В среднем начинающие разработчики в Москве получают от 60 тыс. руб. в месяц, продвинутые профессионалы — до 300 тыс. руб. в месяц. На сайте hh.ru можно найти вакансии с зарплатой более 400 тыс. руб. в месяц.

Плюсы профессии

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

Минусы профессии

  • Трудно углубиться в одну сферу: загрузка большая и, если начать глубоко копать один аспект, качество продукта может снизиться.
  • В компании может возникнуть иллюзия, что fullstack-разработчик может все. Тогда коллеги начнут передавать ему задачи, которыми должны заниматься другие специалисты.

Какие еще онлайн-курсы программирования вам будут интересны

Онлайн-курс «Full Stack-разработчик с нуля» в GoIT помогает уверенно войти в IT-сферу и получить реальный опыт веб-разработки в команде. Студенты курса программирования онлайн получают базовый IT английский, карьерные навыки, пять готовых реальных проектов, помощь в трудоустройстве, 10 месяцев по 3400 грн/мес. Есть онлайн и оффлайн обучение в Киеве. Курс подойдет даже тем, кто работал абсолютно в другой сфере и никогда не программировал. Среди студентов школы много людей старше 35 лет.

Онлайн-курс веб-программирования от Hedu. После 4 месяцев обучения и 15 уроков сможете самостоятельно создавать сайты, работать удаленно, сможете сменить нелюбимую работу и повысить уровень своего дохода. Стоимость курса — от 15 000 руб. Есть возможность индивидуального и корпоративного обучения.

. На этом курсе обучение программированию организовано как онлайн, так и офлайн. Программа состоит из 5 модулей и длится 8 месяцев. В процессе обучения изучите HTML, CSS, Javascript, Java Core, Java Enterprice. Стоимость обучения — 4500 грн в месяц. При покупке сразу 5 модулей можно получить скидку. Гарантий трудоустройства прописана в договоре.

Курс «Веб разработка — с нуля до профессионала. Full Stack» от Udemy состоит из 13 разделов и длится 33 часа. Студенты осваивают обе стороны web-разработки (frontend и backend), учатся создавать веб-страницы, стилизовать сайты при помощи CSS, использовать для написания кода JavaScript, пользоваться инструментами веб-разработки, работать с серверной частью и базами данных. Стоимость курса — 140 долларов.

Free Code Camp — онлайн-курс по программированию для тех, кто хочет сменить свою работу, но очень боится. Студенты изучают JavaScript и структуры данных, API и микросервисы, программирование на Python, визуализацию данных, библиотеки фронтенд-разработки, адаптацию веб-дизайна и др. Курс бесплатный, но на английском языке. А также на платформе находится более 6000 пособий, обучающих видео и презентаций.

Codecademy — пошаговое руководство программирования. Студенты курса учатся создавать веб-сайты и работать с базами данных, без особых усилий писать код и получают мгновенную обратную связь. Полученные в процессе обучения знания сразу отрабатываются на практике. Курс на английском языке. Длительность обучения — 12 месяцев. Стоимость — 19,99 долларов в месяц, при оплате за весь год можно сэкономить 48 долларов. Чтобы попробовать курсы программирования онлайн, можно воспользоваться PRO-версией.

Основы программирования на Python можно также изучать вместе с Coursera. Студенты смогут решить много задач по программированию и закрепить на практике изучаемый материал. Научатся обрабатывать и хранить числа, тексты и их наборы, освоят стандартную библиотеку языка Python и смогут автоматизировать задачи по сбору и обработке данных. Кроме этого, познакомятся с основами различных парадигм программирования. Для начала обучения не нужно уметь программировать, достаточно знать математику на уровне средней школы. Обучение бесплатное и ориентировано на 9 недель.

Краткое описание

Fullstack-разработчик на PHP – востребованный и крупными, и небольшими компаниями специалист, который может работать над проектом без посторонней помощи. Он в одиночку создает и серверную часть, и пользовательские интерфейсы, благодаря чему работодатель может сэкономить и отказаться от привлечения большого количества разработчиков. Его основной профиль – создание продуктов на языке PHP, который отличается средним порогом вхождения, безопасностью, динамичностью и нестрогой типизацией. Сегодня этот язык программирования используют более 60 % специалистов, которые создают сайты, приложения для электронной коммерции, CMS, ERP и CRM, другие продукты.

Кто такой fullstack-разработчик на PHP и для чего ему нужен этот язык, поясняет Руслан Баширов.

В первую очередь необходимо понимать, что PHP – это серверный язык. Большинство сайтов, мобильных приложений или программ на ПК, упрощенно говоря, состоят из двух частей – клиентской (запускается у пользователя на устройстве) и серверной (работает постоянно на сервере). Серверная часть получает запросы от множества клиентских частей, обрабатывает их и отправляет обратно информацию на устройство пользователя.

К примеру, на сайте или в мобильном приложении вы нажимаете кнопку – «Корзина». В это время сайт (клиентская часть) отправляет запрос на серверную часть, которая в свою очередь обрабатывает информацию и отправляет вам назад информацию о том, что содержится в «Корзине». В результате вы видите на экране товары, которые когда-то переместили в корзину. Серверную часть – программу – можно писать на языке PHP.

Fullstack-разработчик на PHP – это программист, который отлично знает PHP и несколько других языков программирования и фреймворков. Этих нескольких инструментов достаточно для написания полноценного программного продукта, состоящего из клиентской и серверной части.

Stack (в переводе с английского «куча») в данном случае означает набор программ, которыми должен владеть fullstack-разработчик. Он может включать в себя, например, такие программы:

  • HTML, CSS, JavaScript (клиентская часть);
  • PHP (серверная часть);
  • MySQL (база данных).

Fullstack-разработчика на PHP можно сравнить с шеф-поваром в ресторане, который может приготовить сложное блюдо от начала до конца, выполнив все сам.

Разновидности fullstack-разработчиков

Фулстек-программисты делятся на категории в соответствии с тем языком программирования или платформой, с которой работают. Например, есть PHP-fullstack-developer или Java-fullstack-developer и так далее.

Фронтенд-часть у них во многом схожа. Они работают с:

  • HTML и CSS;
  • языком программирования JavaScript;
  • библиотекой jQuery;
  • метаязыком SASS;
  • языком стилей LESS;
  • фреймворками;
  • DOM, AJAX, JSON.

Различия видов fullstack-разработчиков видны на уровне бэкенд-программирования.

Node.js-fullstack-разработчик. Использует в работе:

  • язык программирования JavaScript;
  • программную платформу Node.js;
  • фреймворки, подходящие Node.js, например, Express.js;
  • пакетные менеджеры для JavaScript;
  • Web Sockets и REST API.

Java-фулстек-developer. Работает на основе следующих технологий:

  • язык JavaScript;
  • спецификация API Java EE;
  • фреймворк Spring;
  • HTTP-сервер Apache;
  • облачные сервисы Google Cloud или Azure;
  • сервлеты, JSP и микросервисы.

ASP.NET-фулстек-программист. Эти разработчики используют в качестве инструментария:

  • язык программирования C#;
  • инфраструктуру .NET;
  • платформу ASP.NET MVC / ASP.NET Core;
  • облачный сервис Azure;
  • язык T-SQL;
  • RESTful API.

PHP-fullstack-developer. PHP-разработчику достаточно владеть:

  • языком программирования PHP;
  • фреймворками Yii2/Symfony/Laravel.

Python-фулстек-разработчик. Программист работает с:

  • языком программирования Python;
  • фреймворком Django/Flask;
  • REST API;
  • ОС Linux и веб-сервером Nginx;
  • облачными сервисами.

Есть же категории fullstack-разработчиков, которые не связаны с языками программирования. Например, фулстек-дизайнер.

Все разновидности – это “упрощенные версии” фулстек-разработчиков. Опытный специалист понимает и владеет минимум двумя языками программирования, и может проектировать и реализовывать веб-ресурс на основе этих серверных языков.

Testimonials about the academy

Yurii Lebid

Passed the full program from Ucode. Having passed the IoT branch, I got enough knowledge and experience for me to be interested in employers (GlobalLogic). During my studies I met a lot of cool guys, iron enthusiasts. Learned how to solve complicated tasks on my own, and how to solve a problem in a team. Very grateful to Ucode staff

MoreLess

Sasha Stanyslavsky

ucode is one of the best places I’ve ever been. I entered the very first intake and at the moment I am already doing an internship in one of the companies. Here, in addition to knowledge, I have met a lot of good, smart, and interesting people and made new friends. And if you are lucky you can meet business partners) It’s exactly the place where you wake up in the morning and go with pleasure. And of course, for the sake of what actually all go here – knowledge. Yes, I’m not going to lie, it all depends on you. If you want to learn – you’ll learn, there are all conditions for that. But no one will run after you and make you do the same. Total freedom, effective peer-to-peer training is about ucode. As I said at the moment I already have an internship with one of the companies, you can find my complete training history on the ucode website.

MoreLess

Yaroslav Stepanenko

Enrolled in August 2019 in the C Track program and then in the direction of web development. Chose this place because of the unique training system. Currently working as a front-end developer. The place is very cool and comfortable)) The community is very friendly and helpful. Most of all I liked the method of training. At that time I was studying at the university and it was unusual for me, but it turned out to be very effective). I met and made friends with a lot of good people here)). The place is very inspiring.

MoreLess

Tatyana Rogalskaya

Ucode is a fairly good program, which by its methods is close to the real conditions at work. The training is based on Challenge Based Learning. The intensity is very high, if you try hard and spend your nerves and health, you can squeeze 2-3-4 years program of regular courses or universities into one year here, but you have to work really hard . Gives in-depth knowledge of programming from the very basics. Programs were developed by partner companies in today’s IT market. I’ve been studying the program for a year and have a very positive impression) not the least plus that ucode is also a community, here you get free gym, mafia on Thu and Fri, table tennis and volleyball tournaments, consoles, free seminars and meetings, constant entertaining events, English courses and much more) join in, it will be fun

MoreLess

Как стать full stack разработчиком? Что нужно знать и уметь?

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

  • HTML и CSS.
  • Java Script. Данный язык программирования позволяет создавать различные сценарии, которые выполняются на страницах. Например, создать форму обратной связи.
  • PHP – один из самых популярных языков, на котором пишут сайты.
  • Базы данных, в частности, MySQL.
  • Адаптивную верстку. Данная технология позволяет создавать сайты, дизайн которых подстраивается под размер окна браузера на различных устройствах.
  • Кроссбраузерную верстку. Этот навык важен, чтобы создавать страницы, которые одинаково хорошо выглядят в разных браузерах.
  • Уметь работать с системами контроля версий, в частности, Git.
  • Знать, как работает сервер и хостинг. Уметь настраивать сервер.
  • Изучить популярные CMS и фреймворки.

Далее можно продолжить список и сделать его гигантским, но мы не будем это делать. Освоив минимум, остальное вы сможете изучить в процессе работы. Изучать новое придется постоянно. Если вам надоест быть универсальным солдатом, всегда можно выбрать специализацию и развиваться в ней.

Кто такой fullstack-разработчик и чем он занимается?

Чтобы понять, чем занимается fullstack разработчик, необходимо разобраться, как работают современные веб-сервисы. Они состоят из двух частей:

  • Frontend – все, что видит пользователь на своем экране. Дизайн сайта, кнопки, формы, личный кабинет на сайте и т.д. Версткой и программированием этих элементов занимаются frontend-программисты.
  • Backend – все, что связано с сервером, хранением данных на нем и вычислениями на сервере. Например, когда вы задаете поисковый запрос в Яндекс, результаты поиска формирует сервер. Это – задачи backend-разработчиков.

Во frontend и backend имеются свои технологии и языки программирования, которыми нужно владеть. Если программист разбирается в обоих направлениях и может выполнять задачи по frontend и backend – он называется fullstack разработчиком.

Поэтому fullstack программист – это некий универсальный специалист, который может и сверстать дизайн сайта, и настроить работу форм и кнопок, и написать серверную часть, а заодно настроить и сам сервер. Он может в одиночку создать веб-сервис и заменить 3-4 узких специалистов.

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

Освоить необходимые технологии для работы fullstack разработчиком можно на курсе «Веб-разработчик с нуля» в онлайн-университете Нетология. Занятия проводятся онлайн, поэтому учиться можно из любого города. Помимо теории, выполняются практические задания, что позволяет получить опыт реальной работы для дальнейшего поиска работы. Также Нетология способствует трудоустройству студентов в крупные ИТ-компании.

Где учиться fullstack-разработке на Python?

Вот несколько книг, которые помогут вам погрузиться в разработку и понять, подходит ли вам эта сфера и в каком именно направлении вы хотите развиваться.

Картер и Уоррен Сэнд. «Hello World! Занимательное программирование (Python)»

Да, это книжка для детей — ее написали программист и его сын. Она подойдет для тех, у кого нет технического образования и нужны объяснения на пальцах – просто для понимания, как все устроено в мире разработки. 

Книга не напугает вас кирпичной версткой, мелким шрифтом и кучами формул. Учебник хорош для тех, кому нужно лишнее подтверждение: программирование – это навык, который легко освоить при желании и достаточном уровне упорства.

Майкл Доусон. «Программируем на Python»

Хорошая базовая книга для начинающих, знакомит с принципами программирования на примере Python. Ее автор – не только опытный практик, но и преподаватель, поэтому знает, как донести информацию. В книге описаны все необходимые навыки, много примеров программного кода и практических заданий. 

Марк Лутц. «Изучаем Python» и «Программирование на Python»

Книга основана на учебном курсе, подойдет для новичков, которые уже что-то понимают в программировании. Ее автор – один из первопроходцев в сообществе Python, начал работать с языком в 1992-м году. Два тома для погружения с головой: подробная теория со всеми инструментами, типами объектов, контрольными вопросами, упражнениями и иллюстрациями. Здесь есть не только базовый синтаксис, но и сложные инструменты Python: декораторы, дескрипторы, метаклассы. 

Обучение профессии Python-разработчика с нуля

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

У Skillfactory есть такой: это курс «Python для веб-разработки». За 9 месяцев при поддержке опытных профессионалов вы разберете все нужные языки и фреймворки, освоите 30 инструментов и решите несколько стандартных кейсов, которые будет не стыдно положить в портфолио. За время курса вы напишете собственный веб-сервис с интерактивными элементами, веб-игру и сайт-визитку, сами развернете сервер, научитесь разбираться в чужом коде и составлять документацию к своему. 

А если планируете стать независимым разработчиком, в курсе предусмотрен бонусный блок о фрилансе: как общаться с заказчиками и работать с удаленной командой, где искать самые дорогие заказы – вы узнаете все, что нужно, и сможете сразу после завершения обучения (а иногда и в процессе) пойти работать по специальности.

Приятный бонус — оплачивать обучение можно в рассрочку, а заниматься — онлайн из любой точки мира. До 21 февраля скидки до 30% на все курсы. Жмите на кнопку, чтобы узнать подробнее и записаться:

Узнать подробнее о курсе

2014: «Full-stack developers» (Mike Loukides)

Наконец, наткнулся в процессе гугления на популярный текст 2014 года в блоге на сайте издательства O’Reilly. Здесь уже не просто отдельное мнение, а попытка осмыслить различные предыдущие выступления по теме и добавить к ним что-то своё.

Одно из добавлений: вот здесь говорится, что JavaScript к 2014-му страшно разросся и усложнился, так что от фуллстек-разработчиков теперь требуется и понимание всяких ангуляров.

А ещё Майк предлагает к списку «знаний фуллстека» предлагает добавить CVS (ну, сегодня бы уже даже не стал упоминать, наверное), облака, распределённые вычисления… Как он сам признаёт, результат в таком случае получается не вертикальным «стеком», где всё опирается друг на друга, а разветвлённым «деревом», где много вещей «в сторону».

И ещё он признаёт, что если добавить это всё к списку от Лоренса, получается совсем уж длиннющий перечень. Поэтому не требует магического абсолютного мастерства во всём сразу. А вместо этого впрямую произносит слово «T-shaped», призывая специализироваться на чём-то, но в то же время и заглядывать в другие сферы: «я не требую от разработчиков разбираться в сетевых вопросах на уровне сетевиков, но уметь обсуждать эти вопросы надо».

Из забавного: в тексте есть фраза «I sincerely hope that “full stack” doesn’t appear in job titles anywhere». Майк, пишем тебе из будущего, не хочется расстраивать, но тут такое дело…

Кто такой fullstack-разработчик

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

Фулстек-специалист нужен компаниям, когда заказчик хочет минимизировать недопонимания и сэкономить время или деньги.

Также из соображений экономии клиент может внести в должностные обязанности не только все этапы разработки и реализации веб-сервиса, но и все остальное: продакт-менеджмент, настройку операционной системы на серверах и даже починку принтера. Так один разработчик способен заменить 3-4 программистов.

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

UX/UI-дизайнер

Эти аббревиатуры расшифровываются как User eXperience — пользовательский опыт, и User Interface — пользовательский интерфейс. Такой специалист проектирует действия и функции в интерфейсе, а также формирует новый опыт пользователя, исходя из его потребностей. Дизайнер визуализирует этот опыт с помощью графических и аудиоинструментов для создания интерфейсов, а также многих других. 

UX/UI-дизайнер умеет не только создавать, но и внедрять свои идеи, передавать в вёрстку, контролировать реализацию на этапе авторского надзора, а также следить за реакцией пользователя при помощи метрик. Научиться всему и начать работать в этой области поможет факультет UX/UI-дизайна от GeekBrains.

Понятие UX ввёл Дональд Норман в 1993 году, когда работал в Apple. «Я придумал термин, потому что понятия „человеческий интерфейс“ и „юзабилити“ были слишком узкими. Я хотел покрыть все аспекты персонального опыта с системой, включающей индустриальный дизайн, графику, интерфейс, физическое взаимодействие и руководство пользователя. С тех пор этот термин широко распространился, так что и он начал терять своё значение», — отметил Норман в 2007 году в интервью Adaptive Path.

Со временем в UX/UI-дизайне появились «подпрофессии»: веб-дизайнер и дизайнер продукта.

Веб-дизайнер работает с сайтами, чаще в проектной студии. Его задача — спроектировать интерфейс, который мотивирует пользователя выполнить целевое действие: купить что-либо, изучить новую область или просто прочесть новость. В работе дизайнер опирается на потребности аудитории. Он использует паттерны взаимодействия в интернете, знает особенности вёрстки и умеет работать с аналитикой. 

Такие дизайнеры часто манифестируют со страниц своих творений, внедряют новые стили и экспериментируют с типографикой и образами — для них очень важно донести верный эмоциональный контекст. Их работы выставляются на CSS Design Awards и Awwwards, их трудами пользуется весь мир

Изучить и узнать тонкости профессии можно на факультете веб-дизайна.

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

Такой дизайнер — камертон и та нить, что связывает бизнес с реальностью и потребностями пользователей. Поэтому он должен знать термины юнит-экономики, уметь говорить на языке бизнеса, строить CJM, Service Blueprint и мастерски презентовать свои идеи.

Преимущества и недостатки

Прежде всего, Fullstack-разработчики способны быстро приступить к работе и за сравнительно короткие сроки сформировать прототип продукта. В сравнении с front-end и back-end специалистами, у них более обширные познания, благодаря чему они постоянно имеют свое мнение по вопросам текущего проекта – им не нужно обращаться за помощью к коллегам из других областей web-разработок. И напротив, если в команде есть фуллстек, он способен взаимодействовать со всеми участниками проекта, сокращая тем самым время работы и технические затраты на каналы связи.

Помимо преимуществ, здесь имеются и недостатки. В частности, такие практически никогда не бывают специалистами в чем-то одном, в отличие от своих коллег, которые имеют узкоспециализированные знания и навыки. Конечно, они могут углубиться в подробное изучение предмета, но это, как правило, не принесет им никакой пользы, поскольку знания только в одной сфере для них практически бесполезны. Также здесь нет четко обозначенной зоны ответственности. Именно поэтому при возникновении каких-либо проблем необходимость их устранения ложится на плечи Fullstack-разработчика, даже если ее допустил другой специалист. Как следствие, этим фактом часто злоупотребляют.

Чем он занимается

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

В задачи fullstack-специалиста может входить:

  1. Планирование, управление и реализация проекта на определенном языке программирования.
  2. Переговоры с клиентами.
  3. Тестирование готовой интернет-платформы и отладка багов.
  4. Контроль качества сайта или приложения.
  5. Техническая поддержка всех специалистов, работающих над веб-сервисом.
  6. Работа с базами данных, файловыми системами, облачными хранилищами и сетевыми ресурсами.
  7. Создание визуального дизайна.

Должность фулстек-программиста во многом схожа с профессией проект-менеджера. О ней вы можете прочитать в отдельной статье на блоге.

Связь с frontend и backend-разработчиками

Frontend-разработка – это создание того, что пользователь видит на веб-ресурсе. Визуальная часть создается при помощи HTML, CSS и JavaScript.

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

Fullstack-разработчик же трудится над задачами и первого, и второго специалистов. Он работает как с внешней, так и с внутренней сторонами веб-разработки.

10–15 лет назад не было разделения на бэкенд и фронтенд-части. И разработчики по умолчанию числились как фулстек-программисты. Да и определения этой деятельности не было, как и самого слова “fullstack-разработчик”.

2010: «The Full Stack, Part I» (Carlos Bueno)

Следующие два года слова «full stack» не получали большого распространения, но затем Карлос Буэно из Фейсбука написал текст с таким заголовком, ссылающийся на Рэнди Шмидта. Поскольку у инженерного блога Facebook аудитория заметно больше, чем у небольшого личного блога, похоже, что вот отсюда понятие начало расходиться шире. Но Карлос не просто пересказал малоизвестную чужую идею, а дал своё определение:

Вот такое звучит применимо и сегодня: «человек, который может создать приложение в одиночку». Про дизайн тут ни слова не сказано. И ещё тут нет слова «web», которое было в оригинале — получается, что можно и где-нибудь в геймдеве быть фуллстеком.

Вместо дизайнерских умений Карлосу важно вот что: «люди с широким набором умений обычно вырабатывают хорошую ментальную модель того, как действуют разные слои системы. Это особенно ценно для работы над производительностью»

Он сравнивает это с химией и физикой, которые действуют на разных уровнях реальности: понимание нижнего уровня помогает человеку лучше ухватывать происходящее на верхнем. То есть, если исходный пост был только про «широту охвата» («и дизайнер, и кодер, и на дуде игрец»), то вот тут впервые зашла речь о том, что важна глубина.

Задачи и обязанности

Круг обязанностей Full Stack разработчиков не отличается от обычных задач программистов других направлений: разработка новых модулей системы, ревью кода, исправление багов, митинги с командой и так далее.

В зависимости от компании, на проекте бывает разное соотношение задач по Back-end и Front-end. Требования к знаниям обоих направлений тоже могут отличаться. Например, Back-end — на уровне Senior, Front-end — на уровне Middle.

«Хороший Full Stack разработчик имеет разноплановый опыт, который покрывает весь цикл разработки решения. Он часто может и сервер настроить, и API реализовать, и интерфейс „дружественный“ сделать. И не по последним best practices, но в целом качественно» (Владимир Сподарик, Senior Full Stack Developer).

И что в итоге?

  • Сегодняшние обсуждения full stack страшно отдалились от того, что вкладывал в это словосочетание его автор. Наверное, он офигевает, глядя на то, во что всё превратилось 🙂
  • Это понятие с самого начала было довольно размытым: с первых же постов разные люди вкладывали в него разное. Четыре приведённых текста — это четыре ощутимо различающихся позиции.

Так что нет и никогда не было какого-то одного «правильного» понимания. Это значит, что если у вас есть определённое видение, вы имеете на него полное право. Но это также значит, что у вашего собеседника может быть другое видение, на которое он имеет такое же право. Так что перед тем, как спорить «нужно ли становиться фуллстеком», стоит проверить, не говорите ли вы о разных вещах.

А ещё я увидел в этих определениях идею, которую считаю очень интересной. Но надо сделать оговорку: у меня профдеформация, и я тут лицо заинтересованное.

Смотрите: мы привыкли воспринимать «фуллстек» как «фронт+бэк», но сразу два из четырёх описаний совершенно не требуют быть сениором в обеих сферах, а вместо этого идут в сторону «T-shaped». Они предлагают не отказываться от специализации и быть гением-многостаночником, а изучать разное вокруг своего основного.

И это откликается во мне по следующей причине: я работаю в JUG Ru Group, мы делаем конференции для разных IT-специалистов, и среди их зрителей встречаю как раз таких людей. Типичный случай — Java-разработчик посещает конференции не только по Java, но и по тестированию или DevOps. А ещё может посмотреть видеозапись доклада про GraphQL с JS-конференции или про архитектуру с .NET-мероприятия.

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

Стоит ли называть это «full stack»? Спорный вопрос. Но для меня как раз это звучит как «фуллстек здорового человека». Потому что про совмещение фронта с бэком часто пишут «здесь боль и страдание», а вот про вылазки на смежные территории такого негатива никогда не слышал — только хорошее.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector