Баннер мобильный (1) Пройти тест

Что выбрать: frontend, backend или fullstack?

Разбираемся, в чем отличия между типами разработки

Разбор

1 марта 2024

Поделиться

Скопировано
Что выбрать: frontend, backend или fullstack?

Содержание

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

    Frontend-разработчик отвечает за дизайн сайта, верстку и анимирование. То, что происходит «‎под капотом»‎ — внутренняя логика сайта, взаимодействие с сервером и базами данных, — ответственность backend-разработчика. Fullstack-разработчик должен уметь и то и другое.

    Пройдите опрос в конце статьи и поделитесь своим мнением, с какой профессии начать: frontend, backend или fullstack.

    Frontend-разработчик

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

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

    Технический стек

    Чтобы быть успешным frontend-разработчиком, нужно освоить HTML, CSS и JavaScript. На HTML пишут «скелет» страницы, на CSS настраивают цвета, шрифты и ее внутреннее наполнение. После освоения статичных веб-страниц разработчик учится языку JavaScript, который позволяют добавить на сайт динамичные элементы: слайдеры, калькуляторы, анимации.

    Рабочий день

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

    Карьерный рост

    Начальный уровень в разработке — стажеры (trainee). Это начинающие специалисты, которые закончили курсы и получили базовые знания. Их зарплаты, как правило, не поднимаются выше 30 000 рублей.

    Следующий уровень — джуниор-разработчики, они обладают небольшим опытом работы с проектами и часто советуются с более опытными коллегами. Зарплата джуниор-разработчика в Москве начинается с 60 000 рублей.

    Мидл frontend-разработчик — это опытный человек, способный самостоятельно и качественно решить большинство задач. Его зарплата обычно начинается от 100 000 рублей.

    Синьор frontend-разработчик обладает большим опытом, самостоятельно принимает решения о разработке, имеет свое видение архитектуры проекта и может его обосновать. Помимо этого, он решает менеджерские задачи, участвует в совещаниях с другими отделами.

    Личные качества

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

    Я работаю frontend-разработчиком в сфере рекламы и маркетинга. Больше всего в работе мне нравится, что можно видеть результат сразу же после написания кода. HTML, CSS и JavaScript позволяют визуализировать свои или дизайнерские идеи, сделать интерфейс приложения удобным и понятным для пользователя

    Алексей Видякин, frontend-разработчик

    Backend-разработчик

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

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

    Технический стек

    Backend-части часто пишут на PHP, JavaScript и Go; для больших приложений, например банковских, используется Java. У каждого языка, как и любого инструмента, своя область применения. Backend-разработчики активно используют фреймворки — каркасы приложений, в которых фундаментальный функционал уже оптимизирован, это позволяет сосредоточиться на более конкретных задачах.

    Рабочий день

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

    Карьерный рост

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

    Дальнейший рост может быть разным, как ветки прокачки в компьютерных играх: если вы прокачиваете технические навыки (hard skills), можно вырасти до уровня архитектора. Если вы чувствуете тягу к построению процессов, можно освоить методологии управления Scrum или Agile и обучать команды. Если есть уклон в классический менеджмент, можно вырасти до тимлидов и CTO (Chief Technical Officer, технический директор): в этой области нужно уметь организовывать и строить процессы, а также не бояться общаться с заказчиками.

    Личные качества

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

    Fullstack-разработчик

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

    Fullstack-разработчик – это универсальный солдат. Он сам создает веб-приложения, начиная от проектирования структуры, заканчивая его размещением на сервере. Обычно он не разрабатывает крупные проекты: для этого необходима плотная работа frontend- и backend-команд. Часто он занимается небольшими проектами для крупных компаний или фрилансом, что дает свои плюсы: он не зависит ни от кого, кроме заказчика. А если возникнет необходимость, всегда можно переквалифицироваться в backend- или frontend-разработчика.

    В fullstack-разработку часто приходят люди, создающие собственные стартапы. Например, WhatsApp* был основан двумя разработчиками, Яном Кумом и Брайаном Эктоном. Для создания MVP (minimum viable product, минимально жизнеспособный продукт) им пришлось освоить fullstack-разработку. Поэтому часто это не чистое программирование со строгой методологией, а творчество, позволяющее специалисту реализовывать свои идеи.

    Технический стек

    Что должен знать fullstack-разработчик:

    • Один или несколько языков программирования. Обычно это JavaScript для frontend-разработки, Python, JavaScript или PHP для backend-разработки, а также языки верстки (HTML, CSS) и основы SQL.
    • Фреймворки, так как это ускоряет разработку, а для fullstack-разработчика скорость критически важна: чаще всего они работают с малым бизнесом, у которого ограничены ресурсы на разработку. Из frontend-фреймворков обычно используют Angular или VueJS, а также библиотеку React, из backend-фреймворков — Django, Flask или Sanic для Python, Express или Fastify для JavaScript, Laravel для PHP. Для новичков стоит начать погружение в реактивную разработку с VueJS, потому что этот фреймворк очень удобен для разработки и достаточно быстрый. В качестве backend-языка лучше начинать с Python и его фреймворка Flask: он не самый мощный, однако есть возможность интеграции SQLAlchemy в качестве ORM-обертки для баз данных. ORM обеспечивают функционал, позволяющий взаимодействовать с базой данных как с частью программного кода.
    • Язык разметки CSS и его фреймворки: Bootstrap, Tailwind или Vuetify.
    • Иметь представление о проектировании баз данных, причем как в SQL (обычно PostgreSQL или MySQL), так и в NoSQL (например MongoDB). Обычно работа с базами данных ведется через ORM (например SQLAlchemy).
    • Иметь представление об основах системного администрирования и о том, как работать с Git — распределенной системой контроля версий. Также необходимо знание систем контейнеризации (Docker), которые позволяют передавать софт от разработчика к клиенту со всеми необходимыми зависимостями, без необходимости их заново настраивать.
    • Английский язык, так как на нем написана практически вся документация.

    Рабочий день

    День fullstack-разработчика обычно начинается с разбора тикетов (заявок пользователей) по системам, находящимся на поддержке. После решения срочных проблем продолжается работа над текущим проектом. На фрилансе много времени будет занимать общение и составление технических заданий, а в крупных компаниях обычно есть единая методология ведения проектов, например Agile.

    Карьерный рост

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

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

    Олег Ледванов, fullstack веб-разработчик

    Зарплата начинающих fullstack-разработчиков в Москве стартует от 60 000 рублей в месяц, а у экспертов доходит до 300 000 рублей.

    Тоже интересно: Полный разбор профессии Fullstack’а

    Личные качества

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

    С чего начать?
    Frontend
    42.54%
    Backend
    20.18%
    Fullstack
    37.28%

    * Принадлежит компании Meta, деятельность которой признана экстремистской в России.

    Разбор

    Поделиться

    Скопировано
    0 комментариев
    Комментарии