В последней части моего доклада я расскажу о жизни стажера в штаб-квартире Google, об офисе и, собственно, о самой стажировке.
Моя команда Когда я подал заявку на стажировку, я указал, что меня интересуют программирование распределенных систем, C++ и бэкенд. Рекрутеры учли мои пожелания и, несмотря на то, что в моем резюме было полно всяких веб-разработок, мою кандидатуру отправили в бэкенд-команду Ads. Для тех, кто в танке, это люди, которые разрабатывают серверную часть для обслуживания Google Ads — например, поиска и ранжирования подходящей рекламы.
После окончания собеседования у меня состоялся разговор с потенциальным менеджером.
У меня сложилось впечатление, что он, скорее, пытался убедить меня присоединиться к их команде, а не наоборот. Ну, изначально я воспринимал это интервью как просто формальность — проверку того, что я могу связать два слова и не упасть в обморок при слове «тупик».
Позже выяснилось, что менеджер провел собеседование с несколькими кандидатами и в итоге выбрали меня! К счастью, я тогда этого не знал - это сэкономило мне море нервных клеток :).
На самом деле в моей команде было 7 человек.
Из них двое из Индии, один американец, один канадец, один бразилец, один мексиканец и один немец.
Такое разнообразие национальностей вполне обычное явление.
Со всеми я без проблем нашла общий язык – все оказались веселыми и открытыми.
Ну, некоторые могут быть не такими простыми и забавными, но они все равно очень крутые.
Мой менеджер был из Индии.
Он оказался очень интересным профессионалом во многих отношениях.
Во-первых, он не думал стать программистом до 21 года.
То есть детство он не провел за компьютером, не программировал на ассемблере или Бейсике - до 21 года он вообще видел компьютер только на ТВ.
А когда говорят, что «терпение и труд все перетрут» - это 100% про него.
Всего за 10 лет он сумел не только стать отличным программистом, успевшим поработать с несколькими звездами Google и получить несколько наград Google «за выдающиеся достижения перед отечеством», но и научиться умению моментально решать любые задачи.
По крайней мере, он очень быстро решил все мои вопросы.
Здесь, однако, справедливости ради стоит отметить две вещи.
Во-первых, мне нравится решать свои проблемы самому.
И если я прихожу к менеджеру с проблемой, значит, проблема для меня как минимум нетривиальна.
А во-вторых, у нас с менеджером был немного разный подход к решению задач.
Умею думать, говорить и делать одновременно и программировать по гибкому методу — думаю, пока работаю и расширяю код по частям.
Мой менеджер умеет подойти к проблеме основательно — он сначала решит ее в голове, продумает все возможные проблемы, также решит их в уме, а потом за 3 часа напишет несколько тысяч строк кода, которые сразу будут работать как должно.
Фактически он может 3 дня ходить по офису, думать и вообще ничего не писать, а потом за пару часов написать решение.
К счастью, я быстро понял этот момент и постарался свести к минимуму обширные обсуждения — обычно у меня либо были самые конкретные мелкие вопросы, либо я уже показывал готовую работу.
Подход оправдал себя и по итогам стажировки мой руководитель остался мной доволен.
Мой проект Отказ от ответственности: К сожалению, никаких подробностей, поскольку соглашение о неразглашении не позволяет этого.
Моя команда кэшировала данные.
Например, когда люди часто ищут в Google слово цветы, то каждый раз лазить в базу данных неэффективно и проще сохранять такие запросы на специальном сервере и задавать их в первую очередь.
Конечно, здесь возникает масса проблем — что именно кэшировать, как синхронизировать кэш и базу данных, как делать комбинированные запросы (например, если кто-то набрал одновременно цветы и одежду).
Вот они и занялись решением всего этого многообразия.
У меня появился проект, который позволял мне легко получать статистику по запросам.
Фактически моей задачей было создать движок статистического анализа, который существенно упростил бы жизнь программистам.
Нам пришлось написать много кода, придумать много концепций, а потом убедить кучу менеджеров, что то, что мы здесь придумали (придумали и обсудили, конечно, всей командой) — это очень круто.
.
И что имеет смысл перейти на новый двигатель и постепенно отказываться от старого.
Это было сложно.
Во-первых, система, для которой я создавал движок, была очень большой и непонятной.
Во-вторых, я не умел программировать на C++.
В-третьих, от меня явно ждали чего-то ТАКОГО.
И в-четвертых, на меня давил трехмесячный срок.
Стоит ли говорить, что когда я первые 3 дня смотрел на код, который мне пришлось изменить и расширить, и ничего в нем не понимал, мне хотелось плакать и я начал жалеть, что ввязался во все это счастье.
Однако на четвертый день дело пошло, и я начал что-то кодировать.
Сначала было криво, потом стало красивее, и через месяц у меня уже был готов первый прототип.
Все это время мне очень помогали коллеги.
В мою работу они не вмешивались, и даже мой менеджер, убедившись, что я способен самостоятельно закодировать что-то вменяемое, довольно редко беспокоил меня словами «Ну и что? так как? когда мы запустимся? Все остальные товарищи по команде тоже были вполне отзывчивы и терпеливо отвечали на все мои вопросы, некоторые даже бросали все свои дела и шли со мной на мозговой штурм, если мне это действительно нужно, другие оставались до позднего вечера, чтобы проверить несколько тысяч строк моего кода.
К концу стажировки мне удалось «догнать и перегнать» — то есть сделать даже больше, чем от меня ожидали.
Правда, результаты стоили мне довольно больших усилий.
Во-первых, я работал 60 часов в неделю (впрочем, почти все стажеры работали столько, а многие и того больше).
Во-вторых, пару раз мне приходилось сидеть в офисе по 15-16 часов, потому что нужно было успеть все до завтра (а завтра была презентация для высокопоставленного менеджера, так что другого пути не было).
В-третьих, пару раз мне пришлось все переделывать, потому что в какой-то момент команда единогласно решила, что мы пойдем другим путем :).
В-четвертых, мне пришлось пересмотреть свои планы по сдаче ГОСО в начале сентября и признать, что подготовиться к экзаменам у меня пока не получается (хотя все равно пришлось - но это совсем другая история).
В общем, я никогда в жизни так не уставал и это лето, при всех его плюсах, было очень утомительным.
Однако тут дело вовсе не в Гугле, а в том, что, видимо, в силу приобретенной ответственности я плохо переношу стресс — когда ставки высоки, время ограничено и облажаться нельзя.
Рабочее место В этом году офис меня мягко говоря не порадовал.
Место, где мы сидели, представляло собой переполненный бункер без солнечного света.
Более того, похоже, Google удалось найти самое худшее место во всем офисе для нашей команды.
Во всех офисах по всему миру.
Маленькие, душные кабинки на 5 человек, куда постоянно кто-то заходит что-то обсудить и, на мой взгляд, там невозможно жить без звукоизолирующих наушников.
Причем, направо и налево офис выглядел ничего подобного, в мире не повезло всего около 30 людям, среди которых был и я.
За свою жизнь я работал в 6 офисах и могу с полной уверенностью сказать, что тот, который мне достался этим летом, был худшим из этих шести.
И он выигрывает с большим отрывом :).
Но не думайте, что у Google все плохо.
Офис Google на 99% красив.
Но все равно остался тот несчастный 1%, в который я попал.
Тем печальнее мне было ходить по офису и смотреть, как в светлых и просторных комнатах сидят другие гуглеры :).
Однако большую часть моего времени по-прежнему занимал проект, поэтому грустить мне было некогда.
Офис Офис в США намного больше, чем где-либо еще.
И если в прошлом году в Цюрихе все самое интересное (игровая комната, чай-кофейня, терраса с видом на Альпы) было всего в паре шагов, так как офис был очень маленьким, то в этот раз мне пришлось прогуляться пешком.
около 5 минут, чтобы добраться до мороженого.
До бильярда тоже.
И он всегда был занят :).
Все интересное было рассредоточено на довольно большой территории, и добраться куда угодно можно было за 5-10 минут. Но здесь есть и большой плюс.
Если в Цюрихе человек мог за пару часов обежать весь офис и сказать, что он уже все видел и все знает, то в США можно все лето ходить по офисам и постоянно открывать что-то новое.
В одном потрясающая футуристическая кухня, в другом богатый выбор настольных игр, в третьем большой выбор мороженого.
Ну и пара картинок для привлечения внимания: В офисе полно всяких крутых вещей.
Вот, например, стилизованный телефон.
Также на территории есть специальный магазин, где можно купить множество вещей с логотипом Google – от футболок и шапок до настольных ламп.
Вы можете взять с собой в офис собак.
И многие гуглеры этим пользуются.
Поэтому, если вам вдруг посреди рабочего дня захочется потискать маленькую собачку, погуляйте немного по офису и вы обязательно найдете четвероногого друга по душе! :)
Проходя по коридору, вы легко можете наткнуться на коробку сладостей.
Сладости, конечно, для всех.
В коридоре полно всяких стульев.
Некоторые из них даже умеют делать массаж.
А это одно из кафе Google. Еда там, конечно, бесплатная и неограниченная.
Таких кафе в Google несколько десятков (некоторые, правда, значительно больше) и Google даже тщательно подсказывает, в какие кафе стоит пойти любителям здоровой (или нездоровой) еды.
Ну, просто гуляя по офису, всегда можно наткнуться на интересные вещи.
Это вот так.
Развлечение
Чтобы стажеры чувствовали себя счастливыми и удовлетворенными, в Google есть специальная команда.
В ее обязанности входит придумывание и организация всевозможных развлечений и решение организационных вопросов.
Похоже, что в их обязанности входило упоминание в каждом электронном письме о том, как они рады, что мы пришли на стажировку.
Правда, за последний месяц тон немного изменился - и в каждом письме они упоминали, что очень грустят, что мы скоро их расстанемся :).
Надо отметить, что группа стажеров очень хорошо развлекала.
По крайней мере, я регулярно получал письма с приглашениями присоединиться к чему-то очень интересному.
Поскольку я регулярно ходил куда угодно со своей командой и у меня не было много времени из-за моего проекта, я никогда не удосуживался тусоваться со стажерами.
Но, судя по отзывам коллег, некоторые из них были весьма забавными.
А вот с организационными вопросами кто-то явно что-то не продумал.
У меня был ряд стандартных вопросов – что-то о визе, о выплате зарплаты, о том, что делать в ситуации XYZ. А координаторы не смогли ответить ни на один из них и предложили мне поискать кого-то самостоятельно.
С учетом того, что я был стажером, а они уже несколько месяцев работали в компании со стажерами, логично было бы ожидать, что они хотя бы составят для себя список (типа «Вопросы по визам - присылайте стажер к Паше, вопросы о деньгах - отправь стажера к Маше"), а на самом деле они мне написали о том, как они рады, что я им пишу, но с моим вопросом, увы, мне помочь не смогли.
Окончание стажировки Срок стажировки ограничен 14 неделями.
Теоретически стажировку можно продлить на пару недель — для этого менеджеру нужно написать кому-то там письмо и объяснить причины.
Но даже с учетом продления он не превысит 16-17 недель.
В последний день у нас отобрали бейджи и попросили вернуть всю выданную нам экипировку и велосипеды (да, мы все лето катались на гугловских велосипедах).
Нас также попросили прокомментировать, что нам понравилось, а что нет, и на этом стажировка закончилась.
Правда, есть пара моментов, о которых стоит упомянуть.
Во-первых, те стажеры, которые в самое ближайшее время заканчивали университет, могли подать заявку на так называемую конвертацию стажеров.
Те стажеры, которые довольны командой, проходят два дополнительных собеседования.
Вместо еще трех интервью используются отзывы коллег, типа «Хороший товарищ, ответственно подошел к поставленной перед ним задаче».
Устроиться на работу в Google через стажировку несколько проще — хотя бы потому, что если человек действительно умный, то за несколько месяцев он сможет проявить себя.
И это несколько снижает элемент случайности во время собеседования.
Для тех, кто не заканчивает университет, можно изъявить желание приехать на стажировку еще раз.
Если коллектив доволен своим стажером и они собираются воссоединяться через год, то обычно это делается без проблем и без дополнительных собеседований.
Хотя все, конечно, индивидуально.
Заключение Если у вас есть вопросы — как, что, когда и т. д. — то не стесняйтесь задавать их в комментариях.
Постараюсь из этих вопросов составить FAQ и прикрепить его к посту.
Ссылки Моя стажировка в США - часть 1 , часть 2 Моя стажировка в Цюрихе - часть 1 , часть 2 Мои мысли об интервью Часто задаваемые вопросы или я хочу стажировку
- Обязательно ли идти на стажировку летом? Или это можно сделать в любое другое время?
Стажировки проходят круглый год и вы можете поехать в любое удобное для вас время.
Хотя большинство людей, конечно, едут летом.
Ну и, соответственно, летом больше развлечений, лекций и всего прочего.
- Вам нужно быть гуру C++ или Java?
Совсем не обязательно.
Например, во время собеседований вы также можете писать решения на Python или C#.
Вам нужно знать хоть какой-то язык (даже Haskell), но это не обязательно должен быть C++ или Java. Но вот в чем дело: большинство проектов делается на этих двух языках, поэтому вам все равно придется учить их в Google.
- На каком языке проводятся собеседования? Насколько хорошо вам нужно знать английский язык?
Собеседования проводятся на английском языке.
Вам необходимо знать язык достаточно хорошо на разговорном уровне.
Акцент особой роли не играет (но важно, чтобы интервьюер понимал, что вы ему говорите), но говорить и понимать нужно достаточно свободно.
- Что спрашивают на собеседовании?
Они спрашивают самые разные вещи.
Советую посмотреть сайт Carecup.com , где люди публикуют конкретные вопросы, которые им задавали во время собеседований (в том числе в Google).
Кроме того, если вы будете искать, в Интернете полно опыта прохождения собеседований в Google, и вы также можете найти там информацию и советы.
- Как подготовиться к собеседованию? Хотите узнать подробности реализации TCP/IP? Обязательно ли быть гуру Unix?
Обычно детальные знания чего-либо во время собеседования не проверяются (если только вы не претендуете на должность гуру Unix и не напишите об этом в своем резюме).
Большинство вопросов связаны с разработкой алгоритма, который делает то-то и то-то, и написанием кода для его реализации на бумаге (или в Google Docs).
Стандартные алгоритмы и код для них (поиск циклов в графе, next/prev в бинарном дереве, обращение связанного списка, поиск дубликатов в строке и т.д.) нужно уметь писать без единой ошибки, даже если вы проснулись среди ночи.
Описан мой опыт подготовки.
- Чертеж я отправил через сайт. Как долго ждать ответа?
Обычно 2-3 недели.
Но их, конечно, больше и меньше.
-
Нятый, Виллем Де
19 Oct, 24 -
Пошаговая Подготовка К Pmp
19 Oct, 24 -
Опрос: Сколько Часов Мы Могли Бы Сэкономить?
19 Oct, 24 -
Атмосферное Рассеяние В Видео The Blacksmith
19 Oct, 24 -
Задача Расставить Фишки В Игре «Тетрис».
19 Oct, 24