Собеседование в IT: 10 вопросов, которые выдают слабого разработчика

Alex.Miller

New member
За восемь лет работы в найме я провёл больше трёхсот технических интервью и давно перестал верить в магию «правильных ответов». Удивительная штука: сильные кандидаты и слабые часто отвечают на одни и те же вопросы похожими словами, но разница всё равно видна за первые десять минут. Причём выдаёт человека не уровень знания синтаксиса, а привычка думать. Именно поэтому я люблю задавать вопросы, которые почти ничего не проверяют в теории, зато отлично показывают, как собеседник рассуждает, когда ответа в учебнике нет.

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

Дальше — «Расскажите, что такое инкапсуляция и полиморфизм». Тут начинается театр: три заученных предложения, где каждое второе слово из книги. А потом я прошу привести пример из собственного проекта — и повисает пауза. Слабый разработчик знает термины, но никогда не применял их осознанно. Сильный обычно говорит: «У меня был класс загрузчика, и я специально спрятал внутреннюю логику ретраев, потому что снаружи она никому не нужна» — и я сразу понимаю, что человек писал код руками, а не конспектировал курс.

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

Ещё три быстрых маячка. «Расскажите о своём последнем проекте» — слабый описывает список своих задач в трекере, сильный объясняет, какую проблему решал продукт и как его решения повлияли на бизнес. «Что вы делаете, когда задача непонятна?» — слабый отвечает «сразу пишу в чат» или «начинаю кодить и разберусь по ходу», сильный формулирует гипотезу, собирает данные и только потом задаёт точный вопрос. «Как вы проверяете свой код?» — ответ «ну, тестировщики найдут» говорит мне больше, чем весь блок про алгоритмы.

И, пожалуй, самый показательный вопрос из всех: «Расскажите о своей самой крупной ошибке». Слабый кандидат либо «не может вспомнить», либо пересказывает чужой провал. Сильный честно называет свою, объясняет, как заметил проблему и что изменил в процессе, чтобы это не повторилось. То же с вопросом про рост: ответ «хочу стать сеньором» ничего не значит, а ответ «хочу научиться проектировать системы под нагрузку и вести джунов» рисует вполне живого человека с планом.

Теперь честно про свою сторону баррикад. Я тоже ошибаюсь и иногда отказывал людям, которые потом прекрасно росли в других командах. Поэтому давно перестал искать единственно верные ответы и смотрю на три вещи: любопытство, честность про границы своих знаний и умение объяснять. Если кандидат говорит «я этого не делал, но вот как я бы подошёл» — это часто сильнее отрепетированного идеального ответа. И ещё один совет соискателям: задавайте встречные вопросы. Интервью — это разговор двух сторон, а не экзамен, где вы стоите у доски.

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