Дапамажыце dev.by 🤍
Падтрымаць

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

4 каментарыя
Программист-кочевник в 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, если выразить их одной строкой?

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

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

Па тэме
Все материалы по теме
Чытайце таксама
Python больш не самы папулярны на GitHub. Яго змяніў вельмі малады язык
Python больш не самы папулярны на GitHub. Яго змяніў вельмі малады язык
Python больш не самы папулярны на GitHub. Яго змяніў вельмі малады язык
7 каментарыяў
«Першыя гады 4 было класна». Сеньёр, ужо грамадзянін Аўстраліі, расказаў, як там з айцішкай і павукамі
«Першыя гады 4 было класна». Сеньёр, ужо грамадзянін Аўстраліі, расказаў, як там з айцішкай і павукамі
«Першыя гады 4 было класна». Сеньёр, ужо грамадзянін Аўстраліі, расказаў, як там з айцішкай і павукамі
Распавядае Міхаіл*, Senior Software Engineer у офісе адной з вядомых сетак фаст-фуду ў Брысбене.
43 каментарыя
«Бурбалка? Не, не чулі». Бігтэхі сказалі, што працягнуць шалёна марнаваць грошы на ШІ
«Бурбалка? Не, не чулі». Бігтэхі сказалі, што працягнуць шалёна марнаваць грошы на ШІ
«Бурбалка? Не, не чулі». Бігтэхі сказалі, што працягнуць шалёна марнаваць грошы на ШІ
1 каментарый
У Расіі лакалізавалі JavaScript
У Расіі лакалізавалі JavaScript
У Расіі лакалізавалі JavaScript
7 каментарыяў

Хочаце паведаміць важную навіну? Пішыце ў Telegram-бот

Галоўныя падзеі і карысныя спасылкі ў нашым Telegram-канале

Абмеркаванне
Каментуйце без абмежаванняў

Рэлацыраваліся? Цяпер вы можаце каментаваць без верыфікацыі акаўнта.

Каментарыяў пакуль няма.