Один из способов проходить собеседования

Привет! Меня зовут Павел, и я работаю геймплей-программистом в Ubisoft Blue Byte. Я уже около года провожу интервью на различные позиции, от Junior-разработчика до Associate Lead, и решил поделиться своими мыслями, как можно пройти собеседование так, чтобы обе стороны остались довольны.

Я хочу отдельно подчеркнуть, что это ни в коем случае не руководство к действию, собеседование это очень тонкая штука, и все может сильно разниться и зависеть от компании, от собеседуемого (и собеседующего), даже от настроения обеих сторон. Есть такие истории, когда сильному разработчику пришлось отказывать, и брать совсем зеленого, потому что переменных очень много. Но все-таки опыт есть опыт, и если он пригодится хотя бы одному читающему эту статью, значит, я не зря ее написал.

А как у вас там все вообще?

Порядок приема на работу у нас такой:
1. Предварительный созвон с рекрутером;
2. Первый звонок с лидом и его приспешниками;
3. Тестовое задание (на него отводится 48 часов);
4. Последний созвон, на котором и происходит финальное решение после обсуждения;
5. Оффер.
Да, шагов достаточно. Я слышал мнение, что, мол, "тестовое задание делать - себя не уважать", "они используют мои наработки в своей работе", и прочие мнения. Несмотря ни на что, тестовое задание до сих пор остается крайне эффективным способом быстро прикинуть, что из себя представляет кандидат: насколько быстро и качественно он выполняет задачи, следует ли он заданным правилам, чувствителен ли он к последующей критике (а она бывает всегда). С моей позиции, лучше инструмента еще не изобрели, и надо быть готовым его пройти независимо от уровня компании.
Остановимся на пунктах поподробнее.

Предварительный созвон с рекрутером

Если вам позвонил рекрутер и болтает с вами, это еще ничего не значит. Но если он назначил вам встречу и спрашивает конкретные вопросы про опыт работы - это значит, что лид отсмотрел ваше резюме и одобрил вас как потенциального кандидата. Здесь главное придти вовремя и отвечать честно. Как правило, технических вопросов на первом звонке не задают. После этого звонка лучше составить список вопросов, которые можно задать позднее. Рекрутера лучше спрашивать о базовых вещах - например, насколько большая компания, сколько дней отпускных в году и т.д. Вопросы же более специализированные лучше задать на техническом интервью - например, есть ли в команде код ревью, какая система контроля версий используется, и прочее. Мы всегда оставляем 5-10 минут под вопросы кандидата. У большинства сперва вопросов нет, но потом они закидывают лида вопросами, что выглядит не очень. Если все прошло хорошо, и эйчар ничего не заподозрил, то вас ждет

Первый звонок с лидом

В нашем случае это созвон с лидом, двумя-тремя ребятами, которые будут задавать вопросы и с вами. На этом этапе все сильно зависит от того, как вы себя поведете - обычно собеседующие ставят перед собой цель разобраться в ваших слабых и сильных местах, поэтому чаще всего вопросы "вглубь" задаются по поводу того, чего вы не знаете. Примерный план первого звонка:
1. Приветствие и вступление, 10-15 минут.
Здесь кандидат рассказывает про себя, про свой прошлый опыт работы. Делится своим стеком технологий, пару слов про прошлую команду и т.д. Вопросы разряда "почему вы ушли с прошлого места" обычно у нас не спрашивают, но если вы часто (раз в полгода считается часто) меняете работу, то будьте готовы ответить на этот вопрос. Здесь главное не затягивать, быстро дать понять чем вы владеете и по ходу собеседования раскрыть это.
2. Вопросы от собеседующих, 35-45 минут.
Вопросы могут быть разного характера. Мы собеседуем на C#, и вот основной список вопросов от меня:

  • Что такое DI? Какие DI-фреймворки вы знаете?
  • Расскажите про паттерны, есть ли у вас предпочтения? Если да, то какой шаблон для каких задач вы используете?
  • В чем разница между in/out/ref? В каких случаях они применяются?
  • Проводили ли вы code-review? Как вы относитесь к тому, что ваш код комментируют коллеги ниже вас по должности?

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

3. Вопросы от собеседуемого, лайтовые вопросы.
Здесь уже закругляемся, спрашиваем кандидата, есть ли у него какие-то вопросы. Всегда лучше, если вы спросите что-то у команды. Я рекомендую что-то из этого:

  • Какой размер текущей команды? Планируется ли расширение?
  • Какая иерархия в команде?
  • Есть ли возможность для горизонтального\вертикального роста?
  • Используете ли вы AGILE/SCRUM?

