как заработать в интернете | полезные скрипты | технические вопросы

вопросы хостинга | продвижение сайтов | поисковые системы

Software Engineers: главный секрет
и движущая сила Google

Автор: Игорь Кривоконь, Software Engineer, 11.10.06
Источник: Официальный блог Гугль-Россия

Друзья недавно спросили меня: а что конкретно делают на работе программисты в Google? Мне показалось, что ответ на этот вопрос может быть интересен многим, поэтому я решил опубликовать его здесь, в этом блоге.

Вообще-то, трудно говорить об обезличенном, стандартном рабочем дне, поэтому я просто записал все, чем занимался в течение одного дня:

9:15 — приехал на работу. Поскольку еще рано (программисты появляются на работе достаточно поздно), есть свободные места для парковки. Вот тем, кто приезжает на работу после 11-ти, найти место уже трудно. Кстати, очень многие ездят на работу на велосипеде — им легче с парковкой.

велосипедная стоянка у офиса Гугла

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

Google-автобус

9:15 - 9:30 — завтрак в кафе, проглотил омлет с сыром, взял с собой пирожное к чаю. Все кафе в Google бесплатные: в них можно позавтракать, пообедать и поужинать. Ну, здешняя еда — тема отдельного поста.

Гугль-кухня

9:30 - 10:15 — Иду к себе. Я работаю над Поиском книг Google, в группе OCR (Optical Character Recognition). Наша задача — распознать текст книг и проанализировать их структурные элементы: номера страниц, оглавления, рисунки, страницы с копирайтом и так далее. Очень интересный проект. Когда я прихожу, еще никого нет... Хотя нет, Рэй, мой коллега, уже здесь. Он вообще – жаворонок, всегда раньше всех.

Рэй, работает в Гугле

Пью чай и проверяю почту. Отвечаю на несколько вопросов по моему прошлому проекту, связанному с подсистемой Google, которая поддерживает AdWords и AdSense. Заканчиваю черновик плана работы над моим проектом на следующие 3 месяца: что и когда должно быть сделано, кто за что отвечает и т.д. Посылаю план коллегам для обсуждения.

10:15 - 11:00 — пишу код для новой подсистемы, над которой работаю. Основные языки, принятые в Google, — это С++, Java и Python. У нашей группы достаточно критическая по быстродействию система, и мы используем C++. Заканчиваю кусок кода и запускаю системные тесты, чтобы проверить, как изменения влияют на эффективность всей системы OCR.

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

Гугловские самокаты с моторчиком

11:00 - 11:45 — собеседование с кандидатом на позицию инженера-разработчика. На мою долю выпадает, в среднем, по два собеседования в неделю.

Чтобы попасть в Google, типичный кандидат проходит два собеседования по телефону и потом штук шесть уже непосредственно в компании. Мой сегодняшний кандидат, а точнее кандидатка, назовём её условно Алиса, явно волнуется: я первый, с кем она сегодня встречается, так что она не знает, чего ожидать. Обычно кандидаты успокаиваются, когда говорят о чем-то привычном. Перевожу разговор на её последний проект, и Алиса с интересом о нём рассказывает, забывая о волнении. Начинаю задавать вопросы по ходу разговора, от простых к сложным, она спокойно и уверенно отвечает на них. Замечательно! Кстати, по сравнению со многими соседними хай-тек компаниями, в Google работает много девушек-программистов, что, безусловно, радует.

в Google работает много девушек-программистов

11:45 - 12:45 — иду на обед с моим новым практикантом, Бобом.

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

Первые несколько дней новые инженеры и практиканты проходят «школу молодого бойца»: учатся пользоваться главными подсистемами Google, изучают стиль и советы по программированию, а также знакомятся с тем, как организована наша компания. Боб уже прошел через несколько дней обучения, и теперь мы встречаемся, чтобы более подробно обсудить, над чем он будет работать во время практики.

Боб — аспирант, пишет диссертацию в Беркли, занимается биоинформатикой. То, чем он будет заниматься в Google, достаточно далеко от биоинформатики, но математическая основа очень похожа. Ввожу Боба в курс дела, пока мы едим какие-то диковинные индийские блюда. Потом провожаю его на следующую презентацию, а сам иду на лекцию, которая здесь называется «tech talk».

12:45 - 13:45 — Tech talks — это лекции на всевозможные темы, как внутренние, так и внешние. В течение дня бывает несколько таких лекций.

В Google работают над сотнями проектов. Многие из них «не видны» снаружи: это подводная часть айсберга.

один из корпусов Гугля

Некоторые из проектов сейчас находятся на стадии разработки и появятся на страницах Google, только если докажут свое право на существование. Многие проекты нацелены на внутреннюю инфраструктуру компании. Это, так сказать, скелет и кровеносная система Google, которые обеспечивают эффективную работу огромного количества серверов компании. Они же позволяют новым проектам быстро набирать обороты, предоставляя им колоссальные вычислительные ресурсы и эффективные алгоритмы для обработки данных.

Но, спрашивается, как же сами инженеры успевают следить за всем, что происходит в компании? Тут на выручку как раз приходят подобные лекции. Периодически инженеры делают презентации своих проектов. Бывают и другие лекции, на которых выступают приглашенные специалисты. Темы самые разнообразные: от оптимизации компиляторов до теории суперструн и многомерной вселенной. Сегодняшняя лекция — о будущем языка Python. Читает ее cам Гвидо Ван Россум, создатель этого языка, а с недавнего времени — разработчик в Google.

