Стажировка в Google. Еще один взгляд

:

Михаил Окунев, магистр Пермского Государственного Университета рассказывает о том как проходит его стажировка в Google. Запостить на Хабр он не может, так как нет учетной записи, поэтому за него напишу я. В его ЖЖ можно почитать о непосредственно жизни и отдыхе в Цюрихе и о стажировке в Microsoft в прошлом году

Сегодня я расскажу как выглядит мой примерный день на работе:

image

11.00-13.00. Где-то в это время я прихожу в офис.

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

Итак, я здороваюсь с командой, обедаю, выпиваю чашечку кофе. Завтраки-обеды-ужины здесь бесплатные. Кормят вкусно и разнообразно: всегда есть рыба, мясо, какие-нибудь макароны и десерт. И, главное — есть автомат для получения свежевыжатого апельсинового сока.

image

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

Кстати, про мой проект — как водится детали закрыты NDA, но в самых общих словах. Я работаю в команде Х, которая делает продукт Y, которым затем пользуется команда Z. Ни Х ни Y не гуглятся, но в целом речь идет про тонны данных, множество компьютеров, тысячи строк кода. У меня довольно интересный проект. Сейчас я дописываю кое-какую функциональность для Y, а затем буду его нещадно оптимизировать. Заодно подхватываю Java. После С++ идет как по маслу.

Дальше я погружаюсь в кодинг, временами общаясь с моим начальником, длится это часов до 8-9.

Выглядит это примерно так:

image

Рабочее место очень удобное — два монитора, даже больше чем в MS, линукс, эклипс. Знай — работай.
Кстати, о процессе работы. Сначала я переживал, что мне придется писать на незнакомом языке, осваивать местную инфраструктуру, но вроде никаких особых проблем это не вызвало. Проблемы оказались в другом — недостаток промышленного опыта сказывается и в результате я порой неправильно расставляю приоритеты. Скажем, однажды я целую неделю потратил на изучение и применении некоторой внутренней структуры данных (написанной, кстати, одним из бывших АСМщиков). Я долго не мог понять, как оно работает, пока не осознал, что тому же самому учил своих школьников в Кунгуре. Но суть не в этом. После того как я прочувствовал внутреннюю структуру, я понял, что могу немного напрячься и ускорить некоторый процесс в 5-10 раз, и уменьшить объем затрачиваемой памяти в 2 раза, за счет использования особенностей реализации. Если после прочтения этого предложения у вас появился блеск в глазах, то, вероятно, вы когда-то активно занимались АСМом. Я потратил несколько дней, реализовал и оно даже _почти_ работало. И вдруг, на выходных я осознал, что потратил время абсолютно зря, потому что:

1) система моя не real-time, и толку от того, что работает оно минуту, а не секунду никакого нет
2) реализация получилась существенно сложнее, чем в очевидном методе
3) главное — решение опиралось на использование внутреннего представления, вместо общедоступного интерфейса, а значит, при изменении внутренностей, придется менять и мой кусок кода

В общем, не так просто привыкнуть к тому, что скорость и оптимальность нужны лишь до тех пор, пока без них невозможна некоторая функциональность. Что можно провести пару дней над рефакторингом кода, который и так прекрасно работает, но зато мы разделим штуку А на две штуки B и С, работать с которыми в отдельности значительно удобнее, и так далее. Я здесь многому учусь и это здорово.

Мне очень нравится команда, с которой я работаю. Кажется, почти все здесь с PhD, а украинец Богдан, хоть и не успел его получить, зато финалист АСМа. Более того, прошелся как-то по этажу, и, прочитав вывешенные анкеты, обнаружил, что чуть ли не половина пришла из Research, у многих все тот же PhD. Зависит от команды, думаю, но все же качественный состав довольно сильный.

Перед тем как засабмитить какой-то код его надо показать коллегам. Мой первый кусок кода на 700 строк недавно был жестоко отревьювен моим боссом, 95% комментов относились к стилю, но переделыванием оставшихся 5% я занимаюсь вот уже неделю. Впрочем, еще неделя, и можно будет смело сабмититиь, на чем завершится первая, меньшая, часть моего проекта. :)

После работы, я иду на первый этаж в спортзал

image

20 минут бега, силовые тренажеры, пресс 100 раз, избиение груши, душ. Кто сказал, что программист — это задохлик в очках?

После спортзала очень клево полежать в комнате с аквариумами
image

А потом я иду в Play room и часик занимаюсь на фортепиано. Конечно, не розовый рояль, как в MS, но тоже сгодится.

Иногда очень хочется позвонить домой, для этого можно использовать такие вот кабинки

image

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