March 2, 2020

Как собеседовать разработчика? Ч.1.

В книге Константина Борисова “Брать или не брать? Как собеседовать разработчика?” подробно рассказывается об этапах собеседования с IT специалистами, но она будет полезна рекрутерам, менеджерам, работающим не только в сфере IT.

Сегодня делимся кратким содержанием первых двух глав.

Глава 1. Введение.

1.1. Какова цель собеседования?

1) Составить профиль кандидата - что за человек перед нами, что его интересует, какие у него жизненные планы, как он может помочь компании, и как компания может ему помочь, что его мотивирует и тд.

2) Оставить положительное впечатление о компании. Оставить такое впечатление, чтобы кандидат захотел работать в вашей компании – это ваша задача.

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

3) Прокачать собственные soft skills. Собеседование - это переговоры. Учимся постоянно!

1.2. Моральные аспекты собеседования

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

Оценка кандидата – это процесс, который будет запущен на очень поздних стадиях, после всех собеседований.

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

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

1.4 Начало интервью

Покажите, что вы с кандидатом находитесь на равных в переговорном процессе
СНАЧАЛА! расскажите о проекте, об используемых технологиях и о том, кого вы именно ищете. Это расслабит и успокоит кандидата. Он может задать вам несколько вопросов, таким образом послушать и привыкнуть к вам. Вы задаете тон разговора с начала. Следующим пунктом хорошо задать вопрос, который а) потребовал бы развёрнутого ответа (так как в дальнейшем нам нужны развёрнутые ответы) и б) был лёгким для кандидата (чтобы не ставить его в тупик с самого начала). Например- расскажите про опыт работы/последний проект/ваше хобби. 1.5. Резюме и самооценка

Кандидаты переоценивают/недооценивают себя очень часто. Хорошее решение в компании Luxoft. Там рекрутеры высылают кандидатам стандартный шаблон резюме и просят его заполнить. А в этом шаблоне, кроме прочего, есть табличка со списком основных языков программирования и технологий. Кандидат для каждой строчки должен заполнить уровень владения соответствующей технологией от 0 (ничего не знаю) до 5 (эксперт).
Новички часто переоценивают себя, опытные - иногда занижают. Будьте внимательны. 1.6. Структура собеседования

-HR интервью (общая оценка адекватности, инфа о компании)

-Техническое интервью. Подробнеее об этом в следующей главе. Часто оценку технических знаний считают единственно важной частью собеседования. Это заблуждение.

-Менеджерское интервью, обычно его проводит нанимающий менеджер. Это продолжение исследования личности кандидата. Технические данные- не всё. Как кандидат относится к используемым в вашем проекте технологиям? Сможет ли кандидат изучить новые технологи?
-Офер. Не только условия по графику-зп, но и прояснение готовности учиться и заполнять пробелы. За какое время вы изучите? Вам это будет интересно?


Всегда следим за временем на собеседовании.

Если собеседование одно, то то порядок таков: знакомство-технические вопросы (привычнее они)- менеджерские вопросы и ответы на вопросы кандидата. Не затягивать ни один из этапов!

Глава 2. Техническое собеседование.

Конкретные вопросы на техническом собеседовании сильно зависят от используемых в проекте технологий, языка программирования и философии разработки, принятой в компании. Но принципы проведения собеседований одинаковые. Эта глава адресована техническим специалистам, проводящим собеседования, а задача HR-менеджера - познакомить его с принципами проведения собеседований.

2.1. Открытые вопросы

Не бомбить вопросами с ответами да/нет. Задаем открытые, выясняя экспертность/мнение собеседника∙ Какая самая серьёзная проблема вам встречалась в ваших проектах? Что бы вы хотели изучить в ближайшее время? Если бы вам достался на поддержку большой старый продукт с большим количеством кривого кода, то как бы вы стали исправлять в нём баги? Какие проекты вам нравятся больше всего? Какие технологии из тех, с которыми вы работали, вы считаете самыми бесполезными?

Если молчание-попробуйте задавать вопросы более развёрнуто, переформулируйте вопрос, приведите пример ответа или сделайте всё это разом. 2.2. Уровни знания

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

-Определения.

-Плюсы.

-Минусы.

-Философия.

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


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

2.3. Задачки на собеседовании

При собеседовании специалиста вам нужно посмотреть, как он реально работает. Для тестировщика нужно дать ему что-то протестировать. Для мендежера — решить какую-то управленческую задачу. Для разработчика — дать ему написать код. Только вы знаете, какой разработчик вам нужен- пишет ыбстро с ошибками и после тестов быстро исправляет. Или пишет долго, но идеально? Классическая задача, которую я использую — это FizzBuzz.


В интернете многие пишут, что эта задача просто раскры- ла им глаза, что 90% соискателей в принципе не могут написать рабочий код или тратят на него больше 15 минут. Кроме полной неспособности решить задачу FizzBuzz встречается много других ситуаций. Например, человек может забыть, как проверять делимость чисел. Я ему тогда просто под- сказываю. Здесь важно, чтоб он сразу признался, не тратя время понапрасну. В условиях стресса на собеседовании можно забыть что угодно. А иногда кандидат пишет код, но не может найти в нём ошибку, если я говорю, что она есть. То есть кандидат не может отлаживать код в голове, он не может его полноценно читать. И это уже проблема, которая будет проявляться в его работе. А некоторые кандидаты пишут и переписывают код этой крошечной программы по нескольку раз и результат выглядит крайне неаккуратно. Не стоит надеяться, что в реальных программах будет по-другому.

2.4. Задачки на собеседовании

"Цикл в списке".

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

2.5. Проверка тестовых заданий

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

2.6. Технический проект

Это нужно, если:

-в компании нет технических экспертов, умеющих проводить интервью

-есть желание проверить, насколько сильно кандидат хочет работать на вас.Если кандидат не уверен, что он хочет работать в вашей компании, он может быть заинтересован в том, чтобы попробовать «реальную работу» без всяких обязательств.

-если это найм junior-разработчика. Если разработчик никогда не писал коммерческий код, то имеет смысл дать ему попробовать свои силы.

2.7. Проверка знания английского языка

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

полная версия книги здесь: https://www.litres.ru/konstantin-evgenevich-b/brat-ili-ne-brat-ili-kak-sobesedovat-razrabotchika/