Хочу работать в Google: Пошаговая интрукция для кандидатов в интерны

Всем привет! Осталось всего пара месяцев до открытия набора на летнюю стажировку в Google. И сейчас самое время начинать готовиться, если вы планируете подаваться.

Кто может подаваться на стажировку?

  1. Для стажировки нужно быть студентом в 2018 году. Обычно это требование сформулировано так – “Быть студентом после возвращения со стажировки”. Формально сюда может подойти и случай, когда вы возвращаетесь и на следующий день перестаете быть студентом (почти так было у меня – я вернулась и в течение месяце сдала ГОСы, получила диплом, и поехала обратно уже работать на полную ставку). Но сейчас это требование немного ужесточили, и нужно вернуться в университет и реально учиться. Вы можете продлиться на семестр, например.
  2. Нужно не собеседоваться с Google примерно 12 месяцев. То есть, если вы собеседовались на осеннюю стажировку, там, в мае, то на летнюю вы подаваться уже не сможете. Так как самое раньшее когда Google вас будет готов пособеседовать опять – это в следующем мае. Тут, опять же, можно попробовать получить новый опыт – например, если вы между делом постажируетесь в Facebook – то, может, можно податься и пораньше под соусом “Я много чему научился за эти 3-4 месяца”. Думаю, тут могут сделать и исключение. Если же в вашей жизни ничего особо не происходило и вы просто продолжали учиться, то наверняка правило 12 месяцев на вас распространяется.

Как я узнаю, что пришло время подаваться?

Мониторьте сайт google.com/jobs на слово internship. Как только увидите открытые позиции, значит можно подаваться. Обычно позиции открываются в сентябре-октябре. Выглядеть позиция будет примерно вот так, только там будет написано Summer 2017

owdDyiwrrsR

Как готовиться?

  1. Для начала подготовьте резюме. Написание резюме – это вообще отврезляющий опыт. Помогает понять, где именно не хватает достижений и, пока еще есть время, немного подправить ситуацию.
  2. Начните решать задачи online. Для начала hackerrank – разделы “Algorithms” и “Data structures”. На этом сайте очень удобный интерфейс, код можно писать прямо онлайн.kKgOGjpQyn1
    Там есть задачи уровня Easy, Medium, Hard. Начинайте с Easy (ну, разве что вы уже отлично решаете задачи и вообще олимпиадник-победитель по программированию), продолжайте через Medium и постепенно доходите до Hard. Решайте 10-15 задач в день.
    И обязательно решите хотя бы 50 задач уровня Easy, даже если вам это кажется лишним. Это помогает “разогреться” и поднять уверенность в себе.
  3. Когда вы уже более-менее уверенно будете поднимать задачи уровня Medium на hackerrank, переходите на leetcode. У них там есть Mock Interview – решение случайной задачи по таймеру.RXvktDrufqLЗадачи там можно пропускать. Я так понимаю, что если вы задачу пропустите, то в другой раз она может попасться на Mock Interview снова. Решайте задачи уровня Medium, иногда Easy когда устали, если получится – пробуйте решать и Hard. Продолжайте решать 10-15 задач в день (если получится больше – вообще круто).
    Кстати, не брезгуйте задачами уровня Easy. Там тоже бывают сюрпризы. Вот например, сегодня я пробовала что это вообще такое для статьи и решала задачу, где у меня упорно не проходил один тест. Я его крутила и так и сяк, вроде все просто, а он, зараза, возвращает 1 вместо 0. В итоге оказалось, что проблема в том, что abs(-2147483648)=-2147483648. Я немного офигела, но оказывается, что на самом деле abs(MIN_INT) is not defined. Раньше я с таким не сталкивалась, но буду иметь ввиду на будущее. В общем, никогда не знаете какие открытия вас ждут в простых задачах :).
  4. Когда вы уже неплохо решаете задачи на моках leetcode, переходите на interviewbit. Там задачи довольно сложные, сразу я бы за них браться не советовала, а вот после подготовки на предыдущих сайтах вполне можно.
  5. До интервью постарайтесь набрать 500-1000 задач, причем чтобы как минимум половина из них была medium/hard уровня.
  6. Обязательно посмотрите другие типы вопросов, которые задают на интервью, и которые не решение задач на алгоритмы. Это можно сделать на careercup и geeksforgeeks:
    FKQeji5OaUDMShKXSSYa0O
    Дело в том, что на интервью могут спросить и общие вопросы – про потоки и мьютексы, как работает DNS и всякое такое прочее. Почитайте вопросы которые задавали другим и удостоверьтесь, что вы хотя бы в общих чертах знаете, о чем идет речь.
  7. По вечерам перед сном или сидя в туалете можете читать Programming Pearls. Она вам поможет настроить свой мозг на правильную волну.

Как поднять свои шансы?

  1. Написать хорошее резюме, где по максимуму описать ваш опыт программирования. Если есть, дать ссылку на github.
  2. Постарайтесь поучаствовать в проекте, где вы напишете хотя бы 10 000 строк кода в каком-нибудь гугловом языке – C++ или Java. На крайняк Python. JavaScript тоже подойдет.
  3. Плюс, учтите, что рекрутер у вас будет спрашивать сколько кода вы написали. Поэтому пишите код, много кода пока есть время. Код решения задач на сайтах тоже считается. Чем больше опыта кодинга у вас будет, тем больше будут ваши шансы. Причем буквально – кандидат у которого написано, что у него 10 000+ строчек кода на Java выглядит интереснее того, у кого написано, что у него 2000-5000 строчек кода на Java (всю эту информацию вы будете предоставлять рекрутеру). Врать не надо, просто постарайтесь, чтобы когда придет время Ч, кода у вас было много. Если код будет на разных языках (10k+ на Java, 10k+ на JavaScrips), то вообще крутняк.
  4. Подавайтесь как можно раньше. Если вы подаетесь в самом начале, то количество хостов, которые вас увидят во много раз больше, чем если подаваться в конце.
  5. Хорошо готовьтесь (я написала выше как). Начните вот прямо сейчас.
  6. Подавайтесь через реферрала. Я могу быть вашим реферралом – можете мне написать на allagentis@gmail.com. Если вы решите подаваться через меня, то пишите сразу, не надо подаваться через сайт, а потом еще писать мне.
  7. Если есть возможность, то начните работать программистом. Хотя бы на частичную занятость. Кандидаты, у которых есть опыт работы, имеют больше шансов.
  8. Подавайтесь каждый год начиная со второго курса. Возможно, в первый год вы не пройдете потому, что хосты предпочитают более опытных кандидатов. Мой идеальный кандидат вот – PhD, который окончил университет 10 лет назад, потом работал программистом на проектах схожих с моими, потом ему стукнуло опять пойти учиться, и сейчас он идет стажироваться. Правда, я пока такого не нашла, но уверена, что он бы был нарасхват :). В любом случае – больше опыта (или лет обучения в университете) лучше, чем меньше.
  9. Не проходите интервью “вхолостую”. Хосты видят довольно много информации, включая результаты предыдущих интервью. Плюс, предыдущие интервью учитываются в среднем балле – то есть если вы в прошлом году прошли интервью ужасно, зато в этом круто, ваше среднее все равно будет считаться по прошлому году тоже. Готовьтесь в любом случае. Лучше не пройти, чуть-чуть не дотянув, чем “вообще ни в зуб ногой”.
  10. Удостоверьтесь, что в интернете у вас все нормально и нет компромата. Я, например, гуглю кандидатов перед тем как назначать им host matching. Пытаюсь понять, что они за люди, сработаемся ли.