Бэкенд или фронтенд: как выбрать направление и не жалеть
Вопрос обычно звучит от людей, которые ещё не писали ни того, ни другого, и ответить на него честно можно только одним способом: попробовать оба по неделе. Но кое-что полезное сказать заранее всё же можно.
Разберём разницу по существу, а не по стереотипам про «красивые кнопочки против серьёзной логики».
Чем отличается работа
Фронтенд отвечает за то, что видит пользователь. Интерфейс, состояние приложения, взаимодействие с API, скорость загрузки, поведение на разных экранах и в разных браузерах.
Главная сложность не в вёрстке, а в состоянии: данные приходят асинхронно, пользователь кликает в неожиданном порядке, интерфейс должен оставаться согласованным. Плюс постоянная проверка реальностью: любую ошибку сразу видно.
Бэкенд отвечает за то, что происходит после запроса. Данные, бизнес-логика, интеграции, надёжность, нагрузка.
Главная сложность в том, что ошибки не видны сразу и стоят дороже. Потерянный платёж или задублированный заказ обнаруживаются через сутки, а исправляются миграцией и разбором.
Порог входа
У фронтенда он ниже на старте: первый работающий результат появляется в первый же день, и это сильно поддерживает мотивацию. Но дальше кривая крутая: сборщики, экосистема, типизация, состояние, тестирование, производительность.
У бэкенда старт медленнее, зато рост более плавный: сначала простой сервис, потом база, потом очереди и нагрузка.
Оба пути занимают примерно одинаковое время до уверенного джуна. Разница в том, как распределяется сложность.
Что важнее по складу мышления
Тут без мистики, просто наблюдение.
Фронтенд обычно ближе тем, кому важна быстрая обратная связь и кто нормально относится к визуальной части: не обязательно любить дизайн, но придётся регулярно обсуждать отступы и поведение элементов.
Бэкенд ближе тем, кому интересны данные, надёжность и то, как система ведёт себя, когда что-то ломается. Здесь дольше цикл обратной связи, и это требует терпения.
Ни один вариант не «сложнее» другого. Сложность просто разная: в одном случае это состояние интерфейса и разнообразие клиентов, в другом согласованность данных и отказы.
Рынок и деньги
Вакансий на бэкенде объективно больше, особенно в корпоративном сегменте: банки, ритейл, промышленность. Фронтенд сильнее в продуктовых компаниях и агентствах.
По деньгам направления сопоставимы, разброс внутри грейда больше, чем разница между ними. Ориентиры по вилкам мы разбирали в обзоре зарплат в IT.
Одно практическое замечание: джунских вакансий на фронтенде исторически больше, но и конкуренция там выше, потому что вход популярнее.
Что спрашивают на собеседованиях
Разница в вопросах хорошо показывает разницу в работе.
Фронтенд: как работает событийный цикл в браузере, что происходит при рендере, чем отличается состояние компонента от глобального, как оптимизировать перерисовки, как устроен запрос к API и что делать с гонками, доступность и адаптивность.
Бэкенд: как устроены транзакции и изоляция, что произойдёт при повторном запросе, как избежать дублей, зачем нужны индексы и как читать план запроса, гарантии доставки в очередях, что делать при отказе внешнего сервиса.
Общее для обоих: алгоритмы в разумном объёме, Git, тесты, умение объяснить своё решение вслух.
Если выбрать не получается
Три способа решить вопрос практикой, а не размышлениями.
Сделать один маленький проект целиком. Простое приложение с интерфейсом и сервером. Неделя работы, и вы почувствуете, какая часть вам интереснее.
Посмотреть на задачи, а не на технологии. Что вам ближе: «сделать так, чтобы человек прошёл форму без раздражения» или «сделать так, чтобы отчёт считался за секунду вместо минуты».
Спросить у тех, кто работает. Не «что лучше», а «расскажи, чем ты занимался на этой неделе». Разница между представлением и реальностью обычно обнаруживается именно так.
И утешительная новость: выбор не окончательный. Переходы между направлениями случаются постоянно, а база (алгоритмы, сети, базы данных, Git) переносится целиком.
Про фулстек
Соблазн ответить «буду учить и то, и другое» понятен, но на старте это чаще вредит: получается поверхностно с обеих сторон, и на собеседовании это видно сразу.
Рабочая последовательность другая: сначала одно направление до уверенного уровня, потом второе по мере необходимости. Большинство фулстеков это люди, которые начинали с одной стороны и доросли до второй, а не учили обе сразу.
С чего начинать подготовку к собеседованиям
Независимо от выбора, спрашивать будут одинаково дотошно, просто разные темы. И готовиться лучше не запоем перед интервью, а понемногу с возвратом к слабым местам.
В Сеньорчике собран банк вопросов с реальных собеседований по одиннадцати ролям, включая Python-бэкенд, Java и Go: каждый вопрос с вариантами ответов и разбором, движок возвращает темы, где вы ошибаетесь. Десять минут в день в Telegram, начать можно бесплатно.