Отъявленный программист: лайфхакинг из первых рук - Игорь Савчук
Шрифт:
Интервал:
Закладка:
Поэтому, суммируя все, можно сказать, что высшее образование все-таки желательно.
Хорошо, предлагаю больше не задерживаться на телефонной фазе (которую мы описали лишь в целях ориентации читателя в общей последовательности процесса). Далее хотелось бы сделать серьезный акцент на главном — на очных интервью, где, собственно, и происходит не только самое важное с точки зрения дальнейшей судьбы кандидата в компании, но и по-настоящему сложное и интересное. Итак, предположим, вы получили приглашение на очные интервью. Предлагаю дальше следовать в очередности ваших курсов, где первое, что вы рассматриваете, — это эмоциональный фон и самоконтроль.
Мне приходилось часто слышать от других, что первое очное интервью — решающее во всей серии. Я считаю, что это субъективное мнение. Психологическое накручивание себя, неуверенное владение разговорным английским языком и сложные нестандартные задачи негативно накладываются на «ощущение судьбоносности момента» (как точно выразился один из участников курсов). Все это действительно порой приводит к тому, что некоторые даже очень сильно подготовленные участники сходят с дистанции уже после первого провального собеседования. Лично у меня никогда не было такого разрушительного эмоционального эффекта, возможно, потому что я изначально не планировал работать в Google, и когда рекрутер сам вышел на меня, я просто решил принять участие в этом неожиданном приключении и посмотреть, что будет дальше.
Поэтому в этом пункте я хотел бы обязательно предостеречь: не нужно терять дух и психологическое равновесие даже в необычном для любого новичка окружении. Оказавшись в недрах поискового гиганта, не нужно представлять себе сотрудников Google как неких богов во плоти — по моей, возможно, субъективной оценке, их уровень подготовки на деле весьма и весьма разный.
Проиллюстрирую эту мысль на примере. Мне трижды (разные интервьюеры в серии) задавали вопрос о реализации hash map — похоже, это вообще рекорд по степени важности этой темы в глазах Google. При этом любопытно, что у первых двух мое объяснение прошло на ура, тогда как третий ведущий остался недовольным. На мою просьбу объяснить, в чем же моя ошибка, он ответил отказом, лишь посоветовав «почитать про hash map позже и хорошо отдохнувшим».
Заинтригованный, я перечитал все, что сумел найти, но ничего нового для себя не открыл. Даже если предположить, что это чисто личностная оценка, не нужно этого бояться: интервью построены так, что конечное решение должно как можно меньше определяться мнением лишь одного отдельного человека (хотя нужно признать, что резко негативная аргументированная оценка даже одного ведущего может поставить на вас крест). Позже другой рекрутер прокомментировал этот эпизод в том смысле, что ему вообще удивительно, что моему ответу дали оценку вслух, потому что интервьюирующим запрещено озвучивать какую-либо частную оценку вообще. От себя замечу, что, как правило, это условие выполняется, добавляя интригу в довольно нервный марафон из нескольких собеседований.
Давайте опишем ход такого очного собеседования более конкретно. Сколько их в серии и как они проводятся?
Количество очных интервью обычно колеблется от трех до восьми. В зависимости от конкретного офиса и принятых там правил, эта серия либо растягивается на 2–3 дня (редко), либо упаковывается в один день (чаще всего). Надо отметить, что само по себе такое интервью очень интересно неравнодушному к своей профессии специалисту вне зависимости от конечного результата. Сразу хочу заметить, что времени от окончания интервью до принятия решения может уйти очень много, не нужно принимать это на свой счет.
Итак, во всех случаях, что я знаю, первое интервью начинались в первой половине дня, в моем случае — в десять утра. Это очень плотный марафон из собеседований, когда один «свежий» специалист сменяет другого, когда тот закончил. В середине дня делается обязательный перерыв на обед в фирменной столовой. В хороших случаях применяется хоть какое-то разделение ролей. Например, первый гуглер спрашивает вас о предыдущих проектах, самых интересных задачах, с которыми приходилось столкнуться, второй — только про алгоритмистику, третий задает чисто технические вопросы по Java и фреймворкам, четвертый — «а нарисуйте мне классы для такого-то типового проекта» и т. д. На каждого уходит минут 30–50, соответственно, общее собеседование может сильно растянуться.
Мое интервью перед устройством в Google состояло из серии 5 интервью по 45 минут. С перерывом на часовой обед на это ушло 6 часов. Перед началом каждого 45-минутного «сеанса допроса» вам предлагают сходить за водой-чаем-кофе или в туалет на 10 минут, советую воспользоваться этими предложениями, чтобы немного развеяться и взбодриться.
Иногда интервьюеры ведут журнал вопросов, чтобы избежать повторений. Но это опять же в лучших случаях, чаще всего информацией между собой они не обмениваются и роли никак не распределяют, поэтому часты повторы.
Для чего это делается и как вести себя, если тебя третий раз спрашивают одно и то же, как в случае вашего примера с hash map?
Это не редкость. Теоретически повторы допускаются для того, чтобы исключить субъективность в оценке кандидата конкретным человеком. Правильная модель поведения — подчеркнуто вежливо уточнить: ваш коллега задавал этот вопрос ранее, следует ли повторить мой ответ еще раз?
Наверное, подобные интервью — сильный эмоциональный опыт со всех точек зрения?
Первый раз, конечно, навсегда остается в памяти: раньше вы видели эту великую компанию в обезличенном виде, через призму ее сервисов, сейчас же за чашечкой кофе обсуждаете технологии непосредственно с ее ведущими разработчиками (сами сотрудники называют это чувство «Google experience»). Заблудиться в самой компании будет сложно — с самого утра прибыв в офис (лучше не приходить сильно рано или с опозданием, идеально за 5 минут до назначенного времени), вы сообщаете цель своего визита и регистрируетесь на стойке ресепшен. После чего вам выдают персональный бэдж и вызывают вашего рекрутера, который встречает вас с распростертыми объятиями и сияющим лицом, будто вы знакомы как минимум последних лет сто.
В первый такой визит достаточно типична небольшая экскурсия по огромному кампусу Google, угощение бесплатными напитками и печеньем, равно как и разговоры не о чем, достаточно типичные для двух совершенно незнакомых людей. Все это быстро заканчивается демонстративным поглядыванием рекрутера на свои часы и холодящей дух фразой: «Ну что, будем начинать?»
Из ваших лекций я знаю, что один из типичных акцентов подобных интервью — «низкоуровневые дискуссии обо всем на свете». Можно привести пару примеров из жизни?
Самая большая часть интервью — это техническое обсуждение выбранной вами предметной области. Очень часто вопросы могут лежать за пределами сферы компетенции рассматриваемой должности, к этому нужно быть готовым. Например, мой хороший знакомый претендовал на должность SRE, [1 Эквивалентно нашему «системный администратор»] при этом его спрашивали о специфике некоторых системных вызовов в API Linux и специфике fork() в разновидностях Unix, что требует не только теоретических знаний сисадмина, но и хорошего практического опыта в области системного программирования.
Также привожу для примера похожий вариант, который имел место на моем втором собеседовании на должность программного разработчика (SWE). Как правило, на таких интервью присутствует несколько человек, последовательно выполняя роль ведущего. В моем случае интервью вел лишь один инженер, который после короткого вводного приветствия и стандартных расспросов (что мне нужно от жизни и от Google в частности?) быстро изложил суть первого задания:
Предположим, обычный пользователь набирает в адресной строке своего любимого браузера http://disney.com и тут же получает в ответ страницу. Теперь давайте обсудим как можно более подробно, что происходит в промежутке между нажатием клавиши Enter и полным отображением страницы в браузере.
Ведущий демонстративно посмотрел на наручные часы и предупредил: «Сейчас без четверти два пополудни, у меня есть время до пяти часов вечера, думаю, если поспешим, мы должны уложиться». Отмечу лишь, что в моем случае я окончательно запутался, когда мы дошли до разбора деталей процедуры TCP handshaking, затем также споткнулся на этапе рендеринга страниц движком браузера. «А жалко, — сообщил улыбающийся интервьюер, — я надеялся, что мы успеем еще повторно прогнать все это для случая https». Поэтому будьте готовы к максимальной детализации (и неизбежному при этом выходу за рамки вашей специализации). В описанном случае, обсуждая работу браузера и web с прицелом на позицию веб-разработчика, в итоге мы «провалились» до уровня работы ethernet-фреймов и пограничного протокола маршрутизации BGP.