И прочее, что связано непосредственно с командой. Вопросы в духе "сколько длится отпуск", "какая у меня будет зп" и т.д. лучше оставить для рекрутера, а о чем-то в духе "ну как, я прошел? Я вам понравился?" и т.п. лучше сразу забыть, ничего хорошего они вам не принесут. В целом, оставайтесь спокойным, насколько это возможно (или делайте вид, это часто одно и то же), говорите правду и не приукрашивайте. Очень важно заметить, что если вы чего-то не знаете, скажите об этом прямо. Лучше всего с посылом "я пока не знаю, но с удовольствием выучу".

Тестовое задание

Если все прошло хорошо, вы не сильно потели и ответили на 70% технических вопросов, вам на почту пришлет тестовое задание. Я не могу (и не буду) раскрывать деталей нашего задания, но это что-то вроде хакатона на 48 часов, где по четкому ТЗ надо сделать небольшую игру. Здесь проверяется ваше умение следовать четким критериям и обосновывать выбор, которым вы руководствовались при создании той или иной части проекта.

На этом этапе надо выложиться на полную и показать что вы знаете, но при этом не сильно усердствовать. Любые ненужные потуги (также известные как оверинджиниринг) будут видны сразу, и за них придется отвечать, так что KISS ваш лучший друг.

Последний созвон

Где-то неделю-полторы лид и его приспешники смотрят отправленное тестовое задание. Проверяются все факторы, указанные в ТЗ: каждый из "комиссии" просматривает задание, проходит по всем пунктам и отмечает выполнение. Был ли пункт закрыт полностью, с упущениями или вообще не выполнен. В любом случае (даже если задание сделано плохо) вас пригласят на последний созвон, который длится 1-1.5 часа, в зависимости от вашего уровня. Для джунов обычно бронируется меньше времени. Этот звонок тоже делится на несколько этапов:

  • Приветствие, опросник по сложности задачи, что было легко, что было сложно и прочее;
  • Лайв-сессия, где кандидата просят показать свой экран, и он идет по написанному коду, отвечая на вопросы интервьюирующих. Эти вопросы заранее собираются в список, туда входят спорные моменты, какие-то плохие (или наоборот, хорошие и выдающиеся) практики, в общем, автор проходит длинный код-ревью. Важно заметить, что цель у этого не макнуть в грязь, вроде "кто тут накодил?", а подтвердить, что автор действительно написал этот код и может ответить за каждую его строчку. Даже если было использовано спорное/устаревшее решение, а автор может логично и доступно объяснить скрытый смысл за этим, все равно ответ пойдет в зачет;
  • Оставшиеся технические вопросы, здесь может придти что-то в голову остаточное, если видно, что кандидат плавает;
  • Заминка и прощание.

После звонка идет 10-20 минутное обсуждение, выявление плюсов и минусов кандидата, групповое обсуждение, подходит ли он. Если да, то вас ждет

Оффер

С вами свяжется эйчар и пригласит на подписание документов. Можете радоваться, что все самое сложное позади. За исключением переезда и бюрократии, но об этом как-нибудь в другой раз.

Даже эта (в общем-то, весьма подробная) статья не может ответить на все вопросы , как интервью пройдет, и каков будет исход. Как я замечал в самом начале, факторов множество, и только от вас зависит, как оно пройдет. Самое главное это держать голову холодной, позубрить пару ночей перед интервью и не расстраиваться, если что-то пошло не так. Спамить личку лиду тоже не рекомендую.

Буду рад ответить на ваши комментарии, до связи и удачи с интервью!

2222
3 комментария

Меня зовут Павел, и я работаю геймплей-программистом в Ubisoft Blue Byte.

Беги, я их задержу, спасайся!

3
Ответить

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

Но почему нельзя просто спросить, что бы кандидат делал, если бы ему пришлось реализовать ваш тестовый проект? Мне кажется и без написания кода человек сможет объяснить, на что бы он обратил внимание и какие вещи ему кажутся важными для решения задачи.
Тем, что вы заставляете его писать бойлерплейт, вы проверяете, готов ли кандидат заплатить за два часа, которые на него тратит тимлид, двумя днями своего времени.

Тестовое задание делать - себя не уважать.

Ответить

но это что-то вроде хакатона на 48 часов

Ужас. Двое суток не спать из-за тестового. Не стал бы даже тратить время на собеседование в контору, где уже на тестовом начинаются какие-то кранчи.

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

А статья интересная.

Ответить