Як потрапити на стажування до Google

Тиждень тому ми розповіли про наших освітніх програмах , де у коментарях нам вказали на важливість стажувань та практичного досвіду. З цим неможливо не погодитись, оскільки теоретичні знання необхідно закріплювати практикою. Цим постом ми відкриваємо серію статей про літні стажування студентів: як хлопці туди потрапляють, що вони там роблять і чому це добре.

У першій статті я розповім, як успішно пройти всі етапи співбесід та потрапити на стажування до Google.

Як потрапити на стажування до Google

Пара слів про себе

Я студент 1-го курсу магістратури Пітерського кампусу Вишки, закінчив бакалаврат Академічного університету з машинного навчання. Під час навчання у бакалавріаті активно займався спортивним програмуванням, а також брав участь у різноманітних хакатонах. Про останні можна прочитати тут, тут и тут.

Про стажування

Спочатку я хочу трохи розповісти про те, як виглядає стажування в Google зсередини.

Кожен стажист, який приходить до Google, прив'язують до якоїсь команди. Це може бути команда, яка займається розробкою внутрішньої інфраструктури, про яку людина поза компанією нічого не чула, або продукту, яким користуються мільйони людей по всьому світу. Такими продуктами можуть бути відомі YouTube, Google Docs та інші. Оскільки розробкою цих проектів займаються десятки, а то й сотні розробників, ви потрапите до команди, яка спеціалізується на якійсь вужчій його частині. Наприклад, влітку 2018 року я працював над Google Docs, додаючи нову функціональність для роботи з таблицями.

Оскільки в компанії ви стажер, то у вас є менеджер, якого називають хостом. Це звичайний фул-таймер, який займається розробкою продуктів. Якщо ви чогось не знаєте, не можете вирішити чи зіткнулися з будь-якими проблемами, слід звертатися до нього. Зазвичай призначаються щотижневі зустрічі віч-на-віч, де можна обговорити поточну ситуацію в роботі над проектом або поговорити про щось, що зовсім не стосується справи. До того ж, хост — це один із тих людей, які оцінюватимуть виконану вами роботу за час стажування. Ще її оцінюватиме другий, додатковий, ревьюєр. І, звичайно ж, вони зацікавлені в тому, щоб у вас все вийшло.

У Google вам прищеплять, але це не точно, хорошу звичку писати диздок (design document) перед тим, як ви зібралися щось робити. Для тих, хто не знає, диздок - це документ, в якому викладається суть наявної проблеми, а також детальний технічний опис її вирішення. Диздок можна писати як для цілого продукту, так і для якоїсь однієї нової функціональності. Прочитавши таку документацію, можна зрозуміти, з якою метою було задумано продукт, і яким чином його було реалізовано. Також часто у коментарях можна побачити діалоги між інженерами, які обговорюють різні способи реалізації якоїсь частини проекту. Це дає гарне розуміння, з якою метою було ухвалено кожне рішення.

Особливість стажування полягає в тому, що ви маєте користуватися чудовими внутрішніми інструментами розробки, яких в Google величезна кількість. Попрацювавши з ними та поспілкувавшись з багатьма людьми, які до цього працювали в Amazon, Nvidia та інших широко відомих технологічних компаніях, можу зробити висновок, що ці інструменти мають великі шанси виявитися кращими серед усіх, що ви коли-небудь зустрінете у своєму житті. Наприклад, інструмент під назвою Google Code Search дозволяє не тільки переглядати всю кодову базу, історію змін кожного рядка коду, але також дає можливість навігації за кодом, до якого ми звикли в сучасних середовищах розробки, таких як Intellij Idea. І для цього вам потрібен лише браузер! Пов'язаний з цією ж особливістю мінус полягає в тому, що за межами Google цих інструментів вам не вистачатиме.

Що стосується плюшок, то у компанії круті офіси непогано годують, надають тренажерний зал, хорошу страховку та інші ніштяки. Просто залишу тут пару фоточок з нью-йоркського офісу:

Як потрапити на стажування до Google
Як потрапити на стажування до Google
Як потрапити на стажування до Google

Як отримати оффер?

Огляд

