Support us

Программист-кочевник в Google. Часть 2

Оставить комментарий
Программист-кочевник в Google. Часть 2

Это окончание первой части нашего интервью-сиквела с украинским программистом Сергеем Кищенко о его работе и жизни в Google (всю серию интервью с Сергеем ищите вот здесь).

И сегодня мы поговорим о любимых языках программирования внутри Google, разберёмся почему С++ будет рулить ещё долго, обсудим общую стагнацию философии программирования, а также пройдемся по личным увлечениям и любимым книгам нашего героя-путешественника. Через весь наш разговор сквозит центральный вопрос: как переносится замена свободолюбивой фрилансерской жизни-путешествия на комфортабельный офис и хорошо зафиксированную жизнь на коротком поводке контракта?

А также про Googleween — техногенную версию Хэллоуин

«И через 10 лет мы будем писать на С++…»

— Бытует мнение, что у Google есть любимые языки программирования (ЯП), то есть объективно востребованные скиллы внутри самой компании. Как пример, твой любимый Python часто называют очень популярным в рамках внутренних проектов Google. Можно ли очертить круг наиболее интересного для этого поискового гиганта на программистском рынке?

— Любимые языки в Google — это те, которые позволяют выпускать продукты и запускать сервисы. В основном, это мейнстримовые языки, вроде Java, C++, Python, JavaScript. Они не просто так мейнстримовые — это действительно лучшее, что есть сейчас среди ЯП. Но, вообще говоря, используемый язык — это побочный скилл. На интервью по языкам вас могут спросить разве что о том, как вы относитесь к той или иной особенности ЯП, что бы вы хотели исправить. То есть, это скорее вопрос по системному дизайну, чем по языку.

Иначе говоря, язык программирования — это как разговорный язык. Чтобы работать в Google, нужно более-менее изъясняться на английском, потому что на этом языке говорит вся компания. Поэтому нужно уметь свободно писать код на каком-то из мейнстримовых языков программирования. Впрочем, этому учат в любом инженерном вузе, а попасть в штат Google без высшего образования довольно трудно.

Спектр же применяемых технологий настолько широк, что очертить определенный круг никак не получится. Ведь компания не только пишет поисковик, но и занимается исследованиями в области искусственного интеллекта и машинного обучения, производит автомобили и воздушные шары, разрабатывает Android OS и Chrome OS. Поэтому Google пытается нанимать инженеров широкого профиля (generalists).

— Сужаю и персонализирую первоначальный вопрос: какие технологии сегодня поражают тебя, и какие языки программирования будут рулить на массовом рынке в ближайшие 5 лет? Если можно, сделай прогноз, что сейчас наиболее перспективно и востребовано на кухне топ-разработчиков.

— Я люблю функциональные языки программирования, и мне радостно видеть, что они постепенно приобретают всё больший вес в области обработки данных. Но это не означает, что мейнстримовые языки куда-то исчезнут, и на их место придут другие.

Знаете, почему и через 10 лет мы будем писать на С++, а не на каком-нибудь другом языке? Потому что современные компиляторы С++ оптимизируют так, что просто диву даёшься. Например, посмотрите: я попытался обмануть компилятор так, чтобы он не оптимизировал пробрасывание временного значения в функцию bar. Что из этого вышло — сами видите.

Возможно, Go и Dart удастся немного потеснить Python и JavaScript, но не более того.

Предвидеть же, какие технические направления будут горячими через 5 лет, я не берусь. Впрочем, всем карьеристам еще не поздно вскочить на поезд Artificial Intelligence и Machine Learning, они вряд ли скоро пропадут с горизонта.

Сергей Кищенко, Google SWE на Googleween — техногенной версии Хэллоуин. Ну, и ещё немного видео оттуда же

— Действительно, ничего революционного в твоем списке языков и технологий нет. Тем не менее, знакомые девелоперы часто брюзжат слюной, что технологии создания программных продуктов не прогрессируют с 60-х. В чем суть этого скепсиса?

— Давайте лучше поговорим о философии программирования, которая тоже не меняется с середины прошлого века. Программированием правит утилитаризм. «Premature optimization is a root of all evil» — говорит нам старина Кнут, и мы вспоминаем о производительности только тогда, когда уже поздно. 50-кратное падение производительности? Да пофиг, будем писать на Python в 3 строки! 4 гига «оперативы» ушло в никуда? Ещё раз пофиг, зато мой pure functional язык позволяет мне выражать мысли монадами!

