Хочу работать в Google: Частая ошибка кандидатов на интервью

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

Допустим, вы знаете Python. Вы успешно прошли телефонные интервью и через пару недель у вас очные интервью. Вы где-то читаете, что основные языки Google – это Java и С++, которые вы учили лет 10 назад в университете. Вы решаете кой-чего вспомнить перед интервью и на одном из интервью написать код, например, на С++, а на остальных четырех писать на Python, который вы хорошо знаете. Ну, чтобы показать, что вы не просто хороший кандидат, но еще и многосторонне развитый. И вот вы читаете книгу “Изучаем С++ за 2 недели”, пишете на нем пару программулек, и вроде как вы готовы.

В день интервью первые три интервью вроде как прошли неплохо. Не супер-блестяще, но по вашим ощущениям вполне положительно. Вы решаете блеснуть и показать “А вот я тут еще С++ знаю”, и на вопрос интервьюера, какой язык бы вы хотели использовать и ваш ответ “C++” задает вам задачку на разогрев “А напишите-ка мне, например, memmove“. Для тех, кто в танке – это довольно специфическая для языка задача, которая требует хорошо набитой руки для работы с указателями и памятью. Иначе очень просто понаделать ошибок.

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

Когда дело доходит до hiring committee, они видят 3 отзыва: “нормальный чувак, можно нанять”, один отзыв “ну вообще никакой”, и один отзыв “ну, я не уверен, вроде не то, чтобы плохо, но и не то, чтобы супер”. В комиссии кто-то во время обсуждения произносит фразу “Ну ребята, ну он даже memmove написать нормально не может на языке, который он выбрал сам, о чем тут можно говорить? К тому же есть еще одно интервью не очень сильное”, и все остальные понимают, что с таким аргументом, в общем-то, сложно поспорить, несмотря на другие положительные сигналы. В итоге кандидат получает рекомендацию “Видно, что кандидат неплохой, но в этот раз давайте не будем его нанимать”.

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

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

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