Тепер настав час поговорити про щось серйозніше: як потрапити на стажування?

Тут йтиметься не про Google, а про те, як це буває в загальному випадку. Про особливості процесу відбору стажерів у Google я напишу нижче.

Процес співбесіди в компанію, швидше за все, виглядатиме якось так:

  1. Заявка на стажування
  2. Контест на Hackerrank/TripleByte Quiz
  3. Скринінгове інтерв'ю
  4. Перше технічне інтерв'ю
  5. Друге технічне інтерв'ю
  6. Онсайт інтерв'ю

Заявка на стажування

Очевидно, що все починається з вашого бажання потрапити на стажування. Для цього ви маєте його висловити, заповнивши анкету на сайті компанії. Якщо у вас (або ваших друзів) є знайомі, які там працюють, то можна спробувати потрапити через них. Цей варіант є кращим, тому що допомагає виділитися з величезного потоку інших студентів. Якщо такої можливості немає, то подавайте самостійно.

Постарайтеся не сильно засмучуватися, коли вам на пошту надходитимуть листи зі змістом виду «ви такий класний, але ми обрали інших кандидатів». І тут у мене для вас є порада:

Як потрапити на стажування до Google

Контест на Hackerrank/TripleByte Quiz

Якщо ваше резюме сподобалося рекрутеру – через 1-2 тижні ви отримаєте листа з наступним завданням. Швидше за все, вам запропонують пройти контест на Hackerrank, де потрібно буде за відведений час вирішувати алгоритмічні завдання, або TripleByte Quiz, де потрібно буде відповідати на різні питання, що стосуються алгоритмів, розробки програмного забезпечення та пристрою низькорівневих систем. Цей етап є початковим фільтром у процесі відбору кандидатів.

Скринінгове інтерв'ю

Якщо випробування пройдено успішно, далі на вас чекає скринінгове інтерв'ю, на якому вам доведеться розмовляти з рекрутером про ваші інтереси та про проекти, які компанія пропонує стажистам. Якщо ви зацікавитеся, і ваш попередній досвід буде відповідати очікуванням компанії, то вам дадуть зелене світло. На мій досвід, це непередбачуване місце у всьому процесі, яке дуже сильно залежить від рекрутера.

Якщо ви впоралися із цими трьома випробуваннями, то основна частка випадковості вже позаду. Далі залишилися технічні інтерв'ю, які вже більше залежать від вас, а значить, ви більше можете вплинути на їх результат. І це добре!

Технічні інтерв'ю

Далі йдуть технічні інтерв'ю, які зазвичай проводять Skype або Hangouts. Але іноді зустрічаються екзотичніші послуги, що вимагають установки додаткового програмного забезпечення. Тому переконайтеся, що на вашому комп'ютері все працює.

Формат технічних інтерв'ю залежить від позиції, на яку ви співбесідуєтеся. Якщо йдеться про позицію Software Engineering Intern, то вам, швидше за все, запропонують пару алгоритмічних завдань, вирішення яких потрібно буде закодувати в якомусь онлайн редакторі коду, наприклад, coderpad.io. Також можуть поставити питання на об'єктно-орієнтований дизайн, щоб подивитися, наскільки добре ви розумієтеся на проектуванні програмного забезпечення. Наприклад, можуть попросити спроектувати простенький онлайн-магазин. Правда мені жодного разу не траплялося такого завдання, за рішенням якого справді можна було б судити про цю навичку. Наприкінці інтерв'ю вам напевно нададуть можливість поставити запитання. Настійно рекомендую поставитись до цього серйозно, адже завдяки питанням ви можете показати свою зацікавленість у проекті, продемонструвати свою компетентність у темі. Я зазвичай наперед готую список потенційних питань:

  • Як влаштовано роботу над проектом?
  • Яке складне завдання вам доводилося вирішувати останнім часом?
  • Який внесок розробника у підсумковий продукт?
  • Чому ви вирішили піти працювати у цю компанію?

Не завжди вас співбесідує людина, з якою доведеться працювати надалі. Тому останні питання можуть дати уявлення про те, що відбувається у компанії в цілому. Для мене, наприклад, важливо, щоб я мав вплив на кінцевий продукт.

