Проводим идеальное собеседование разработчика. Советы от практика с тысячей собеседований за спиной

в 13:11, , рубрики: лучшие практики, собеседование, сомневаться не надо

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

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

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

Собеседование

Сколько человек должно проводить собеседование? Оптимально 3-5. Один интервьюер может что-то упустить, а вот группа сможет задать вопросы с разных точек зрения. Например:

  • Разработчики проверят технические навыки.

  • Тимлид оценит, впишется ли кандидат в команду.

  • HR посмотрит на его софт-скиллы.

  • Проектный менеджер уточнит, насколько кандидат готов к дедлайнам и изменяющимся требованиям.

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

Разогрев

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

Один из самых показательных вопросов на собеседовании — «Почему вы хотите работать именно у нас?». Задайте его первым. Он позволяет сразу определить, насколько кандидат заинтересован в компании, изучил ли он её заранее и готов ли искренне обосновать свой выбор. Если кандидату важны только деньги, то вы быстро сможете это определить и закончить разговор не потратив впустую час‑два времени.

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

Обязательно уточните наличие диплома. Хотя сейчас многие учатся самостоятельно, профильное образование остаётся важным маркером серьёзного отношения к профессии. Диплом хорошего университета свидетельствует не только о наличии знаний, но и о дисциплине, умении системно мыслить и выполнять сложные задачи в срок. Конечно, самоучки могут быть не менее талантливыми, но зачем рисковать, если есть кандидат с классическим образованием?

Основная часть

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

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

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

  • Опишите модель OSI

  • Объясните, как работает распределённая согласованность в CAP-теореме.

  • Как реализовать собственный garbage collector?

  • Расскажите почему структурная типизация более гибкая чем номинальная?

  • Расскажите что означает буква L в SOLID?

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

  • Реализуйте двусвязный список без использования встроенных структур данных.

  • Как работает хеш-таблица и что делать при коллизиях?

  • Объясните разницу между глубиной рекурсии и стековой памятью.

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

  • C какими кавычками код работает быстрее с двойными или одинарными?

  • Что быстрее: интерполяция или конкатенация?

  • Как называется функция, которая делает первую букву заглавной?

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

Не забудьте, что хороший программист должен уметь решать задачи без посторонней помощи, поэтому на собеседовании важно не давать никаких подсказок. Если кандидат действительно обладает глубокими знаниями, он сам найдёт верное решение, даже если вопрос сложный, а формулировка не совсем ясна. Особенно полезно оставить небольшую паузу после его ответа. Если кандидат начинает нервничать и переспрашивать «Я правильно понял вопрос?» или «Можете уточнить, что вы имеете в виду?», это может говорить о недостаточной уверенности.

Если он справился со всеми вопросами, то начинаем закругляться и переходим к финальной части.

Заключение

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

Как правильно обсуждать зарплату? Используем стратегию «нижнего диапазона». Если кандидат озвучил вилку зарплаты, разумно предложить нижнюю границу или даже немного ниже. Например: «Вы сказали, что рассчитываете на 250 000 ₽, но на этой позиции обычно стартуют с 180 000 ₽, пока человек не вольётся в процессы». Если кандидат настаивает на повышении суммы, можно слегка удивиться и мягко намекнуть, что люди с таким подходом у нас не задерживаются.

После интервью

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


Меня зовут Кирилл Мокевнин и я сооснователь школы программирования Хекслет. Больше про разработку, профессиональный рост и бизнесовую часть процесса я пишу в своем телеграм-канале Организованное Программирование.

Автор: toxicmt

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js