Недавно коллеги обсуждали невероятные тормоза LibreOffice при прокрутке документа с SVG. И это на современных персональных компьютерах текущего года. Мне особенно больно это слышать, потому что я почти 4 года проработал над офисным продуктом, который изначально затачивался под мобильные устройства. Это Excel, который работает на мобильном 20 мегагерцовом процессоре. Word, который в памяти занимает меньше, чем документ, который вы открываете. Но пришло время айфонов и айпэдов, и я лично наблюдал, как деградировал наш продукт, когда снимались определенные ограничения. На первом iPad можно было легко откушать до 64 метров памяти без риска быть убитым, это было роскошью, и приложение летало. К появлению iPad Retina приложение уже хотело под 300 «метров» в определенных случаях, а на первом iPad тормозило. Аналогичная деградация наблюдалась в Android-версии. Изначальный лимит в 16 мб для поддержки слабых андроидофонов был вскоре забыт, основная разработка велась под Android-планшеты, которые могли поспорить в производительности со слабенькими персоналками. К чему это привело, вы все сможете посмотреть в Android 4.4 KitKat, в ванильной поставке которого должен быть тот самый офис.

Мой вывод — виновата философия программирования, которая сделала создание программных продуктов чисто утилитарным действием. Программирование сегодня — это как написание картин для того, чтобы дырку в стене прикрыть. Модернизация «алгебры» этого процесса приведёт лишь к тому, что качество картины будет выше с точки зрения ее возможностей лучше висеть на стене и прикрывать дырку. А вот что делать, чтобы программирование стало искусством, а не ремеслом? Возможно, такая возможность уже безнадёжно утеряна.

Про секрет успеха

— Давай, глядя с вершины всех этих зияющих проблем отрасли, попытаемся дать дельные советы начинающим программистам.

Ты — состоявшийся программист. Оглядываясь назад, анализируя свои поступки и мотивы, можешь ли ты сам себе объяснить, в чем секрет или формула успеха на этой стезе? Очень многие молодые люди стремятся стать айтишниками, но далеко не у всех в итоге получается что-то путное. Глядя изнутри индустрии, что можно выделить главное в характере, профессии и в обстоятельствах, которые способствует успеху именно в ИТ? Какие общие советы ты бы дал начинающим программистам?

— Еще в прошлом интервью я советовал начинающим программистам больше времени наслаждаться детством и юностью, и поменьше думать о карьере, пока есть такая возможность. Если же пришла пора о ней задуматься, то важнейшими качествами являются уверенность в себе, смелость и упорство. Это истинно не только для ИТ. У каждого человека свой путь к вершинам. Смелость и уверенность в себе позволяют сделать первый шаг. А сделав первый шаг, становятся очевидными трудности, которые доведётся преодолевать. И здесь поможет только упорство.

Примерно так в Google на Хэллоуин тусят крутые и состоявшиеся программеры

— Дополнительно, чтобы бы ты пожелал молодым коллегам-программистам, которые в душе симпатизируют евгенике и горят желанием трудоустроиться в таких местах силы, как Google? Так уж ли страшен этот заморский «поисковый чёрт», как его малюют?

— Молодым коллегам-программистам в этом плане совет: убежден, что Google — идеальный выбор именно в качестве вашего первого места работы. Не нужно бояться, что у вас не хватит опыта, в интернатуру берут вообще без какого-либо опыта. Важны ваши знания, образование и желание работать. Также Google отлично подходит тем, кто уже имеет инженерный опыт, но желает научиться большему. Там также найдётся место и для «зубров от программирования», но последние вряд ли нуждаются в моих советах.

Тем, кто желает подготовиться к интервью, очень советую курс алгоритмов от Роберта Седжвика из Принстона. Это лучшее из того, что я знаю.

«Бесплатные завтраки загоняют „сов“ в офис пораньше»

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

— Да, такая работа мешает путешествиям в далёкие края. Но Калифорния знаменита тем, что многие интересные места находятся совсем недалеко. Я стараюсь выходные проводить вне города, и за уикенд можно забраться в горы (огромная горная система Кордильер), побродить меж озёр в Йосемити, добраться до Долины смерти, доехать/долететь до Большого каньона. Зимой доступны прекрасные лыжные курорты, круглый год можно заниматься сёрфингом, виндсёрфингом, кайтсёрфингом, ходить на парусных яхтах.

А горновелосипедные маршруты такие классные, что я уже чуть себе всё не переломал (смеется).

«Мне начинает казаться, что все велопокатушки, что у меня были до переезда в Калифорнию, можно просто не учитывать. Уровень здесь совершенно другой, несравнимый с нашими лесами и полями. В это воскресенье катался на трейлах El Corte de Madera, Skeggs. Вот конкретно на этом велосипеде я катался последние две недели, пока ждал свой. Интересно, что мой хардтейл здесь редкость, в основном все катаются на шоссейниках. И обгоняют меня только так. Требую лесных тропок для залечивания гордости!»