Гвидо Ван Россум, создатель языка Python

13:45 - 14:30 — иду обратно к себе, проверяю результаты моего теста.

Читаю почту, нахожу запрос на рецензию кода от Рэя. Рецензия кода — это стандартная практика в Google. Весь код, который заносится в систему контроля версий, должен пройти проверку и получить подтверждение «изменение разрешено». В качестве рецензентов выступают люди, которые работали над этим кодом раньше или просто хорошо его знают. На этот раз изменения очень простые, у меня нет никаких замечаний к коду Рэя, за исключением одного неудачного имени переменной. Прошу переименовать ее, а также спрашиваю, проходят ли все наши тесты после этого изменения. Рэй быстро редактирует код и подтверждает, что тесты в порядке. Даю добро на изменения, и они заносятся в систему контроля версий. По ходу замечаю несколько новых модулей по обработке изображений, некоторое время изучаю их и читаю документацию.

14:30 - 15:15 — иду на совещание по поводу качества русского поиска. «Русская инициатива» — это мой 20%-ый проект. Каждый инженер Google может работать 80% времени над основным проектом и 20% — над чем угодно, что может принести пользу компании. Что может принести пользу, решает сам инженер, поэтому 20%-ые проекты бывают самые разные: это могут быть совершенно новые идеи или просто другой проект Google, который вас заинтересовал. Возможностей много. Я уделяю свои 20% времени проектам Google, связанным со странами Восточной Европы, в основном, с Россией и Украиной. Сюда входит и подготовка к открытию новых офисов, и отбор новых инженеров, и улучшения продуктов Google, направленных на русскоязычную аудиторию. На повестке дня — поддержка русской морфологии в продуктах Google и открытие инженерных офисов в России. Московский офис, кстати, уже оборудован в стиле Google.

офис в стиле Google

15:15 - 16:15 — иду в другой корпус, где занимаются проектом автоматического перевода с одного языка на другой. Мы тесно сотрудничаем с этой группой и сейчас должны обсудить, как строятся их языковые модели. Франц, руководитель группы автоматического перевода, выдает мне за полчаса массу информации и ссылок на документацию. Теперь во все это надо вникнуть и понять.

На выходе из корпуса встречаю Ша-Мейн, мою коллегу по прошлому проекту и хорошего друга. Она рассказывает, что едет на полгода в китайский офис. У нас часто практикуется такой обмен. На сегодняшний день открыто 15 инженерных офисов Google по всему миру. Все они, в общем, принципиально не отличаются от головного офиса. Разве что размером, ведь большинство сотрудников компании все-таки находится в Маунтин Вью. Поскольку мы пытаемся перенести атмосферу главного кампуса во все региональные офисы, такие поездки-стажировки на 3-6 месяцев очень приветствуются. Ша-Мейн рассказывает мне про китайский офис, и мы делимся соображениями по улучшению китайского и русского поиска. Потом договариваемся завтра в обед встретиться и поиграть в игру Го в нашем уголке настольных игр.

Ша-Мейн, работает в Гугле и играет в игру Го

16:15 - 17:00 — проверяю, какие баги мне нужно ликвидировать. Пару простых и один сложный. Быстро исправляю простые и посылаю изменения на рецензию. Со сложным придется повозиться. Похоже, дело в библиотеке, которую разрабатывал наш партнер. Посылаю e-mail в их службу поддержки.

17:00 - 18:00 — совещание нашей группы. Обсуждаем дизайн новой системы, которую нам предстоит строить «с нуля». Это всегда интересно. У всех много идей по архитектуре и реализации системы. Моя задача — разработать новый формат файлов для хранения данных в этой системе. Через неделю встретимся снова и продолжим обсуждение.

Программеры Гугля обсуждают дизайн новой системы

18:00 - 19:15 — иду в спортзал. Немного разминки на тренажерах, потом играем в настольный теннис с коллегами из Google Earth. Для любителей спорта выбор здесь широкий. Например, можно поплавать в бассейне или поиграть в футбол. А еще довольно популярен волейбол, причем вместо обычного мяча иногда используются красочные мячи Google.

волейбол в Гугле

19:15 - 19:35 — бегу в кафе, к восьми нужно быть дома. Быстрый ужин — салат и рыба-меч на гриле. Уже в дверях сталкиваюсь с Джерри, он работает над программами для мобильных телефонов. У нас есть несколько проектов, которые нацелены на мобильную связь. Многие из них поддерживаются в России: например, почта Gmail для мобильных устройств и персональная главная страница Google. Джерри только что выпустил новую версию Карт Google для мобильных телефонов и пытается продемонстрировать мне, как здорово все работает. «Извини, некогда... До завтра!» — отвечаю я на ходу и через минуту уже выезжаю из ворот подземного гаража. Всё, увидимся завтра, Google!

кампус Гугля

 

Видеозапись лекции Игоря Кривоконя в МФТИ «Как устроен Гугл»

 

как заработать в интернете | полезные скрипты | технические вопросы

вопросы хостинга | продвижение сайтов | поисковые системы