Переезд в США. Часть 04 - Собеседования (подробно)

Более детальный разбор собеседований

Image credit: https://awis.org/

Академический формат

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

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

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

В целом, такое интервью напоминает стресс-тест лекции, и применяют его больше в исследовательских институтах, поэтому я назвал его “академическим”.

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

Промышленный формат

Этот формат достаточно хорошо изучен и описан в Интернете, т.к. поставлен ведущими компаниями на поток. Поэтому здесь я просто кратко перечислю основные моменты, на которые следует обратить внимание.

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

Теперь пару слов более детально.

  • Программистское интервью: здесь нужно прорешать обычно тот самый пресловутый литкод (сайт с примерными алгоритмическими задачами - leetcode), спрашивать уточняющие вопросы, быть готовым написать код в чистом блокноте, а не в IDE (от англ. Integrated Development Environment - интегрированная среда разработки), самостоятельно обозначить краевые случаи, и провести “гипотетическую” отладку.

  • Дизайн-интервью: важно не закопаться в деталях, а изначально в крупных мазках наметить скелет всей системы, после чего аккуратно постараться добавить “мяса” (технических деталей) в каждый из высокоуровневых модулей. Также для разумного дизайна необходимо будет прояснить ряд вопросов, и здесь как раз ожидаются вопросы от кандидата интервьюеру.

  • На любом уровне важны поведенческие интервью. И хотя их легко можно “надрессировать” (или, как модно говорить, “заоверфититься”: от англ. overfit - переобучение), даже по манере их вести (долго или медленно отвечаете, как слушаете собеседника, как формулируете мысли) кандидату могут поставить как жирный плюс, так и большой минус. Опять же здесь совет - будьте собой, просто сглаживайте углы, и слушайте, что вас спрашивают (больше не значит лучше).

Aleksandr Petiushko Александр Петюшко
Aleksandr Petiushko Александр Петюшко
Director, Head of ML Research / Adjunct Professor / PhD

Principal R&D Researcher (15+ years of experience), R&D Technical Leader (10+ years of experience), and R&D Manager (7+ years of experience). Running and managing industrial research and academic collaboration (35+ publications, 30+ patents). Inspired by theoretical computer science and how it changes the world.