Подготовка · Ответы

Как проходит техническое собеседование backend-разработчика

Скрининг, секция по языку, задача, вопросы по системе. Разбираем, что проверяет каждый этап и по каким признакам вас переводят на следующий.

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

Сколько этапов и как они устроены §

Число этапов у разных компаний разное, а структура за этим разбросом повторяется. Любой этап попадает в один из трёх типов.

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

Технические секции. От двух до пяти встреч по часу-полтора, каждая с инженером. Это и есть собеседование в том смысле, в котором вы о нём думаете.

Финал. Разговор с будущим руководителем или командой. Технику здесь почти не спрашивают — обсуждают задачи, проект и то, сработаетесь ли вы.

Подготовка распределяется по ним неравномерно. Технические секции — от двух до пяти встреч по часу-полтора — занимают почти всё время процесса, и вкладываться стоит туда.

Список секций рекрутёр обычно называет на первом же звонке. Если не назвал — спросите: узнав состав, вы узнаёте программу подготовки.

Первые два разговора: рекрутёр и технический скрининг §

Разговор с рекрутёром и технический скрининг часто путают, хотя это совершенно разные встречи.

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

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

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

Четыре типа технических секций §

Названия различаются: где-то секция называется «Язык», где-то «Golang-скрининг», где-то просто «техническое интервью». Но роли повторяются, и типов ровно четыре.

Секция по языку и стеку — самая длинная, шестьдесят-девяносто минут. Здесь дают код на ревью и просят его изменить под задачу, спрашивают про поведение рантайма, конкурентность и примитивы языка, моделируют проблему и слушают, как вы будете её решать. Проверяют не знание синтаксиса, а то, работали ли вы с языком всерьёз.

Секция по алгоритмам — обычно час. Строки, списки, деревья, хеш-таблицы; поиск, обход, сортировка, динамическое программирование. Оценка сложности входит в состав секции наравне с самой задачей — её называют в описании явно, а не подразумевают.

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

Секция по опыту — разговор о ваших проектах: что делали, какие решения принимали, почему именно такие. Идёт вглубь одного-двух проектов, где у вас была самостоятельная роль, а не по списку из резюме.

Внутри секции по языку темы распределены неравномерно, и это распределение полезнее очередного списка вопросов. В Go почти треть вопросов приходится на конкурентность — каналы, горутины, примитивы синхронизации и гонки вместе. В Python пятую часть занимают асинхронность и GIL, а первая тема — функции, декораторы и генераторы. В Java распределение ровнее, но около пятой части приходится на фреймворк.

На разные грейды набор разный, и заранее известен. Спросите у рекрутёра список — и вы будете готовиться к трём конкретным встречам, а не к абстрактному «собеседованию». Как отвечать внутри секции, чтобы ответ засчитали, — отдельный разговор: про это есть разбор про сильный ответ.

Как секция устроена изнутри §

Про то, как секция идёт изнутри, полезнее цифры, чем впечатления. В нашей выгрузке — 13 858 вопросов с 385 собеседований, и она даёт три вещи, которые сильно меняют подготовку.

Темп высокий. За одну встречу задают от двадцати пяти до пятидесяти вопросов. То есть на вопрос приходится минута-две, а не десять. Развёрнутый монолог здесь не помещается физически: нужен связный ответ на две минуты, из которого понятно, что вы понимаете предмет.

Около четверти разговора — не про технологии. Опыт, мотивация, обстоятельства, ожидания. Это не «разминка перед настоящими вопросами», это часть оценки, и она занимает заметную долю времени.

Кода намного меньше, чем принято думать. Задачи с живым кодированием — единицы процентов от всех вопросов, порядка одной-двух на встречу. Задача почти всегда есть, но она не занимает половину секции.

Последнее стоит перечитать, если вы готовитесь к собеседованию, решая задачи. Задачи нужны — но по объёму разговора их доля мала, а готовятся к ним чаще всего в ущерб всему остальному.

Грейд решает состав — и бывает причиной отказа §

Число секций зависит не от компании, а от уровня, на который вы идёте. На junior и middle обычно две-три секции, на senior — четыре-пять. Дополнительные секции не «сложнее»: это другие области, чаще всего архитектура и опыт.

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

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

Финалы, сроки и что переиспользуется §

Финал — не всегда один. Секции проходят один раз, а результат показывают нескольким командам, и вы можете получить два-три финала подряд с разными руководителями. Технику там почти не спрашивают: обсуждают задачи, проект и распределение работы. Это скорее взаимный выбор, чем проверка.

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

Результат секции живёт дольше самого процесса. Крупные компании засчитывают пройденную секцию на срок до двух лет: вернувшись через год, вы проходите не всё заново, а только недостающее. Практически это значит, что неудачная попытка — не потерянное время, и повторный заход дешевле первого.

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

Проверьте себя

Вопросы из разбора одним списком. Если на каждый есть ответ своими словами — тему можно считать закрытой.

  1. Сколько этапов ждать и чем они отличаются друг от друга?
  2. Что решается на пятнадцатиминутном звонке, если он не технический?
  3. Чем секция по языку отличается от секции по алгоритмам?
  4. Сколько на самом деле кода на техническом собеседовании?
  5. Почему отказ может прийти после секций, которые вы сдали?
  6. Почему между секциями проходят недели и что с этим делать?
По этой теме на платформеОтработать ответы в тренажёре вопросов

Готовьтесь не вслепую

Возьмите маршрут по своей роли и отрабатывайте ответы на вопросы с AI-разбором.