У разі успішного проходження першого інтерв'ю вам запропонують друге. Від першого воно відрізнятиметься інтерв'юером і, відповідно, завданнями. Формат, швидше за все, залишиться таким самим. Після проходження другого інтерв'ю можуть запропонувати і третє.

Онсайт інтерв'ю

Якщо до цього моменту вам не відмовили, то на вас чекає онсайт інтерв'ю, коли кандидата запрошують на співбесіду в офіс компанії. Зазвичай воно складається з кількох технічних інтерв'ю та одного поведінкового. Під час поведінкового інтерв'ю ви розмовляєте з менеджером про ваші проекти, про те, які рішення ви ухвалювали в різних ситуаціях тощо. Тобто інтерв'юер намагається краще зрозуміти вашу особистість та детальніше розібратися у вашому досвіді. Деякі компанії, що проводять по 3-4 технічні співбесіди, замість он-сайту інтерв'ю пропонують віддалено пройти лише одну поведінкову.

Тепер залишається лише чекати на відповідь рекрутера. Якщо все пройшло гладко, то до вас обов'язково прилетить лист із довгоочікуваним оффером. Якщо оффера не буде - не засмучуйтесь. Компанії систематично відмовляють добрим кандидатам. Спробуйте ще раз податись на стажування наступного року.

Кодінг інтерв'ю

Так, стривайте… Ми ще не проходили жодних інтерв'ю. Ми лише дізналися як виглядає весь процес і тепер нам треба добре підготуватися до співбесід, щоб не прогаяти шанс приємно і з користю провести літо.

Існують такі ресурси як Codeforces, Topcoder и Хакерранк, Який я вже згадав. На цих майданчиках можна знайти велику кількість алгоритмічних завдань, а також надсилати їх на автоматичну перевірку. Це все чудово, проте мені швидше нагадує стрілянину з гармати по горобцях. Багато завдань цих ресурсах розраховані на тривалий час рішення, вимагають знання просунутих алгоритмів і структур даних, тоді як завдання співбесідах зазвичай такі складні і розраховані на 5-20 хвилин. Тому в нашому випадку значно більше підійде такий ресурс, як Код, Який і був створений як інструмент для підготовки до технічних співбесід. Якщо ви вирішите 100-200 завдань різної складності, то з ймовірністю у вас не виникне проблем під час інтерв'ю. З гідного ще є Facebook Code Lab, На якому можна вибрати тривалість сесії, наприклад, 60 хвилин, і система підбере вам набір завдань, на вирішення яких в середньому йде не більше години.

Ще багато хто радить прочитати книгу «Злом інтерв'ю з кодування». Сам я вибірково читав лише деякі її частини. Але слід зазначити, що багато вирішував алгоритмічних завдань у свої шкільні роки. У кого такого досвіду не було, все ж таки варто цю книгу хоча б перегорнути.

Також, якщо у вас у житті було мало технічних співбесід у закордонні компанії, то рекомендується пройти кілька пробних. Але що більше, то краще. Це допоможе вам впевненіше почуватися під час інтерв'ю і менше нервувати. Пробні співбесіди можна організувати на Коляска.

Поведінкові інтерв'ю

Як я вже згадав, під час поведінкової співбесіди інтерв'юер намагається докладніше дізнатися про ваш досвід та зрозуміти ваш характер. Що, якщо ви відмінний розробник, але не здатні працювати в команді? Боюся, що багато хто це не влаштує. Наприклад, вам можуть поставити таке запитання: «У чому полягає ваша слабка сторона?» Крім таких питань, вас попросять розповісти про проекти, в яких ви грали ключову роль, про проблеми, з якими довелося зустрітися, а також їх вирішення. Варто зазначити, що на перших хвилинах технічних інтерв'ю вас також можуть про це запитати. Про те, як готуватися до таких співбесід, добре написано в одному з розділів у Cracking the Coding Interview.

Google

Тепер, коли зрозуміло, як виглядає процес відбору стажистів у загальному випадку, і як готуватись до співбесід, настав час поговорити про те, як це працює у випадку з Google.