— Знаю, теперь ты путешествуешь по разным офисам Google. Как оно?

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

«Вот, казалось бы, раз основной офис Google в Маунтин-Вью, так и все основные ништячки должны быть сконцентрированы там же. Так нет же! Офис в Нью-Йорке — обалденный. Виды из его окон прекрасны. Внутри тоже очень клёво и он просто огромный, занимая два смежных здания на Манхэттене. Лондонский офис тоже был внушителен. Даже боюсь ехать смотреть другие. В этом, кстати, секрет успеха: сделать лучшим каждый отдельный офис, каждую деталь. И это я уже не про Google говорю, а про секрет успеха любой компании, любого государства и общества».

В целом же путешествий, конечно, не хватает. Но, как известно, «на другом берегу трава всегда зеленее». Когда путешествуешь, начинаешь мечтать о спокойных посиделках с друзьями, часами зависаешь в видеозвонках. Но стоит провести вне путешествий какое-то время, как снова тянет в горы, в новые страны. И так один этап неизбежно сменяет другой, это естественно. Сейчас у меня фаза жизни с меньшим количеством путешествий и большим вниманием к работе и инженерии.

— Кстати, насколько в Google гибкий распорядок дня? На собеседовании мне рассказывали истории, что якобы некоторые гуглеры не только работают на эту компанию нон-стоп (это произносится с оттенком гордости и выпавшей им великой чести), но и буквально спят в офисе, настолько он похож на самодостаточную экосистему, идеальную для застревания в ней любого холостого программера-гика.

— График работы очень гибкий. Но в Google ведь бесплатные завтраки, обеды и ужины, и вот они ограничены по времени. Хочешь попасть на завтрак — приходи до 09:30. Опоздал — можешь позавтракать овсянкой или хлопьями на микрокухнях. Такой распорядок очень мягко загоняет всех «сов» в офис пораньше. Плюс, не стоит забывать о «митингах». Ты можешь участвовать в них откуда угодно, но удобней всего это делать из офиса, поэтому если у тебя раннее совещание с командой из Европы (из-за разницы во времени), то ты вынужденно приходишь пораньше.

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

«Вот так выглядит наша скалолазная стенка в MTV. Маршрутов промаркировано много, как проходить большинство из них, я не знаю.» 

— Тем не менее, в чем секрет твоей производительности? Где находить силы, чтобы столько читать, работать в полную силу, да и путешествовать, фотографируя всё кругом? Может, это результат какого-то хитрого мировоззрения или страсти к переменам?

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

Про книги, спорт и итоги

— Продолжая тему, расскажу, что ты заядлый любитель чтения. Бытует мнение, что книга — уходящее явление, ведь многое в мире ныне можно увидеть своими собственными глазами — путешествия и опыт дальних стран доступны многим лично, а на все известные книги сняты фильмы и так далее. Почему ты выбираешь именно книги? Зачем тратишь на них столько времени?

— Книги — это, возможно, самые главные учителя в моей жизни. Если бы не приключенческие рассказы Верна, Лондона да Сабатини, я и не путешествовал бы столько. Книги же подарили мня основные принципы, которым я стараюсь следовать.

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

— На твой айтишный вкус, лучше всё-таки бумажные или электронные книги?

— Электронные. С чистым сердцем могу рекомендовать Kindle — он маленький, легкий, дешёвый и при этом довольно надёжный. Предыдущая версия прошла со мной огонь и воду, но в конечном счёте не пережила перелёт непальскими локальными авиалиниями. Сейчас у меня версия с подсветкой.

Бумажные книги я тоже люблю, но они не практичны. Легко впитывают воду, много весят, а еще быстро заканчиваются.

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

— Я очень мало читаю по компьютерным наукам, предпочитаю художественную и научно-популярную литературу. Поэтому будет больше книг художественных. Плюс, я ограничу временной интервал последними 3-5-ю годами, потому что иначе топ книг будет заполнен детской приключенческой литературой. Итак:

  • Дуглас Хофштадтер «Гёдель. Эшер. Бах. Эта бесконечная гирлянда.» (научпоп) — отличная философская база для нерелигиозного детерминистского восприятия мира.
  • Henry David Thoreau «Walden; or, Life in the Woods» (автобиография) — библия дауншифтеров. Интересным дополнением здесь будет книга Jon Krakauer «Into the Wild».
  • Роберт Хайнлайн «Чужак в чужой стране» (роман) — библия хиппи. Также у него же весьма впечатлила «Луна — суровая хозяйка», настольная книга революционера.
  • Джордж Оруэлл «Вспоминая войну в Испании» и «Памяти Каталонии» (автобиография) — история формирования мировозрения автора «1984», возможно, лучшего романа XX-го века. У Оруэлла еще, кстати, есть прекрасные «Дни в Бирме», пронизанные духом обречённого социализма. А адептам путешествий «без средств» будет интересно почитать «Фунты лиха в Париже и Лондоне».
  • Эрнест Хэмингуэй «По ком звонит колокол» (роман) — очень впечатливший меня роман Хэмингуэя, который я упустил в юности.
  • Фредерик Брукс «Мифический человеко-месяц» (компьютерные науки) — лучшая книга по управлению проектами и одна из лучших инженерных книг вообще.
  • Eliezer Yudkowsky «Harry Potter and the Methods of Rationality» (роман) — прекрасное введение в теорию рационального мышления.

