
Frontend-разработчик — не «тот, кто делает красивые сайты». Это инженер, который превращает нарисованную дизайнером картинку в живой интерфейс: программирует, что произойдёт при клике, тянет данные с сервера и заставляет всё это одинаково работать на тысяче разных экранов и браузеров. Бóльшую часть дня он не рисует и не «верстает кнопочки» — он пишет логику на JavaScript и чинит то, что в одном браузере работает, а в другом разваливается. Вёрстка — это вход в профессию, а не сама профессия.
И сразу честно, потому что про это молчат на рекламных лендингах. «Frontend — это про дизайн, там не надо программировать» — главный миф, который притягивает не тех людей и отпугивает тех, кому тут было бы хорошо. Профессия подходит не тем, кто любит «красиво», а тем, у кого визуальное мышление уживается с логическим: видеть, что элемент съехал на два пикселя, и при этом держать в голове, в каком состоянии сейчас находится интерфейс. Дальше — картина изнутри, чтобы вы примерили роль на себя до того, как заплатите за курс и потратите год вечеров.
Антон, 27 лет, менеджер по продажам. Решил во frontend по простой логике: «Я визуал, у меня вкус, я люблю, когда красиво. Буду делать сайты». В его голове картинка такая: открываешь редактор, двигаешь кнопки, подбираешь цвета, и получается симпатичная страница. Творчество плюс немного техники.
Антон ещё не знает, что красоту придумывает не он. Красоту придумывает дизайнер — и отдаёт frontend-разработчику готовый макет, картинку до пикселя: где кнопка, какого она цвета, какой шрифт, какие отступы. Работа frontend начинается там, где творчество дизайнера заканчивается. Не «придумать, как должно выглядеть», а «заставить это выглядеть именно так в настоящем браузере — и заработать».
Первый слой этой работы — вёрстка. Перенести статичную картинку в код, который браузер умеет показывать: HTML задаёт структуру страницы, CSS — внешний вид. Звучит просто, и поэтому новички думают, что в этом вся профессия. На деле даже вёрстка коварнее, чем кажется. Макет нарисован под один экран — а открывают сайт с ноутбука, с телефона в метро, с планшета, со старого монитора на работе. Страница должна не развалиться ни на одном из них. Это называется адаптивная вёрстка, и на ней спотыкаются даже не новички.
Но допустим, вы сверстали страницу идеально. Она красивая, она ровная на любом экране. И она при этом абсолютно мёртвая. Кнопка нарисована — а нажатие ничего не делает. Вот здесь и начинается настоящий frontend.
Сверстать страницу — значит сделать её красивой и неподвижной. Оживить её — значит запрограммировать. Это разные навыки и, по сути, разные профессии, которые новичок склеивает в одну.
JavaScript — язык, на котором страница начинает реагировать. Пользователь нажал «Добавить в корзину» — и где-то должно посчитаться, что товаров теперь три, обновиться сумма, дёрнуться иконка корзины. Ввёл email в форму — программа должна на лету проверить, что это вообще email, а не «асдф», подсветить ошибку красным, не дать отправить мусор. Открыл ленту, долистал до низа — подгрузилась следующая порция без перезагрузки страницы. За каждым таким «само собой разумеющимся» поведением стоит код, который кто-то написал. Этот кто-то — frontend.
И это полноценное программирование, а не «разметка». Здесь есть переменные, функции, условия, циклы — всё, что пугает человека, пришедшего «делать красиво». Здесь есть асинхронность: данные с сервера приходят не мгновенно, и надо уметь ждать ответ, не подвешивая интерфейс. Здесь есть состояние: интерфейс в каждый момент находится в каком-то положении — пользователь залогинен или нет, корзина пуста или полна, форма отправляется или уже отправлена, — и frontend держит всю эту бухгалтерию в голове и в коде. Чтобы не тонуть в ней руками, разработчики используют фреймворки — React, Vue и подобные. Это не магия и не «ещё одна красивая штука»: это инструменты, которые помогают управлять сложностью, когда состояний становятся сотни.
Вот почему «frontend = вёрстка» — заблуждение, которое дорого обходится. Вёрстка — это, грубо, треть работы и первый месяц обучения. Остальное — программирование. Человек, который пришёл за визуальным творчеством, доходит до JavaScript и обнаруживает, что попал не туда, куда собирался.
Теперь то, чего новичок не видит в принципе, потому что этого нет на экране.
Откуда страница берёт ваши заказы, ваш баланс, список товаров, ленту друзей? Не из себя. Всё это лежит на сервере — на бэкенде, в другой части системы, которую frontend не пишет, но без которой его интерфейс пуст. И значительная часть дня frontend-разработчика — это переговоры с сервером через то, что называется API. Грубо: frontend отправляет запрос «дай мне заказы пользователя номер 12», сервер отвечает пачкой данных, frontend раскладывает их по карточкам на экране.
Звучит механически — на практике именно тут живёт половина багов. Сервер задумался и отвечает три секунды — что показать пользователю, чтобы он не решил, что всё сломалось и не ушёл? Крутилку загрузки. Сервер вернул ошибку — что показать? Внятное сообщение, а не белый экран. Сервер прислал данные не в том виде, в каком frontend ожидал, — и красивый интерфейс рассыпается на ровном месте. Состояние загрузки, состояние ошибки, состояние «данных нет вообще» — каждое надо предусмотреть и нарисовать, хотя в идеальном мире пользователь их не увидит.
Frontend — посредник между человеком и сервером. Сверху он показывает пользователю кнопки и картинки. Снизу он разговаривает с бэкендом на языке запросов. И качество его работы измеряется не тем, как красиво в момент, когда всё хорошо, а тем, что происходит, когда что-то пошло не так.
Вот деталь, которая ломает романтику быстрее всего.
Вы написали код. У вас всё работает. Вы открываете тот же сайт в другом браузере — и кнопка съехала, анимация дёргается, а форма вообще не отправляется. Код тот же. Браузер другой. Chrome показал так, Safari — иначе, а на стареньком телефоне коллеги вёрстка поплыла третьим способом. Это и есть кросс-браузерность — тихий пожиратель времени, про который на лендингах «выучи frontend за три месяца» предпочитают не вспоминать.
Браузеров много, версий ещё больше, экранов — десятки размеров. И каждый по-своему трактует один и тот же код. Frontend-разработчик не имеет права проверить «у себя на ноутбуке» и закрыть задачу. «У меня работает» — не аргумент, а начало проблемы. Работать должно у всех: на айфоне и на дешёвом андроиде, в свежем Chrome и в браузере, который бабушка не обновляла с позапрошлого года.
Поэтому внимание к деталям тут — не приятная черта характера из вакансии. Это ежедневная необходимость. Пиксель, который съехал, на собеседовании выглядит придиркой. В проде это кнопка «Купить», которую на каком-то телефоне не видно, — и потерянные продажи. Frontend живёт в зазоре между «выглядит готово» и «работает везде», и этот зазор шире, чем кажется снаружи.
Под зонтиком «делаю сайты» прячутся профессии с разным порогом и разными буднями. Новичок их путает — и недооценивает, куда лезет.
Верстальщик — самый узкий вход. Он берёт макет и превращает его в HTML и CSS: статичная страница, красивая и адаптивная, но без логики. Кнопки нарисованы, но не запрограммированы. Когда-то это была отдельная профессия; сегодня чистая вёрстка без программирования — сужающаяся ниша, потому что бизнесу почти всегда нужна не картинка, а работающий интерфейс. Многие так и входят: сначала вёрстка, потом доучивают JavaScript и становятся полноценными frontend.
Frontend-разработчик — это вёрстка плюс всё остальное, о чём шла речь выше: программирование логики на JavaScript, работа с состоянием, запросы к серверу через API, владение хотя бы одним фреймворком. Это не «верстальщик, который вырос», а другой уровень: тут программируют, а не только размечают. Именно эту профессию ищут по слову «frontend» — и именно её недооценивают те, кто слышит «ну, сайтики делать».
Fullstack — это frontend плюс бэкенд: тот же человек пишет и интерфейс, и серверную часть, к которой интерфейс обращается. Шире охват, выше порог, и это почти никогда не первая профессия с нуля — до неё дорастают, а не стартуют. Новичку важно понимать карту с первого дня: «хочу делать сайты» — это вопрос, а не профессия. Ответом может быть и узкая вёрстка, и полноценный frontend, и fullstack — и пороги входа у них разные.
Вот теперь главный вопрос — задайте его себе до года обучения, а не после.
Frontend требует редкого гибрида, который встречается не у всех. С одной стороны — визуальное мышление: вас должно цеплять, когда элемент съехал на два пикселя, когда отступы неровные, когда на телефоне всё поехало. С другой — логическое: вы должны спокойно держать в голове, что интерфейс сейчас в таком-то состоянии, данные грузятся асинхронно, а при ошибке надо показать вот это. Чистый «визуал», которого тошнит от слова «асинхронность», застрянет на JavaScript. Чистый «логик», которому плевать на пиксели, заскучает на вёрстке и пойдёт в бэкенд, где красота не нужна. Frontend живёт ровно посередине — и в этом его сложность и его прелесть.
Нужно терпение к багам особого сорта. Не к тем, что воспроизводятся всегда, — к тем, что воспроизводятся через раз, только в Safari, только на конкретном размере экрана, только если сначала нажать сюда, а потом туда. Охота за таким багом — это часы, а не минуты. Кому от этого хочется закрыть ноутбук, тому будет тяжело: такие баги — не исключение, а будни.
А вот высшей математики не нужно, и это правда, а не маркетинг. Ни матана, ни тяжёлых алгоритмов на старте. Гуманитарию с визуальным вкусом дорога открыта — если он готов полюбить логику, а не обойти её. Не подходит профессия тем, кто услышал «frontend» и достроил «творческая работа без программирования». Такой работы тут нет. Есть программирование, у которого результат видно глазами, — и это совсем другое удовольствие, чем казалось на входе.
Про деньги коротко, чтобы закрыть вопрос. Junior-frontend в 2026 году — ориентир 50 000–80 000 ₽ (медиана предлагаемых зарплат по вакансиям), middle уже 140 000–250 000 ₽. Цифры приятные, но это отдельный разговор и отдельная статья. На старте важнее не сколько платят, а выдержите ли вы то, за что платят.
Прежде чем платить за обучение и тратить вечера, прогоните себя через три честные проверки.
Первая — на двойственность. Откройте любимый сайт и поймайте себя: вы замечаете, что кнопка чуть кривовата и отступ неровный (визуал) — и при этом вам интересно, как сделано, что лента подгружается сама (логик)? Если цепляет и то, и другое — это ваш материал. Если только красота — присмотритесь к дизайну. Если только «как устроено» и плевать на пиксели — присмотритесь к бэкенду. Вторая — на терпение. Представьте: код работает у вас, но разваливается у заказчика на другом телефоне, и вы три часа ищете почему. Это будни, не редкость. Третья — честная: вы готовы к тому, что «делать красиво» придумает дизайнер, а ваша работа — заставить это жить и не сломаться нигде?
Самый дешёвый способ не потратить год зря — понять про себя главное заранее: ложится ли склад этой работы на ваш, а не только звучит ли заманчиво слово «айти». Профтест на этом портале как раз про это — не угадать профессию по моде, а сопоставить ваш склад ума и цели с тем, что профессия реально требует. Пятнадцать минут против года вечеров — обмен выгодный.
Антон, с которого мы начали, напросился посмотреть один рабочий день знакомого frontend-разработчика. Ноль вдохновенного подбора цветов, как он себе рисовал, — цвета пришли от дизайнера готовым файлом. Полтора часа — почему форма отправляется в Chrome и молчит в Safari. Полчаса — крутилка загрузки на случай, если сервер задумается. Спор с бэкендом, в каком виде должны приходить данные. Нудно, въедливо, технично — и человеку, кажется, это по-настоящему нравится.
Антон не передумал. Но вопрос у него сменился. Не «красиво ли будет получаться» — красиво придумают за него. А «выдержу ли я, что красота — это полпроцента, а остальное — логика и баги». Вот с этого вопроса профессия и начинается.