Список доступних стажувань можна знайти тут. Якщо ви плануєте поїхати на літнє стажування, варто почати подаватися вже у вересні.

співбесіди

Тут процес виглядає трохи незвично. У вас буде скринінгове інтерв'ю та два технічні. Якщо ви на них добре себе покажете, ви перейдете в стадію пошуку проекту. Вам потрібно буде заповнити досить довгу анкету, в якій ви вкажете всі свої поточні вміння, а також висловите переваги на тему проекту та локації, в якій хочете проходити стажування.

Дуже важливо добре та зі старанням заповнити цю анкету! Потенційні хости, які шукають собі у проект людей, переглядають доступних стажистів та влаштовують бесіди з тими кандидатами, які їм сподобалися. Вони можуть фільтрувати студентів за локацією, ключовими словами, галочками в анкеті, сортувати за балами за співбесіди.

Під час бесіди інтерв'юєр розповідає про проект, над яким має працювати, а також дізнається про досвід кандидата. Тут є чудова можливість дізнатися, як насправді виглядатиме процес роботи, адже ви спілкуєтеся з людиною, яка буде вашим хостом. Після співбесіди ви пишете листа рекрутеру з вашими враженнями про проект. Якщо проект вам сподобався, а ви сподобалися інтерв'юеру, то на вас чекає оффер. В іншому випадку, ви чекатимете наступних дзвінків, яких може бути 2-3-4 штуки, а може більше і не бути зовсім. Варто уточнити, що навіть якщо ви добре пройшли співбесіди, але на стадії пошуку проекту вас не обрала жодна команда (а може, навіть ніхто з вами і не розмовляв), то, на жаль, ви залишитеся без офферу.

Америка чи Європа?

Крім того, вам потрібно буде визначитися з тим, де у вас буде проходити стажування. У мене вибір був між США та в регіоні EMEA. І тут важливо знати деякі особливості. Наприклад, є відчуття, що до США потрапити складніше. По-перше, вам доведеться пройти додатковий контест тривалістю 90 хвилин, де потрібно буде вирішувати алгоритмічні завдання, а також ще одне 15-хвилинне опитування, що намагається розкрити ваш характер. По-друге, на мій досвід і досвід моїх друзів, на стадії пошуку команди вами цікавляться рідше. Наприклад, у 2017 році я мала лише одну розмову, після якої команда обрала іншого кандидата, і я не отримав оффер. У той час, як у хлопців, які подавалися до Європи, було по 4-5 проектів. У 2018 році мені знайшли команду у січні, що досить пізно. Хлопці працювали в Нью-Йорку, мені сподобався їхній проект, і я погодився.

Як бачите, зі США все трохи складніше. Але мені хотілося туди потрапити більше, ніж до Європи. Плюс у США ще й більше платять.

Як потрапити на стажування до Google

Що робити після?

Наприкінці стажування у вас є дві опції:

  • Отримати стажування наступного року.
  • Пройти дві технічні співбесіди, щоб отримати фул-тайм позицію.

Ці дві опції доступні за умови, що ви успішно впоралися зі своїм поточним проектом. Якщо це стажування у вас не перше, то вам навіть можуть запропонувати фул-тайм позицію без співбесід.

Тому виникає така ситуація, яку можна описати однією картинкою:

Як потрапити на стажування до Google

Оскільки це було моє перше стажування, то я вирішив пройти дві технічні співбесіди, щоб отримати фул-тайм позицію. За їхніми результатами мені погодилися дати оффер і почали шукати команду, проте я відмовився від цього варіанта, оскільки вирішив закінчити магістратуру. Google навряд чи пропаде за 2-3 роки.

Висновок

Друзі, сподіваюся, я доступно і зрозуміло розповів про те, як виглядає шлях від студента до стажера (І потім назад ...)і цей матеріал знайде свого читача, якому виявиться корисним. Як бачите, це все не так складно, як може здатися, потрібно лише відкинути свою лінь, свої страхи і почати пробувати!

PS Ще у мене тут є канальчик у возі, куди можна заглядати.

Джерело: habr.com

Додати коментар або відгук