Fullstack на старте часто вреден: человек учит «всего понемногу» и на собеседовании не закрывает ни API, ни кабинет. Вакансии fullstack junior в 2026 существуют, но покупают не энциклопедию, а человека, у которого одна сторона уверенная, а вторая — достаточная, чтобы довести фичу до экрана.
Ниже — когда ярлык fullstack уместен, какой стек не разъезжается, какой один артефакт считать доказательством и как не врать в резюме про ширину. Зарплатных медиан здесь нет: коридор собирайте по вакансиям fullstack с фильтром грейда и формата.
Коротко:
- Сначала выберите главную сторону: backend или frontend. Вторую добирайте только на том же учебном продукте.
- Один сквозной сервис (API + кабинет) сильнее двух несвязанных репозиториев «я и то, и то».
- Не пишите в skills всё, к чему когда-либо прикоснулись. Стек — из этого продукта.
- Многие «fullstack junior» на деле ищут сильный frontend с простым Node или сильный backend с админкой. Читайте задачи, не заголовок.
- Если обе стороны даются через силу, возможно, вам ближе QA, аналитика или одна узкая разработка — не геройство ради слова fullstack.
Что на рынке называют fullstack — и что это не значит
В объявлении fullstack может значить три разные работы. Первая: человек ведёт фичу от таблицы до кнопки в небольшой команде. Вторая: frontend, который сам пишет тонкий BFF. Третья: backend, который «чуть подправит форму». На входе важно понять, какую из трёх вам предлагают. Иначе вы готовитесь к микросервисам, а вас ждут стили кнопок.
Fullstack не равен «сеньор, который всё умеет дешевле одного специалиста». На junior-уровне это чаще готовность не бросать задачу на границе API. Если граница вам интересна — путь рабочий. Если вы хотите глубины в компиляторах или в сложной графике — узкая роль честнее и быстрее до первой зарплаты.
Сравнение чистых сторон: как стать backend-разработчиком и как стать frontend-разработчиком. Не читайте этот текст как приказ стать «всем».
Когда fullstack уместен, а когда рано
Уместно, если вы уже довели одну сторону до рабочего артефакта и вам не хватает второй, чтобы показать фичу целиком. Уместно в маленьких продуктах, агентствах, стартапах, где первый месяц — «сделай экран и сохрани». Рано, если ни HTML-формы, ни SQL вы ещё не держали в руках и хотите закрыть оба пробела курсом «fullstack за 3 месяца».
Ещё рано, если главная мотивация — «так больше платят» или «так больше вакансий». Сначала откройте каталог и посчитайте junior-слоты с задачами, которые вы потянете. Часто узкий frontend или backend даёт больше релевантных объявлений, чем fullstack с вишлистом из Docker, AWS и React одновременно.
Смежный вход: вы уже пишете API и можете собрать простую админку. Или уже верстаете кабинеты и готовы добавить CRUD на одном фреймворке. Тогда fullstack — надстройка, не новая личность.
Стек: одна вертикаль, не зоопарк
Выберите одну вертикаль и не меняйте её каждые две недели.
- JS/TS вертикаль. React (или Vue) + Node (Express/Fastify/Nest — один). Одна база. Удобно тем, кто не хочет два языка.
- Python вертикаль. FastAPI или Django + простой кабинет (можно даже серверные шаблоны Django, если вакансии такие). Frontend на React — только если слоты его требуют.
- Java вертикаль. Spring + Thymeleaf или отдельный тонкий SPA. Тяжелее на входе, ближе к энтерпрайзу.
Обязательный минимум той же гигиены, что у узких ролей: Git, миграции, ошибки API, состояния загрузки на клиенте, README. Можно отложить Kubernetes, микросервисы, GraphQL, три облака, мобильное приложение «заодно». Roadmap языка берите один: Python, React, Java — не все сразу.
90 дней: сквозной продукт, не два курса параллельно
- Дни 1–30. Главная сторона до рабочего куска. Если backend-first — эндпоинты и БД. Если frontend-first — кабинет на моке. Не начинайте обе стороны в первую неделю.
- Дни 31–60. Стык. Живой API вместо мока, авторизация, один сценарий целиком: создать сущность на экране, увидеть её в базе, получить ошибку валидации и на клиенте, и в API.
- Дни 61–75. Compose, тесты хотя бы на API, деплой демо. Честный README: какая сторона сильнее, какие упрощения.
- Дни 76–90. Резюме с главной стороной в заголовке («Junior fullstack, сильнее backend» — нормально), точечные отклики.
Критерий: вы проводите рекрутера по одному пользовательскому сценарию от кнопки до строки в таблице и обратно. Если объясняете только UI или только SQL — ярлык fullstack ещё не заработан, и это нормально. Допишите слабую сторону, не добавляйте третий фреймворк.
Пример 1. Сквозной учебный сервис привычек
Вакансия: junior fullstack, TypeScript, React, Node, PostgreSQL желателен.
Сервис привычек. Пользователь регистрируется, создаёт привычку, отмечает выполнение за день, видит список и простой прогресс. API: Node + PostgreSQL, JWT, миграции. Кабинет: React, фильтр по статусу, форма, ошибки сети. Compose поднимает базу и оба процесса. Тесты: регистрация и создание привычки. Нет соцсетей, нет мобильного приложения, нет очередей.
В README явно: «сильнее сторона — API; UI без дизайн-системы, состояния закрыты». Это честнее, чем «полный продукт уровня рынка».
Такой репозиторий отвечает на главный страх: кандидат умеет провести данные через границу. Два отдельных проекта «магазин на React» и «todo на Flask» этого страха не закрывают — их не стыковали.
Пример 2. Заголовок резюме: было / стало
До:
Fullstack-разработчик. HTML, CSS, JS, TS, React, Vue, Angular, Node, Python, Java, Docker, K8s, AWS. Ищу работу fullstack / frontend / backend.
После:
Junior fullstack (уклон backend, TypeScript). Учебный сервис привычек: API на Node, кабинет на React, PostgreSQL, JWT, Compose. Демо и код: [ссылки]. Vue, Angular, Java, Kubernetes не использую.
Открыт к ролям junior backend и junior fullstack, где первый месяц — фича от таблицы до экрана. Не откликаюсь на чистый frontend-middle и на platform-инженера.
Узкий заголовок расширяет воронку, широкий — сужает до «непонятно кто». Подробнее: резюме fullstack без каши и как написать summary.
Как читать вакансии fullstack, чтобы не попасть на senior-wishlist
Смотрите блок задач, не шапку. Если в первый месяц ждут дизайн-систему, микросервисы и дежурства — это не junior. Если ждут «верстать и чуть поправить PHP» — это frontend с легаси, к этому тоже можно быть готовым, но называйте вещи прямо в письме.
Откликайтесь на три корзины: fullstack junior, backend junior в маленькой команде, frontend junior с «плюс напишешь простой API». Одна корзина «только fullstack в крупном банке» часто пустая. Каталог: fullstack-вакансии, рядом backend и frontend.
Письмо: какая сторона главная, ссылка на сквозной сценарий, готовность к тесту. Не обещайте «закрою любой стек». Мошенничество и предоплаты курсов от работодателя: проверка вакансии. Тишина после рассылки: почему не отвечают.
Деньги — по фильтрам каталога, не по «fullstack всегда дороже». На скрининге коридор и формат. Ожидания по зарплате.
Собеседование: вас будут бить по слабой стороне
Готовьтесь к вопросам с обеих границ, но глубже — по главной. Типичный провал: красивый UI и «JOIN не писал». Или крепкий API и «ключ в списке React не объясню». Заготовьте один сквозной рассказ: баг на стыке, как искали, на какой стороне была причина.
Живой код часто маленький: эндпоинт плюс форма или наоборот. Тестовое «сделайте клон Jira за выходные» — повод отказаться. Нормальное тестовое — узкий CRUD с оговорённым временем. Как подходить к тестовому, подготовка: вопросы.
Как не выглядеть «всем понемногу» в резюме и на созвоне
На созвоне вас почти всегда ткнут в слабую сторону. Заготовьте честную фразу: «главная сторона — API, кабинет достаточен для этого сценария, вот что в UI сознательно упрощено». Это звучит сильнее, чем «я полноценный fullstack middle». Если слабая сторона — дыра, а не упрощение, не берите вакансию, где эта сторона — вся работа.
В резюме одна строка summary с уклоном, один сквозной проект сверху, стек только из него. Второй учебный проект имеет смысл, если он закрывает другую корзину вакансий (например, Django-админка, когда первый репозиторий на Node). Не держите пять репозиториев «магазин / блог / чат / клон Twitter / todo» — это сигнал, что ни один не доведён. Как собрать summary: summary в резюме.
На тестовом не доказывайте ширину второй ненужной фичей. Если бриф — CRUD заказов, сделайте заказы с валидацией и ошибками на обеих сторонах. Не прикручивайте OAuth трёх провайдеров «чтобы было fullstack». Ограничение, записанное в README тестового, — часть оценки. После тестового одним письмом: что сделали, что не успели, как запустить. Это тот же навык, который ждут в команде.
Если после десяти точных откликов тишина, проверьте три вещи: открывается ли демо без вашей машины, совпадает ли уклон резюме с задачами вакансии, не откликаетесь ли вы на wishlist уровня «микросервисы + React Native + AWS». Тогда сузьте корзину до маленьких команд и intern. Диагностика воронки: почему не отвечают и сколько откликов нужно — ритм важнее паники.
Частые вопросы
Можно ли сразу учить fullstack с нуля?
Можно, если вы жёстко держите одну вертикаль и один продукт. Нельзя, если это пять курсов параллельно. Большинству быстрее сначала узкая роль, fullstack — второй шаг.
Что писать в LinkedIn и HeadHunter: fullstack или узкую роль?
То, на что откликаетесь на этой неделе. Две версии резюме нормальны: «junior backend» и «junior fullstack, уклон backend». Одна простыня «любая разработка» почти не работает.
Нужен ли Docker?
Compose для базы и двух процессов в учебном продукте — полезен и читается хорошо. Оркестрация кластера — нет, пока нет вакансии, которая это явно ставит junior.
Берут ли fullstack на удалёнку без опыта?
Реже, чем узкий frontend/backend в офисе. Смотрите intern, гибрид, агентства. Удалёнка для junior.
Стоит ли добавлять мобильное приложение, чтобы «совсем fullstack»?
Нет. Это новая профессия. Сначала сквозной веб.
Как понять, какая сторона главная?
Где вы быстрее чините баг без паники и где вам не скучно сидеть два часа. Если обе стороны противны — fullstack не лечение, смените направление.
Чек-лист перед откликом
Пройдите список вслух. Если больше двух «нет» — сначала допишите продукт, не вакансию.
- Есть один репозиторий, где кнопка пишет в API, API пишет в базу.
- В README указано, какая сторона сильнее и какие упрощения.
- Демо или docker-compose поднимается без вашей устной инструкции.
- В заголовке резюме не «любая разработка», а fullstack с уклоном или узкая роль.
- Стек в skills совпадает с проектом, а не с вишлистом вакансии мечты.
- Письмо называет роль из объявления и ссылку на сквозной сценарий.
- Вы готовы за 10 минут провести человека от экрана до строки в таблице.
- Тестовое на 20 часов бесплатного прода вы умеете вежливо отклонить.
Отдельно проверьте, не откликаетесь ли вы на три несовместимых мира в один вечер: банк с Java, агентство с WordPress и стартап с Nest. Одна неделя — одна корзина. Иначе резюме разъедется, а вы не поймёте, какая воронка молчит. Если корзина fullstack пустая — переключите неделю на backend или frontend без смены личности: тот же репозиторий, другой заголовок файла.
Что сделать сейчас
Выберите главную сторону на бумаге. Откройте пять fullstack-вакансий и пять узких соседних. Если задачи ближе к одной стороне — идите туда, ярлык подождёт.
Если ярлык нужен — сегодня доведите стык в одном репозитории: кнопка пишет в API, API пишет в базу. Затем резюме с уклоном, разбор CV и точечные отклики. Третий язык не начинайте, пока этот сценарий не объясняется вслух за десять минут.