Книга: Отъявленный программист. Лайфхакинг из первых рук
Назад: * * *
Дальше: Timelapse-видео в качестве бонуса

* * *

Год назад я брал интервью у украинского программиста Сергея Кищенко, который постоянно дрейфует между континентами и культурами, создавая код в непрерывном движении во времени и пространстве. За спиной у Сергея осталось 60 стран, когда на его пути возник оффер от Google USA с предложением заякориться в самом сердце Силиконовой долины – Mountain View, California (MTV). Такая вот ирония судьбы – этого свободолюбивого кочевника «поработил» Гугл.
Узнав, что он принял это предложение (признаться, я был удивлен его согласием, зная его свободолюбивый украинский характер), я решил встретиться с Сергеем еще раз, чтобы узнать о впечатлениях прожженного бэкпэкера и космополита от США и Гугла. Во время интервью я применял продвинутые гипнотические техники, чтобы обойти NDA, и вот что из этого получилось.
Сергей, я уже задавал тебе этот вопрос в нашем прошлом интервью, но многие продолжают монотонно щемить меня в комментах: как можно писать по-настоящему сложные программы, при этом каждодневно дрейфуя в новые места и культуры, находясь в перманентном движении? Люди беспокоятся и жаждут дискурса: уж не говнокодит ли ваш Сергей?
Очевидно, что офисному большинству для программирования нужны уединение, полная концентрация, социальный пакет и гробовое спокойствие, тогда как непрерывная дорога за окном, мелькающие пейзажи и страны лишают почти всего этого. Разреши еще раз пристать с этим вопросом к тебе: как можно научиться программировать, находясь в потоке суеты и отвлекающих моментов?
На качество моего кода можно посмотреть на https://github.com/tilarids, хоть там и не лучшие образчики.
Теперь про программирование в движении. Написание кода происходит не тогда, когда вы стучите по клавиатуре и код появляется на экране. Процесс созидания идет у вас в голове, причем хороший инженер одновременно удерживает в голове и созидаемый код, и машину, на которой этот код будет работать, да еще и постоянно прогоняет код через машину. Поэтому для того, чтобы писать хороший код, вам действительно нужно спокойствие, но спокойствие в вашей собственной голове. Нужно сконцентрироваться, отбросить лишние раздражители, оставить себе только то, что важно в этот момент.
Каждый человек достигает концентрации внимания разными способами, например можно запереться в комнате без внешних раздражителей, можно научиться медитации у йогов, некоторым помогает кофе, никотин и витаминки-ноотропы. Мне же достаточно музыки в наушниках. Как научиться этому? Пробовать разные варианты и развивать концентрацию внимания постоянными тренировками. Не сдаваться, упорствовать. Все.
Бэкпэкинг в твоей жизни отчасти позади, ты угодил в хорошо расставленные сети опытных гедонистов из Google. Как это произошло? Можешь рассказать предысторию и общие впечатления от своих собеседований?
Путь в Google у меня занял очень много времени, собеседования приходилось переносить из-за путешествий, я хотел работать в Mountain View и, соответственно, получал рабочую американскую визу, а потом ждал до осени, чтобы ею воспользоваться. В итоге впервые мне написал рекрутер из Google в мае 2012-го, а первый рабочий день был в октябре 2013-го. Впрочем, моя ситуация – это скорее исключение, и я был совсем не против потратить побольше времени на путешествия. Тем более что весь процесс никак не мешает ни работе, ни жизни. Все собеседования интересные, хорошо подготовленные, и мне доставляло удовольствие простое участие в процессе.
О том, как проходят интервью в Google, написано уже очень много, но если кратко, то пришлось пройти несколько созвонов с рекрутером (организационные вопросы), несколько телевидеофонных интервью (алгоритмы, общие вопросы) и один onsite-визит – пять интервью подряд по алгоритмам, общим вопросам и дизайну систем. Логических задачек, вопросов про круглые люки, а также тестов по особенностям языков программирования на интервью не было.
Очерти техническую область, в которой ты варишься сейчас, согласившись на наем со стороны Google.
Техническая область сильно отличается от того, чем я занимался до этого. Data Analysis, Data Mining, Machine Learning, Big Data. Это очень близко по духу к академическим исследованиям, приходится читать научные статьи, а сопроводительная документация к системам сама может потянуть на статью в журнал. При этом в Google давно перебороли все акцидентные сложности, и писать код, перемалывающий гигантские массивы данных, очень легко и просто.
Если интересны технические подробности, то можно почитать недавний анонс на Google I/O 2014.
Покончив с бэкграундом, давай теперь я заставлю тебя вернуться назад во времени. Какие были первые и самые сильные впечатления от первой недели работы в этом поисковом ИТ-гиганте? Что запомнилось больше всего или удивило после того, как ты спустился из очередного горного трэка в сверкающий кампус Google в MTV? По моему сигналу ты закрываешь глаза, засыпаешь и рассказываешь, как это было на самом деле…
Разглашать конфиденциальное здесь все равно нельзя, даже находясь под гипнозом, но какие-то отдельные личные впечатления могут быть интересны и для других.
В Google просто до фига всего происходит. «Базилион» технологий, «хренилиард» серверов, чертова уйма людей. Не знаю, как этот масштаб разработки лучше вербализировать.
Атмосфера же, ощущение свободы, технические детали процесса разработки – все это не очень удивляло после четырех лет моей работы в Quickoffice, где все было организовано примерно так же. Внутреннее устройство успешных компаний вообще очень сходно. Correlation does not imply causation, но это все же повод задуматься руководителям.
Как и в любой нормальной компании, в Гугл развит dogfooding – эксперименты с новым софтом на своих же сотрудниках. И что я вам хочу сказать, глядя на все изнутри, если вы когда-либо матерились на продукты Гугла или жаждали какую-то новую фичу, то почти наверняка все уже «напедалено» и тестируется прямо сейчас.
Похоже, я не самый глупый из толпы новичков, которые начали работать по H1-B визе. Это удивительно, но тешит мое ЧСВ. Окружающие – не сплошь математические гении, победители различных олимпиад, а просто хорошие умные инженеры. Ты можешь у них чему-то научиться, но и они могут учиться у тебя. Иначе говоря, приятно сознавать, что тот опыт, что ты получал до этого, ценен и здесь.
Отдельно приятно удивили Project Managers. Они поднимаются по отдельной карьерной лестнице, а их работа – помогать разработчикам с коммуникациями и ведением проектов. И они это умеют! Например, умение вести митинг так, чтобы за отведенное время успеть обсудить все, – это вроде и мелочь, но подавляющее большинство менеджеров в Украине на это не способны. В Google же митинги идут столько, сколько заявлено (или меньше).
Продолжаем медленно вспоминать – какие были первые впечатления от Силиконовой долины?..
Долина тоже довольно сильное впечатление произвела. Меня сейчас окружают тысячи и тысячи умнейших людей. Они все приезжают сюда, чтобы учиться в Стэнфорде и Беркли, работать в Фейсбуке или Гугле. Большинство из них тратит деньги на благотворительность и ведет здоровый образ жизни. Велосипедистов кругом немерено. В тренажерных залах постоянно толпы. В 6:30 утра ты точно не будешь единственным человеком, который вышел на пробежку. Концентрация миллионеров зашкаливает, и только от тебя зависит, будешь ли ты сам миллионером завтра.
Знаешь, какое слово приходит мне в голову, когда я вижу все это? Евгеника. Множество целеустремленных мальчиков и девочек приезжают сюда со всего мира, и они передадут свою целеустремленность и хватку своим детям. Порой думается, что кто не успел вскочить в этот плавильный котел, навсегда останется позади (позади останутся в том числе и их наследники).
Насколько программисты вокруг тебя аполитичны или, наоборот, – вовлечены в общественно-политические проблемы США (или своей родной страны), находясь в самом центре благополучной, богатой и сверхстабильной Америки? У широких народных масс принято считать, что кодеры проводят большую часть своей никчемной жизни в неких виртуальных мирах по ту сторону монитора, поэтому им нет никакого дела до происходящего вокруг. Так ли это?
Судя по моему опыту, в Украине/Беларуси/России программисты – как раз наиболее общественно-политически активная часть населения. И даже переехав в США/Европу, они продолжают волноваться о судьбе родных стран, пытаются отстаивать свою позицию удаленно. Так, эмигранты-россияне готовы покупать по несколько подписок «Дождя», лишь бы поддерживать в живых хоть какой-нибудь оппозиционный телеканал.
И когда некоторые СМИ заявляли, что украинский Майдан спонсируется Америкой, они были в чем-то правы, потому что хорошо видно, что поток пожертвований до сих пор не иссякает.
К общественно-политической жизни США программисты скорее индифферентны, причем как приезжие, так и коренные американцы. Возможно, сказывается то, что даже и американцы здесь работают часто из других штатов, очень много новоприбывших, и у них еще не сложилось восприятие окружающей действительности как своей территории.
У Гугл очень разнородный по национальному признаку коллектив разработчиков. Есть ли какие-то сбои в коллективе из-за разности менталитетов и культурных кодов, упакованных в одной точке пространства и времени, но работающих над общей задачей?
Люди на самом деле все одинаковые, флуктуации в поведении из-за особенностей менталитета минимальны и в рабочей обстановке незаметны. Так что никаких проблем. И плавильный котел работает скорее не на сплавление менталитетов, а на сплавление опыта, знаний, умений.
Разве что приходится понимать самые разные акценты, но это не так и трудно.
Какова политика управления Гугла, как все это скопление гениальных людей «процессится»? Особенно, когда интересы одной творческой личности переезжают интересы другой катком личных амбиций? Как лучше всего купить лояльность у высококвалифицированных сотрудников с точки зрения Google?
O’кей, давай поговорим о политическом устройстве Google. В компании работает ну просто до фига сотрудников, больше, чем граждан в некоторых странах. Поэтому можно рассматривать компанию с политологической точки зрения. Так это вполне себе конституционная монархия, никаких выборов монарха, хотя монаршая власть здесь ограниченна. Интересно, что при этом лояльность сотрудников довольно высока. То, что компания платит денежку, это всего лишь половина ответа на вопрос «почему?» (каждый сотрудник Google приносит компании профита больше, чем ему платят).
Важно то, что в компании развит механизм эскалации. Так, раз в неделю можно нагло задавать неудобные вопросы Пейджу и Брину напрямую (я говорю про мой офис в MTV, в других офисах это сложнее). Да и до своего Director of Engineering/VP не так далеко идти, если вдруг чего. Очень развита культура «бунтарства». Пока внешний мир скандалит: «Google снова сделал что-то не то, ай-яй-яй», настоящий кипиш поднимается внутри компании. И что самое главное – «монархи» прислушиваются к проявлению недовольства сотрудников. Частенько признают ошибки. Рассказывают, как будут исправлять. Такая вот вторая половина ответа на вопрос лояльности.
И главный вывод: демократия не является той серебряной пулей, которая решает все проблемы социумов. Демократия – всего лишь один из вариантов эскалации проблем и влияния на решения (посредством предвыборных программ и голосования). Но есть и другие варианты. И да здравствует бунтарский дух!
Кстати, про бунтарский дух и твою «рiдну Украину». Есть такое мнение, что программисты изначально созданы для эмиграции, потому что их умения и работа напрямую интегрированы именно в западную часть экономики. Таким образом, говоря предельно общо, карьера в области программирования часто понимается как переход из-под цепочек многочисленных посредников, через которые работает тот же местный аутсорс, прямо к западному работодателю. В конечном счете трудоустройство в череде таких оптимизаций чаще всего влечет переезд и эмиграцию в офисы крупных западных компаний, чтобы работать и получать на равных с западными коллегами.
Многие трудящиеся воспринимают такую позицию непатриотичной. Ты уехал еще до всей этой украинской революционной заварухи, как вообще относишься к такого рода утверждениям о «вечном неоплатном долгу перед Родиной»? Как относишься к «безродности» космополитов, которых среди программистов, наверное, большинство (в рамках которых Родина отходит на второй или третий план, а личная возможность развиваться и зарабатывать выпячивается на первый)?
Иначе говоря, программеру не только хорошо платят, но высокая ликвидность и мобильность профессии дает ему возможность жить где угодно «самому по себе» (языком покера – это Double Joker), тогда как другие обыватели невольно пристегнуты к государству с его многочисленными проблемами и личными имперскими тараканами правителей. Насколько моральна или эгоистична позиция бегущего с тонущего судна космополита? Что для тебя эмиграция, почему ты решил работать именно за рубежом, а не остался в родном Харькове («и как один умрем в борьбе за это»)?
Лев Толстой еще в начале прошлого века писал о том, что патриотизм устарел, что он должен быть уничтожаем всеми силами и способами. Если бы ко Льву Николаевичу прислушивались, то, возможно, и не было бы мировых войн, не было бы миллионов погибших, не было бы и разрушенных судеб сегодня, ведь войны не прекращаются ни на минуту. Так что я антипатриот, и любые патриотические чувства считаю вредными. И если уж говорить о каком-либо долге, то я готов принять долг перед планетой, перед человечеством в целом. Для меня космополит – это не эгоист без роду и племени, космополит родом с планеты Земля (я готов расширить определение, как только станет ясно, что мы не одни во Вселенной).
Соответственно, эмиграция – это просто переезд из комнаты в комнату в пределах одного здания. В одной из комнат летом прохладней, и летом вы предпочтете спать там. А зимой можете вернуться назад, на свой старый продавленный диван. Также и США меня заинтересовали Силиконовой долиной, возможностью учиться у лучших инженеров этой планеты в одной из лучших компаний этой планеты. Если бы головной офис Google был в Харькове, я бы и не уезжал никуда.
Ситуация в Украине в этом контексте воспринимается сложно. Очень тянет поехать, помочь. Но не совсем понятна причина происходящего: эта заваруха из-за того, что одна из сторон воюет, считай, против всего человечества, против истины и свободы; или все же из-за того, что в спинном мозгу остался зудящий патриотизм, который так просто не вытравить. К тому же не хочется калечить людей. В результате масштабных внутренних битв помогаю удаленно, чем могу. Думаю, это самый эффективный возможный мой вклад.
Страшусь этой темы, но все-таки спрошу у программиста-космополита со стажем, посетившего более 60 стран мира, – каково твое отношение к политике?
У меня есть хороший совет, как экономить время на политических дискуссиях: перестаньте спорить с позицией собеседника. Вам совершенно не нужно много думать, как, например, евроинтеграция повлияет на учителей, сельское хозяйство, компанию «Рошен» и сталелитейные заводы. Прикиньте, насколько это повлияет лично на вас и ваших близких. Позвольте это сделать остальным. Вас рассудят закон больших чисел и принципы демократии, и драгоценное время не будет потрачено на пустые доказательства.
Можешь подвести некий итог, просуммировать свои впечатления: что тебе больше всего нравится в Америке и, наоборот, – что не нравится?
Я не могу сказать про все штаты, но я могу сказать про Калифорнию, про San Francisco Bay Area. Очень нравится, что люди массово увлекаются спортом, заботятся о своем здоровье. Такая обыденная любовь к жизни, к себе, к окружающим. Проявляется везде и во всем. У нас это очень непривычно.
В качестве негатива: в Штатах нефиговая проблема с квартирными кражами. Причина проста – полиция плохо финансируется и на расследование таких мелочей просто не хватает людей. Тем более что страховая покроет утраченное за вычетом deductible (обычно 500 долларов).
Арендовать апартаменты в Штатах дорого и мучительно больно. Своя жилплощадь здесь редкость, куда чаще люди всю свою жизнь снимают. Или берут ипотеку, что может быть даже больнее. Поэтому квартиры обычно сдаются на длительный срок: от 6–12 месяцев. Выехать раньше можно, но для этого нужно выкупить контракт. Стоимость buy out у меня – полуторамесячная рента. Сам лизинговый контракт полон прекрасного: указаны разрешенные цвета жалюзи, прописан статус «медицинской марихуаны», в качестве форс-мажоров указано в том числе и божественное вмешательство, отдельная статья посвящена млекопитающим (mammals) в квартире.
Что удивительно, агенты по недвижимости не вызывают ненависти.
Заходишь на craigslist, смотришь объявления, звонишь и попадаешь на владельца или его представителя, а не на частного маклера, готового за 200 баксов найти похожую квартиру. В специально оговоренное время заинтересованные приходят на смотрины, тут же можно подать application. Стоимость application – 30–45 долларов. В случае подтверждения платишь депозит (1–2 месяца ренты, правило хорошего тона – по возврату депозита приплачивать проценты, которые бы набежали на этот депозит в банке), оплачиваешь первый месяц – и въезжаешь. Обычно квартиры без мебели, но с оборудованными кухнями.
Еще приятная особенность – апартаменты часто объединены в коммьюнити, я как раз в таком и живу. В стоимость аренды включен доступ к общественному тренажерному залу, небольшому открытому бассейну, площадке для барбекю. Довольно полезным ништяком является то, что «на ресепшене» могут принять посылку в рабочее время, это удобней, чем доставлять в офис.
Еще про впечатления от США: лично мне не нравится рельсовость, накатанность жизни в целом. Материальная обеспеченность отнимает желание стремиться к большему. В Bay Area стремлений и амбиций побольше, конечно, но тем не менее.
Также из неприятных для меня вещей в США – это компании, чья бизнес-модель построена на эксплуатировании законов. Так, о патентных троллях знают все. А вот вы слышали о юридических фирмах, которые ищут жертв неудачно прописанных медикаментов?
Так и идет реклама по местному телевизору: «Если вам прописали X, а у вас были такие-такие побочные симптомы, звоните нам, вам полагается денежная награда». И реклама по соответствующим запросам в том же Google стоит безумно дорого, то есть у этих сволочей хватает прибыли, чтобы еще и рекламу давать. Этот мир явно требует серьезной оптимизации.
Может, в последнем и выражается звериная сущность американских юристов – этаких санитаров леса в обществе и государстве, ревниво стоящих на страже этой самой нерушимой законности, стабильности и порядка, что и порождает в качестве того же побочного эффекта рельсовость и накатанность жизни?
Юристов действительно много.
В этом плане пару раз замечал интересное – при переезде в США/Европу бывшие жители СНГ прекращают качать фильмы с торрентов. Но не потому, что никто так не делает и это воровство, а просто боятся, что их попалят. И с интересом расспрашивают друг друга, не было ли с торрентами проблем?
Так что все это пиратство и презрение к копирайтам от безнаказанности. Когда в следующий раз будете качать фильм/музыку с торрентов, хотя бы себя не обманывайте, что это потому, что «все качают».
Ну и, конечно, влияет то, что легально купить фильм проще, чем скачать с торрентов.
Давай теперь поговорим более плотно про ИТ. Бытует мнение, что у Google есть любимые языки программирования (ЯП), то есть объективно востребованные скиллы внутри самой компании. Как пример, твой любимый Python часто называют очень популярным в рамках внутренних проектов Google. Можно ли очертить круг наиболее интересного для этого поискового гиганта на программистском рынке?
Любимые языки в Google – это те, которые позволяют выпускать продукты и запускать сервисы. В основном это мейнстримовые языки вроде Java, C++, Python, JavaScript. Они не просто так мейнстримовые – это действительно лучшее, что есть сейчас среди ЯП. Но, вообще говоря, используемый язык – это побочный скилл. На интервью по языкам вас могут спросить разве что о том, как вы относитесь к той или иной особенности ЯП, что бы вы хотели исправить. То есть это скорее вопрос по системному дизайну, чем по языку.
Иначе говоря, язык программирования – это как разговорный язык. Чтобы работать в Google, нужно более-менее изъясняться на английском, потому что на этом языке говорит вся компания. Поэтому нужно уметь свободно писать код на каком-то из мейнстримовых языков программирования. Впрочем, этому учат в любом инженерном вузе, а попасть в штат Google без высшего образования довольно трудно.
Спектр же применяемых технологий настолько широк, что очертить определенный круг никак не получится. Ведь компания не только пишет поисковик, но и занимается исследованиями в области искусственного интеллекта и машинного обучения, производит автомобили и воздушные шары, разрабатывает Android OS и Chrome OS. Поэтому Google пытается нанимать инженеров широкого профиля (generalists).
Сужаю и персонализирую первоначальный вопрос: какие технологии сегодня поражают тебя и какие языки программирования будут рулить на массовом рынке в ближайшие пять лет? Если можно, сделай прогноз, что сейчас наиболее перспективно и востребовано на кухне топ-разработчиков.
Я люблю функциональные языки программирования, и мне радостно видеть, что они постепенно приобретают все больший вес в области обработки данных. Но это не означает, что мейнстримовые языки куда-то исчезнут и на их место придут другие.
Знаете, почему и через десять лет мы будем писать на С++, а не на каком-нибудь другом языке? Потому что современные компиляторы С++ оптимизируют так, что просто диву даешься. Например, посмотрите[8]: я попытался обмануть компилятор так, чтобы он не оптимизировал пробрасывание временного значения в функцию bar. Что из этого вышло – сами видите.
Возможно, Go и Dart удастся немного потеснить Python и JavaScript, но не более того.
Предвидеть же, какие технические направления будут горячими через пять лет, я не берусь. Впрочем, всем карьеристам еще не поздно вскочить на поезд Artificial Intelligence и Machine Learning, они вряд ли скоро пропадут с горизонта.
Действительно, ничего революционного в твоем списке языков и технологий нет. Тем не менее знакомые девелоперы часто брюзжат слюной, что технологии создания программных продуктов не прогрессируют с 60-х. В чем суть этого скепсиса?
Давайте лучше поговорим о философии программирования, которая тоже не меняется с середины прошлого века, – это будет более общим случаем предложенной темы.
Итак, программированием правит утилитаризм. «Premature optimization is a root of all evil» – говорит нам старина Кнут, и мы вспоминаем о производительности только тогда, когда уже поздно. Пятидесятикратное падение производительности? Да пофиг, будем писать на Python в 3 строки! Четыре гига «оперативы» ушло в никуда? Еще раз пофиг, зато мой pure functional язык позволяет мне выражать мысли монадами!
Недавно коллеги обсуждали невероятные тормоза LibreOffice при прокрутке документа с SVG. И это на современных персональных компьютерах текущего года. Мне особенно больно это слышать, потому что я почти 4 года проработал над офисным продуктом, который изначально затачивался под мобильные устройства. Это Excel, который работает на мобильном 20-мегагерцовом процессоре. Word, занимающий памяти меньше, чем документ, который вы открываете. Но пришло время айфонов и айпадов, и я лично наблюдал, как деградировал наш продукт, когда снимались определенные ограничения. На первом iPad можно было легко откушать до 64 метров памяти без риска быть убитым, это было роскошью, и приложение летало. К появлению iPad Retina приложение уже хотело под 300 метров в определенных случаях, а на первом iPad тормозило. Аналогичная деградация наблюдалась в Android-версии. Изначальный лимит в 16 Мбайт для поддержки слабых андроидофонов был вскоре забыт, основная разработка велась под Android-планшеты, которые могли поспорить в производительности со слабенькими персоналками. К чему это привело, вы все сможете посмотреть в Android 4.4 KitKat, в ванильной поставке которого должен быть тот самый офис.
Мой вывод – виновата философия программирования, которая сделала создание программных продуктов чисто утилитарным действием. Программирование сегодня – это как написание картин для того, чтобы дырку в стене прикрыть. Модернизация «алгебры» этого процесса приведет лишь к тому, что качество картины будет выше с точки зрения ее возможностей лучше висеть на стене и прикрывать дырку. А вот что делать, чтобы программирование стало искусством, а не ремеслом? Возможно, такая возможность уже безнадежно утеряна.
Давай, глядя с вершины всех этих зияющих проблем отрасли, попытаемся дать дельные советы начинающим программистам.
Ты – состоявшийся программист. Оглядываясь назад, анализируя свои поступки и мотивы, можешь ли ты сам себе объяснить, в чем секрет или формула успеха на этой стезе? Очень многие молодые люди стремятся стать айтишниками, но далеко не у всех в итоге получается что-то путное. Глядя изнутри индустрии, что можно выделить главное в характере, профессии и обстоятельствах, которые способствует успеху именно в ИТ? Какие общие советы ты бы дал начинающим программистам?
Еще в прошлом интервью я советовал начинающим программистам больше времени наслаждаться детством и юностью и поменьше думать о карьере, пока есть такая возможность. Если же пришла пора о ней задуматься, то важнейшими качествами являются уверенность в себе, смелость и упорство. Это истинно не только для ИТ.
У каждого человека свой путь к вершинам. Смелость и уверенность в себе позволяют сделать первый шаг. А после первого шага становятся очевидными трудности, которые доведется преодолевать. И здесь поможет только упорство.
Дополнительно, что бы ты пожелал молодым коллегам-программистам, которые в душе симпатизируют евгенике и горят желанием трудоустроиться в таких местах силы, как Google? Так уж ли страшен этот заморский «поисковый черт», как его малюют?
Молодым коллегам-программистам в этом плане совет: убежден, что Google – идеальный выбор именно в качестве вашего первого места работы. Не нужно бояться, что у вас не хватит опыта, в интернатуру берут вообще без какого-либо опыта. Важны ваши знания, образование и желание работать. Также Google отлично подходит тем, кто уже имеет инженерный опыт, но желает научиться большему. Там также найдется место и для зубров от программирования, но последние вряд ли нуждаются в моих советах.
Тем, кто желает подготовиться к интервью, очень советую курс алгоритмов от Роберта Седжвика из Принстона[9]. Это лучшее из того, что я знаю.
Не мешает ли такая напряженная офисная работа твоим активным путешествиям? Мне кажется, что суперкомфортный Google – это прямая антитеза твоим дауншифтерским трипам по захолустьям цивилизации. Как ты совмещаешь эти две разные концепции?
Да, такая работа мешает путешествиям в далекие края. Но Калифорния знаменита тем, что многие интересные места находятся совсем недалеко. Я стараюсь выходные проводить вне города, и за уикенд можно забраться в горы (огромная горная система Кордильер), побродить меж озер в Йосемити, добраться до Долины смерти, доехать/долететь до Большого каньона. Зимой доступны прекрасные лыжные курорты, круглый год можно заниматься серфингом, виндсерфингом, кайтсерфингом, ходить на парусных яхтах.
А горновелосипедные маршруты такие классные, что я уже чуть себе все не переломал. (Смеется.)
Знаю, теперь ты путешествуешь в «корпоративном подпространстве» по разным офисам Google. Каково оно?
К сожалению, я был только в некоторых из них. Впечатляет, конечно, головной офис в Маунтин-Вью, который уже давно превратился в маленький городок, а также офис на Манхэттене, в котором легко заблудиться, а чтобы быстрее передвигаться по этажам, активно используют самокаты.
В целом же путешествий, конечно, не хватает. Но, как известно, на другом берегу трава всегда зеленее. Когда путешествуешь, начинаешь мечтать о спокойных посиделках с друзьями, часами зависаешь в видеозвонках. Но стоит провести вне путешествий какое-то время, как снова тянет в горы, в новые страны. И так один этап неизбежно сменяет другой, это естественно. Сейчас у меня фаза жизни с меньшим количеством путешествий и большим вниманием к работе и инженерии.
Кстати, насколько в Google гибкий распорядок дня? На собеседовании мне рассказывали истории, что якобы некоторые гуглеры не только работают на эту компанию нон-стоп (это произносится с оттенком гордости от выпавшей им великой чести), но и буквально спят в офисе, настолько он похож на самодостаточную экосистему, идеальную для застревания в ней любого холостого программера-гика, неравнодушного к своей профессии.
График работы очень гибкий. Но в Google ведь бесплатные завтраки, обеды и ужины, и вот они ограничены по времени. Хочешь попасть на завтрак – приходи до 9:30. Опоздал – можешь позавтракать овсянкой или хлопьями на микрокухнях. Такой распорядок очень мягко загоняет всех сов в офис пораньше. Плюс не стоит забывать о «митингах». Ты можешь участвовать в них откуда угодно, но удобней всего это делать из офиса, поэтому если у тебя раннее совещание с командой из Европы (из-за разницы во времени), то ты вынужденно приходишь пораньше.
Да, переночевать в офисе можно, ведь на территории легко отыскать душ и даже есть «тихие комнаты». Есть и прачечные, где можно постирать одежду, да и все офисы открыты круглосуточно. Но эта возможность нужна скорее на всякий случай. Из моих личных знакомых никто ею не пользовался, а у меня в офисе Google ночевал только велосипед.
Тем не менее в чем секрет твоей производительности? Где находить силы, чтобы столько читать, работать в полную силу, да и путешествовать, фотографируя все кругом? Может, это результат какого-то хитрого мировоззрения или страсти к переменам?
О, есть очень простая техника. Нужно записаться на курсы китайской каллиграфии, бальные танцы, уроки испанского и гитары, пообещать всем на работе закончить важный проект раньше срока, договориться с друзьями пойти в поход на все выходные.
В общем забить всю неделю так, чтобы ничего не успевать. Продержаться семь дней, а потом убрать бальные танцы и испанский. Это освобождает кучу свободного времени, и ты легко успеваешь и на уроки гитары, и в поход. Это работает как в обычной жизни, так и в путешествиях и спорте. А дальше уже тянет сформированная сила привычки.
Продолжая тему, расскажу, что ты заядлый любитель чтения. Бытует мнение, что книга – уходящее явление, ведь многое в мире ныне можно увидеть своими собственными глазами – путешествия и опыт дальних стран доступны многим лично, а на все известные книги сняты фильмы и т. д. Почему ты выбираешь именно книги? Зачем тратишь на них столько времени?
Книги – это, возможно, самые главные учителя в моей жизни. Если бы не приключенческие рассказы Верна, Лондона да Сабатини, я и не путешествовал бы столько. Книги же подарили мне основные принципы, которым я стараюсь следовать.
Также я не считаю, что книги, фильмы и путешествия взаимовытесняющие. Они существуют в разных плоскостях. Крайне редко книга и фильм по книге достаточно хороши, чтобы достойно бороться за умы и сердца (например, в первом приближении я только «Бойцовский клуб» и «Властелина колец» могу вспомнить из подобных). Путешествия же вообще дают совершенно особенный опыт, который ни с чем не совместим.
На твой айтишный вкус лучше все-таки бумажные или электронные книги?
Электронные. С чистым сердцем могу рекомендовать 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:
• Paul Graham’s Essays (paulgraham.com/articles.html).
• HackerNews (news.ycombinator.com).
• ЖЖ Анатолия Воробья (avva.lj.ru – здесь темы как технические, так и общие, очень хороший блог).
Отдельно хотелось бы упомянуть ленты комиксов:
• xkcd.com.
• abstrusegoose.com.
• www.smbc-comics.com.
О’кей, если с творчеством все более-менее понятно, то какую роль в твоей жизни играет спорт? Это нечто большее, чем просто попытка быть в форме и сохранить здоровье?
Есть околоспортивные вещи: сноуборд, байкинг, серфинг, скалолазание. Это просто развлечения, мне это нравится. Мне нравится нестись на борде вниз по склону или пытаться удержать руль велосипеда на горном трейле, я получаю удовольствие, забравшись на стенку по маршруту, который до этого пройти не мог.
Есть и чисто спортивные занятия: бег, тренажерка. Позволяют держать себя в форме и дают возможность заниматься тем, что я люблю. Например, ходить в горы. А еще спорт вызывает почти наркотическую зависимость, и занятия делают вас немного счастливее.
И напоследок – каковы для тебя главные плюсы и минусы от работы в Google, если выразить их одной строкой?
Нравится четкий, отлаженный процесс разработки, который создавался инженерами для инженеров. Не нравится масштабность корпорации – в такой большой компании очень трудно заметить собственный вклад, что в итоге может привести к потере искренней мотивации.

 

Назад: * * *
Дальше: Timelapse-видео в качестве бонуса