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

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

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

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

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

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

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

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

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

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

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

Разговор с рекрутёром и технический скрининг — разные встречи.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Число секций зависит от уровня, на который вы идёте: на junior и middle обычно две-три секции, на senior четыре-пять. Дополнительные секции добавляют другие области.

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

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

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

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

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

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

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

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

Сначала проговорите ответ, потом сверьтесь с текстом.

Сколько этапов ждать и чем они отличаются друг от друга?

Что проверяют: этапы делятся на три типа — отсев, технические секции и финал. Секций от двух до пяти, и решение принимается на них.

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

Раздел «Сколько этапов и как они устроены»
Что решается на пятнадцатиминутном звонке, если он не технический?

Что проверяют: совпадение по вилке, формату и грейду, то есть имеет ли смысл занимать время инженеров.

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

Раздел «Первые два разговора: рекрутёр и технический скрининг»
Чем секция по языку отличается от секции по алгоритмам?

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

Частая ошибка: считать секцию по языку устным экзаменом по документации. Там дают код и просят его изменить.

Раздел «Четыре типа технических секций»
Сколько на самом деле кода на техническом собеседовании?

Что проверяют: живое кодирование есть почти всегда, но занимает один-два пункта из нескольких десятков вопросов.

Частая ошибка: тратить всю подготовку на решение задач. Основной объём встречи — устные вопросы в темпе минута-две на каждый.

Раздел «Как секция устроена изнутри»
Почему отказ может прийти после секций, которые вы сдали?

Что проверяют: секции оценивают по уровню, и итоговый грейд может не совпасть с позицией.

Частая ошибка: читать такой отказ как провал по знаниям и переучивать то, что вы и так знаете.

Раздел «Грейд решает состав — и бывает причиной отказа»
Почему между секциями проходят недели и что с этим делать?

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

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

Раздел «Финалы, сроки и что переиспользуется»

Проверьте эти темы вслух

В тренажёре вы отвечаете голосом, а разбор показывает, где ответ просел.