В списке только одна книга по компьютерным наукам, и это не случайно. Большую часть инженерной информации я получаю из RSS-подписок и Twitter:

Отдельно хотелось бы упомянуть ленты комиксов:

— Окей, если с творчеством всё более-менее понятно, то какую роль в твоей жизни играет спорт? Это нечто большее, чем просто попытка быть в форме и сохранить здоровье?

— Есть околоспортивные вещи: сноуборд, байкинг, сёрфинг, скалолазание. Это просто развлечения, мне это нравится. Мне нравится нестись на борде вниз по склону или пытаться удержать руль велосипеда на горном трейле, я получаю удовольствие, забравшись на стенку по маршруту, который до этого пройти не мог.

Есть и чисто спортивные занятия: бег, тренажёрка. Позволяют держать себя в форме и дают возможность заниматься тем, что я люблю. Например, ходить в горы. А еще спорт вызывает почти наркотическую зависимость и занятия спорта делают вас немного счастливее.

«Открыл сезон набегом на Тахо. Моя фотография кошмарная, но можно заценить снаряжение:
— Сноуборд Lib Tech Skate Banana BTX.
— Крепы Union Force (чёрные).
— Боты K2 Ryker.
— Шлем Giro Edit Snow Helmet.
Ну и плюс всякие мелочи. Я ужасно доволен, хочу еще и много».

— И напоследок: каковы для тебя главные плюсы и минусы от работы в Google, если выразить их одной строкой?

— Нравится чёткий, отлаженный процесс разработки, который создавался инженерами для инженеров. Не нравится масштабность корпорации — в такой большой компании очень трудно заметить собственный вклад.

Иллюстрации: Сергей Кищенко

По теме
Все материалы по теме
Присоединяйтесь к сообществу dev.by

Читать

Читайте также
10 курсов для Project Manager, чтобы прокачать скиллы и обновить резюме (июнь 2023 г.)
10 курсов для Project Manager, чтобы прокачать скиллы и обновить резюме (июнь 2023 г.)
10 курсов для Project Manager, чтобы прокачать скиллы и обновить резюме (июнь 2023 г.)
Собрали курсы на различных платформах, которые подойдут как начинающим, так и опытным Рroject Мanager. Стоимость: от бесплатных уроков до продвинутых университетских программ за тысячи долларов. Но даже это — сущие гроши за новые знаний и крутой сертификат, которым можно похвастаться на LinkedIn и добавить в свое резюме.
1 комментарий
10 курсов по SQL для лучшего понимания работы с большими данными (май, 2023)
10 курсов по SQL для лучшего понимания работы с большими данными (май, 2023)
10 курсов по SQL для лучшего понимания работы с большими данными (май, 2023)
Собрали 10 платных и бесплатных онлайн-курсов для изучения SQL. Программы рассчитаны на слушателей, которые только начинают или продолжают знакомство с языком.
10 способов научиться программировать самостоятельно
10 способов научиться программировать самостоятельно
10 способов научиться программировать самостоятельно
Хотите научиться кодить и освоить алгоритмы? Собрали десять советов с чего начать изучение программирования для тех, кто только начинает своё путешествие в мир программирования и снабдили все это полезными ссылками на курсы для начинающих программистов.
10+ сертификаций Coursera, которые могут изменить вашу карьеру
10+ сертификаций Coursera, которые могут изменить вашу карьеру
10+ сертификаций Coursera, которые могут изменить вашу карьеру
Бюджетный способ прокачать навыки и повысить зарплату — это профессиональный сертификат от Google, IBM или крупного зарубежного университета. На Coursera как раз можно найти десятки полезных обучающих программ по машинному обучению, проджект-менеджменту и не только. Собрали 10+ сертификаций, которые будут выигрышно смотреться в резюме как новичка, так и опытного специалиста.

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.