Стажировка в Google 2 (Часть 1)

:

Когда-то я уже писала про то, как мне удалось постажироваться в Google в Швейцарии. Тогда же я обещала отчет о своей следующей стажировке — во второй раз в Googleplex в Калифорнии. И вот это время пришло — моя вторая стажировка подходит к концу, и мне есть что рассказать!: о)

Disclaimer: Мой личный опыт, как всегда, не претендует на универсальность.

И опять все сначала...

После того, как моя первая стажировка в Гугле закончилась, немного отдохнув и придя в себя, я решила, что этот опыт обязательно надо повторить. К счастью, я все еще числилась студентом дневного отделения своего ВУЗа (быть студентом — обязательное условие), мне было (и есть) меньше 34 лет, поэтому всем формальным критериям я удовлетворяла. После чего я попросила знакомого, который работает в Гугле, послать мое резюме на рассмотрение, меня рассмотрели и написали мне стандартное гуглописьмо «Здравствуйте, мы хотим с вами пообщаться по поводу возможности стажировки...».

Вместе со вступительным письмом мне прислали кучу всяких ссылок на онлайн бланки. Часть из них была бюрократическая — мне надо было написать, не числюсь ли я в террористических организациях, написать места учебы и работы с контактами и всякое такое прочее. Вторая часть была несколько интереснее — в ней предлагалось вписать, чем мне было бы интересно заниматься по трем пунктам: архитектурный уровень ( front-end или back-end), область компьютерной науки (искусственный интеллект, распределенные вычисления, низкоуровневое программирование, компиляторы итп.) и язык программирования.

Я выбрала распределенный back-end в С++. Правда, я довольно смутно представляла себе, что это такое, тем более что моя первая стажировка — это был даже не front-end, а чистый дизайн в Photoshop и с активным пользованием Javascript/HTML/CSS. Забегая вперед, хочу сказать, что я получила именно то, что хотела. И «было сложно, но мы смогли»: о).

Процесс

Для начала хочу отметить, что для тех интернов, которые уже были интернами, никаких поблажек не предусмотрено. Они проходят интервью наравне со всеми остальными. Вполне возможно, что для тех, кто возвращался на следующий год в ту же команду, и на предыдущей стажировки все были друг другом довольны, все было намного проще. Но это был не мой случай — я собиралась поехать даже не то, что в другую команду, а в совершенно другую страну.

Итак, после того, как я заполнила все бланки, мне опять написали и назначили 2 телефонных интервью по 45 минут. Поскольку интервьюировалась я в Калифорнию, то звонили мне инженеры прямо из Гуглплекса. Посему интервью мне поставили довольно поздно по местному чешскому времени. На 20.00 и 20.45. К счастью, многие программисты, и я в том числе — совы, поэтому интервью вечером — это было самое то!

До интервью у меня оставалось дней 10 и я начала готовиться. Для тех, кому интересно, можно почитать мой давний пост про интервью. А для тех, кто ниасилит многабукав, краткое содержание моей подготовки было такое:

  • Я прочитала книгу Шеня «Программирование: Теоремы и задачи» и порешала задач из нее по максимуму. Эту книгу можно найти и скачать и она очень хороша для подготовки к таким интервью.
  • Я просмотрела много задач с сайтов careercup.com и geeksforgeeks.org
  • Я по возможности повторила все, что было написано у меня в резюме — ну та тот случай, если бы у меня вдруг спросили «А чем TCP отличается от UDP?» или «А опишите-ка ваш любимый паттерн проектирования»

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

Интервью

Интервьюеры в Гугле совершенно разные. Есть такие, которые ответственно подходят к процессу, заранее посылают онлайн документ, куда будет писаться код, звонят вовремя и у них готово 10 вопросов — на случай, если кандидат окажется гением. А если полные противоположности — документа нет, звонят поздно и создают впечатление некоторой неподготовленности.

Мне на интервью попались оба эти варианта. Первый интервьюер позвонил мне вовремя, а за 20 минут до интервью выслал документ, куда мне надо было писать код. В то время как второй — позвонил через 10 минут с извинениями, что про меня он забыл, и код мне в итоге пришлось диктовать по телефону. Да-да, именно «скобка открывается, инт и, инт жи, скобка закрывается»: о). Ну, по крайней мере было нескучно.

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

Еще хочу отметить такой момент. Поскольку в последнее время в интернете развелось много сайтов, которые занимаются публикацией и разбором вопросов с интервью, то быть просто умным уже далеко не достаточно. Просто есть вопросы, которые на самом деле далеко не простые — например, string rotation без использования дополнительной памяти. И если человек не знает решения этой задачи, то не факт, что ему будет просто до него додуматься. В то же время, поскольку эта задача встречается на всех возможных сайтах с вопросами для интервью, те, кто минимально утрудился подготовкой (а таких совсем немало), будут знать решение. И когда интервьюер увидит 9 человек, которые сходу скажут решение (да, они его знали), и одного, который видит эту задачу впервые и долго думает, то у этого одного нет шансов.

