Игорь Савчук - Отъявленный программист: лайфхакинг из первых рук
Сейчас, отбирая кандидатов для работы в Амазон, при прочих равных условиях я выберу человека, который хотя бы раз серьезно вляпался в неприятности и самостоятельно выкарабкался, нежели самонадеянного везунчика. Если кандидат утверждает, что никогда не совершал ошибок в прошлом, то для меня это показатель недостаточной зрелости. Те, кто наломал дров, но потом выпутался из сложной ситуации и сделал выводы, вряд ли будут стесняться говорить о прошлых ошибках и уроках. Гордость от того, кем ты стал и чему научился, будет намного перевешивать неловкость от признания самих ошибок.
Как ничего не упустить, не потерять контроль во всех подобных ответах-ситуациях, что важно знать на эту тему поведенческой психологии? Как минимум нужно знать, что существуют базовые паттерны построения красивых и логичных ответов (точно так же, как аналогичные существуют в программировании для структурирования логики кода для разных типовых случаев). Вместо того чтобы каждый раз перегружать себя предварительными размышлениями и ненужными спонтанными реакциями, нужно довести до автоматизма навык правильной и развернутой композиции ответов. Лично я считаю, что для подобного типа поведенческих вопросов идеально подходит шаблон SAR (Situation, Action, Response). Например, когда у вас спрашивают: «Что было самым сложным в вашем последнем проекте?», вы, следуя SAR, сначала описываете возникшую проблемную ситуацию, затем раскрываете суть вашего решения и в заключение описываете конечный результат всех предпринятых вами действий. Иногда в особенно сложных случаях уместно расширить вариант ответа до шаблонов STAR (Situation, Task, Action, Response) или SOARA (Situation, Objective, Action, Results, Aftermath). Это требует предварительных навыков и тренировок, но как результат вы научитесь говорить последовательно, ясно и убедительно. Извините, Джон, но для меня до сих пор кажется непонятным этот сильный акцент Google при найме на нестандартные и заковыристые задачи. Что это, для чего? Мне кажется, если лучше понять их мотивы, будет легче ощутить дух и требования этой великой поисковой компании. Среди ИT-рекрутеров хорошо известен парадокс, часто называемый парадоксом питона (The Python Paradox). Давайте попробуем спроецировать его на ситуацию с программистами, чтобы нагляднее ответить на этот вопрос. Для этого условно выделим в реальной жизни две полярно мотивированные группы программистов. Первая категория — это те, кто учится, чтобы получить в итоге хорошо оплачиваемую и престижную работу, и для этого они автоматически выбирают мейнстрим в своей отрасли, ибо это значительно повышает их шансы на выгодное трудоустройство. Вторая группа — те, кто рассматривает свою работу не с позиции материальной выгоды, но с точки зрения самовыражения или чистого творчества, при этом не боится учиться новому или проводить смелые эксперименты в поисках своего идеала, будучи полностью сосредоточенными на своей текущей задаче. В последнем случае парни полностью отвязаны от жесткой рыночной конъюнктуры, тогда как в первом зациклены на потенциальном вознаграждении. Поэтому в итоге вторые выбирают свои рабочие инструменты/методики по критерию «самое лучшее», что зачастую далеко не «самое выгодное или популярное», как это делают их коллеги-карьеристы из первой категории (универсалы-приспособленцы). Итак, парадокс питона гласит, что, учитывая описанную логику и делая ставку на вторую категорию специалистов «не от мира сего», компания получает в свое распоряжение гораздо более качественный и перспективный кадровый состав, более того, уже есть многочисленные практические доказательства и самые неожиданные экспериментальные подтверждения этого. Безусловно, Google лелеет этот принцип при найме специалистов — ранее я уже упоминал, как резко заинтересовались мною интервьюеры, когда я стал рассказывать о своих наработках в функциональном (Haskell и Yesod) и аспектно-ориентированном программировании, а также когда провел разбор проблематики и мифологии объектно-ориентированного программирования. Специально заостряю на этом внимание — я пытаюсь подчеркнуть холодную рациональность, стоящую за подобным эксцентричным и странным, с точки зрения внешнего обывателя, поведением компании. С другой стороны, хотелось бы развеять некоторые откровенные мифы, когда эту специфику чрезмерно гипертрофируют, часто рисуя интервью в Google как сплошной набор невероятных шарад и головоломок. Смею утверждать, что популярная пресса вносит определенную лепту в культивирование этого ложного образа. В качестве наглядного примера: если изучить один из недавних западных бестселлеров на эту тему — книгу Вильяма Паундстоуна (William Poundstone) Are You Smart Enough to Work at Google? Trick Questions, Zen-like Riddles, Insanely Difficult Puzzles, and Other Devious Interviewing Techniques, — может сложиться впечатление, что интервью в Google полностью состоят из шокирующих головоломок, крайне нестандартных и запутанных заданий. Чтобы сразу пояснить, о чем идет речь, приведу типичный образчик оттуда, который, по мнению автора упомянутой книги, один из самых популярных вопросов на собеседовании Google: Оцените количество пользователей Facebook, которые находились в этой социальной сети вчера с 11 до 12 часов (иногда, как вариант, уточняется город, из которого они были).По своему опыту, а также опираясь на нашу огромную эмпирическую базу клиентов, могу категорично утверждать, что процент подобных вопросов не превышает 1–5 % от всех заданий. Кроме того, опираясь на собственный опыт работы в Google, могу выдать инсайдерскую информацию из первых рук — эта практика была явным образом запрещена на уровне Google Hiring Committee примерно с 2005–2006 годов, когда стали активно бороться с подобными модными в то время «фейерверками креативности» со стороны рекрутеров на местах. Чтобы быть до конца понятым, о каком комитете идет речь? А также попутно для пользы дела поясните общий алгоритм принятия решений в исследуемой нами компании. Давайте подробнее остановимся на методике оценки кандидатов и внутренней структуре комиссий по найму в Google. Итак, давайте начнем разбираться с самого начала — кто берет интервью? У технического подразделения Google engineering даже сейчас нет вообще ни одного рядового менеджера по найму! Но эта большая работа вполне успешно выполняется. Как же так? Ответствен за это так называемый технический рекрутер (должность может звучать, например, так: Sr. Technical Recruiter). В подавляющем большинстве случаев он же работает в компании на штатной технической должности, например SRE. По последней причине таких рекрутеров часто именуют инженерами — верны оба определения, не следует здесь путаться. Подобное совмещение повально используется в Google, позволяя проводить по-настоящему глубокие и качественные технические собеседования. Такой инженер, согласившийся на подобную дополнительную работу, проходит специальные внутренние курсы, после чего начинает получать назначения на интервью (тесно связанные с его специализацией и направлением, которое он ведет по основной должности). Это обычно 1–2 собеседования в неделю, чтобы не слишком мешать его основной работе. Вы сказали, что они проходят какие-то курсы. Да, это внутренний профильный тренинг, после чего такому обычному «технарю» дадут право собеседовать. Вот самые общие логические фазы такого обучения. ? Юридическая часть — запрещенные вопросы и темы (то, за что потом на Google могут подать в суд и выиграть). ? Shadowing — пассивное присутствие на реальных интервью, проводимых опытными ведущими. После этого проводятся обсуждение и разбор всех приемов, примененных в прошедшем интервью. ? Методы ведения интервью и инструкции — общая теория. Обсуждение стандартов, приемов и структуры стандартного интервью. Правильные и неправильные подходы, советы. ? Корпоративный стандарт — кого ищет компания? Попытка описать образ «правильного» гуглера-новобранца. И самое главное — по каким косвенным чертам его легко заметить и выделить в общей массе? Тестирование на «гугловость». Хочу отдельно подчеркнуть, что в рамках общих корпоративных стандартов и утвержденной структуры интервью, примерных вопросов и задачек интервьюеру дается достаточно много свободы, чтобы сделать каждое интервью особенным и неповторимым в зависимости от его темперамента и усердия. Отсюда постоянно повторяющиеся вопросы, отдельные «подлянки» и элементы бардака, которые иногда имеют место на интервью в Google, несмотря на все усилия навести порядок со стороны этой огромной компании. Продолжаем погружаться в обозначенную тему — что происходит после того, как они прошли тренинги? Каждый такой рекрутер/инженер по результатам своего личного собеседования с кандидатом пишет персональный отзыв по заданному образцу, это примерно 1–2 страницы формата А4. Здесь больше перечисляются конкретные факты («не смог оценить алгоритм такой-то на сложность, даже после серии подсказок решение не было найдено»), любые личные оценки не приветствуются, хотя и встречаются («отличный общительный парень, с которым я был бы не прочь работать в одной команде»). И как кульминация такого «репорта» — выставляет потенциальному кандидату свою комплексную оценку в диапазоне от 1 до 4 баллов. При этом рейтинг складывается из следующих составляющих (для примера я взял близкую мне должность SWE — разработчик ПО):