Это, конечно, мое субъективное мнение, но интервью в Гугле уже не «интервью для гениев» (ну и не только в Гугле, для справедливости). А просто экзамен с большим списком вопросов. Кто подготовился — тот и молодец. А кто не подготовился, даже если он объективно умнее того, кто все наботал, может оказаться в пролете. Так что если вы подумываете пройти интервью в Гугл, то не стоит недооценивать фактор подготовки и набивания руки. Если у вас хорошо работает соображалка, то этого может быть совсем недостаточно.

После интервью

В США процесс рекрутинга работает намного четче и быстрее, чем в Цюрихе (про другие офисы — не в курсе). Я не берусь судить, связано ли это с тем, что в Гуглплексе больше рекрутеров, или с тем, что в США принято работать больше и продуктивнее, но после интервью прошло полторы недели и у меня на руках уже было предложение на стажировку. В то время как в Цюрихе процесс длился раза в 2 дольше.

Еще мне очень повезло с рекрутером — она всегда отвечала в течение 12 часов и постоянно держала меня в курсе того, что происходит. После некоторого опыта общения с рекрутерами (не только в Гугле, но и в других компаниях), могу сказать, что это очень большая редкость — на моей память были случаи, когда мне не отвечали вообще или отвечали через 2 недели на вопрос с пометкой «Срочно». Так что хороший рекрутер — это, скорее, исключение, чем правило.

Но это так, лирическое отступление: о). После того, как прошли телефонные интервью, кандидатов начинают предлагать разным командам. Рекрутер собирает всю информацию о кандидатах — резюме, отзывы интервьюеров — и, в соответствии с пожеланиями потенциального интерна, рассылает его информацию в несколько команд. После этого будущий менеджер интерна собеседует своих потенциальных интернов и выбирает себе кого-то одного. Или никого не выбирает, но это, думаю, бывает редко.

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

Готовимся к переезду

Ехать на стажировку в Гуглу очень просто. Гугл помогает решить вопросы с визой и присылает все нужные бумажки FedEx на дом. Гугл проплачивает все расходы на переезд (фиксированной суммой, которая покрывает все и еще что-то остается). Гугл, правда, не помогает решать жилищный вопрос и резервировать самолет. Но при наличии минимальных социальных навыков это тоже не проблема — особенно в Калифорнии: о).

В процессе подготовки Гугл также создает специальную группу для интернов. Туда можно писать свои вопросы, искать и предлагать жилье — по моему опыту группа оказалось крайне полезной штукой. Еще до того, как я приехала, я уже знала много чего о том, как и что в офисе, когда ходят автобусы и куда лучше ходить за покупками: о).

И, кстати, в 99% стажеров в США набирают из американских и канадских ВУЗов. Я не знаю, почему так — то ли люди из других стран не хотят так далеко ехать, то ли американскому Гуглу не хочется особо набирать себе иностранцев и делать им визы. Я скорее склоняюсь к первому — потому, что канадцам тоже нужны визы J-1 и Гугл их берет без проблем.

Про виды интернов

Поскольку Гуглплекс раз в 10 больше Цюриха, то и команды тут сидят совершенно разные. Поэтому если в Цюрихе все интерны были одного вида — Engineering intern, то в Калифорнии дело обстоит намного запутаннее.

  1. Engineering interns — это обычные интерны и таких тут больше всего. В их задачи обычно входит написать какую-нибудь утилитку, которая сразу упростит всем жизнь.
  2. Research interns — это интерны, которые утилиток не пишут, зато исследуют всякие разные алгоритмы и их применимость в Гугле. Код они пишут обычно в стиле spagetti, но это прототипы, поэтому им можно (в отличие от engineering interns). Зато им надо написать Google research paper по результатам своего исследования.
  3. Operations interns. Operations — это команда, которая следит за ходом офиса. Как сделать так, чтобы везде была оптимальная температура, чтобы всем гуглерам хватало еды и все в таком же духе. Один известным мне интерн этой группы в качестве задания получил оптимизировать крышку какой-то водокачки, чтобы из нее испарялось меньше воды. По-моему это очень круто и очень жаль, что я не знаю подробностей :o)
  4. Designer interns, Testing interns — ну тут все понятно. Почти то же самое, что и engineering intern, только с уклоном в какую-то конкретную специфику.
  5. Linux engineering interns, Site reliability interns — вообще не представляю чем они занимаются. Но знаю, что они существуют!

Есть еще, конечно, большая куча non-engineering interns — маркетинг, продажи, продуктовый менеджмент, hr…

И еще пара замечаний

  1. На самом деле ограничение по возрасту 34 года не совсем обязательно ставит крест для тех, кто старше. Я знакома с двумя интернами (один из которых канадец и делал себе визу), которым больше 34.
  2. Мне кажется, что желание команды взять себе интерна важнее телефонных интервью. Я знаю про один случай, когда команда буквально «выписала» себе интерна. Просто этот человек как часть своего PhD написал какую-то систему, которую пользовали в Гугле. И они решили этого человека взять на стажировку. Я не знаю, проходил ли он интервью, но я сильно уверена, что его знание этой системы были для Гугла намного важнее, чем способность ответить на вопрос про string rotation, что для него было очень большим плюсом.
  3. Еще один интерн прошел интервью с не очень хорошим результатом. Но у него были отличные знания в одной отдельно взятой области, поэтому его с руками оторвала команда, которая этой областью занимается (насколько я поняла, найти хорошего специалиста в этой области было для них довольно проблематично).

Продолжение тут