Читать «IT Компас: как правильно программировать IT-карьеру» — Илья Кырчумару онлайн
Страница 2 из 3
IBM Research
На обратном пути из Сан-Франциско я ненадолго заехал в Нью-Йорк. Манхэттен и Даунтаун просто потрясли количеством и высотой небоскребов. Открылся совершенно другой, огромный мир, и мне было интересно попробовать стать его частью.
Я поступил на программу магистратуры в университет Кишинева по двум причинам: параллельные вычисления и статус студента. У нас в университете есть маленький кластер, на нем мы постигали азы больших вычислений. Это было увлекательно и заставляло мозг думать по-новому. Статус студента давал возможность подаваться на стажировки в большие компании, такие как Google, Amazon, IBM.
В январе 2017-го мама нашла объявление о программе IBM Research «Great Minds», которая предполагала четырехмесячную стажировку в Цюрихе или Дублине. Принять участие могли студенты магистратуры всех стран Восточной Европы – всех, кроме Молдовы.
«Не ошибается тот, кто ничего не делает», – гласит мудрая пословица. Я решил, что Молдову не включили в список по ошибке: государство небольшое, про него могли просто забыть. В каждой стране был представитель программы, которому полагалось отправлять заявку.
Сначала я написал представителю соседней Румынии. Ответа долго не было, поэтому я обратился также к представителю от России. Он сразу же ответил: сказал, что не знает, почему Молдовы нет в списке, но без проблем переправит мою заявку в головной офис, а уж там решат, что со мной делать. Больше ничем помочь он не может.
Неожиданно в тот же день пришел ответ из Румынии: «Илья, Молдову не включили в список по ошибке. Отправь все свои документы, и будем работать». Механизм тогда был следующий: из-за большого количества претендентов первый этап отбора проходил на уровне представительств стран – участниц программы, далее лучшие заявки поступали в главный офис компании. Я поблагодарил румынского представителя за заботу и отправил ему свои документы. «Неловко вышло, – подумал я, – отправил две заявки. Буду надеяться, что теперь шансы удвоились».
Особых надежд получить эту стажировку у меня не было. Я выбрал проекты в Цюрихе, и все они касались технологии блокчейн. Криптовалюты тогда только набирали популярность, я не знал о них ровным счетом ничего. Зато подходил под все остальные требования. В частности, у меня имелся реальный опыт работы с Golang – это было одним из ключевых условий. К тому же я подавался на позицию стажера, будучи руководителем команды. Но все равно надежды было мало: до этого я уже отправлял заявки в Google и Uber и не получил никаких ответов, даже отрицательных.
В апреле, к моему искреннему удивлению, пришел ответ: «Поздравляем, вы прошли на следующий этап – собеседование». Эта новость застала меня в аэропорту Лондона. Отпуск в Англии подходил к концу, я хорошо отдохнул и был готов сразу же лететь в Цюрих на собеседование. Правда, позже выяснилось, что оно проходит онлайн.
Как мне потом рассказали, менеджер команды Андреас Кинд (англ. Andreas Kind) хотел проверить, много ли я наврал о своих навыках и компетенциях. «Либо он нагло врет, либо его надо брать. Скорее всего, конечно, врет», – такова была реакция будущих коллег при рассмотрении моих документов. Я действительно чуть приврал в мотивационном письме о том, что мне крайне интересен блокчейн, но все остальное было чистой правдой. Собеседование прошло легко, надо было просто убедить Андреаса, что информация в моем CV соответствует действительности.
Через неделю неожиданно пришел положительный ответ – меня приглашали на стажировку в IBM Research в Цюрихе. «Сан-Франциско, Цюрих… Это точно происходит со мной?!»
Еще больше меня удивило, что в копии письма я не нашел представителя от Румынии – он не отправил мои документы. Было ли это в тот момент важно? Конечно, нет. Повезло ли мне? Однозначно. Но теперь этим везением надо было грамотно распорядиться.
На работе все очень порадовались за меня и поддержали. Сказали, что ехать нужно обязательно: четыре месяца – не так много, а возможностью посмотреть на большую корпорацию и другую страну непременно стоит воспользоваться. При желании по окончании стажировки можно будет вернуться на прежнюю должность. Итак, в компании Yopeso/Crunchyroll я проработал ровно год.
Мой первый день в IBM Research пришелся на начало июля 2017-го. И снова передо мной открылся новый мир – мир науки и инноваций. Главной задачей моих коллег была разработка новых продуктов и технологий. Прямо у офиса располагался симпатичный пруд с рыбками, чтобы у работников умственного труда была возможность помедитировать и разгрузить мозг. Сами коллеги тоже оказались необычными людьми – доктора наук, математики, криптографы. Я узнал, что магнитные ленты – все еще огромный бизнес, на них по сей день хранятся все резервные данные в мире. Там же я впервые увидел прототип квантового компьютера и побывал в «тихой» комнате (место настолько тихое, что слышно свое сердцебиение).
Мне достался проект по имплементации системы цепочек доставки (англ. supply chain) на блокчейне. Миссия этого проекта была действительно благородна – мы хотели уменьшить количество поддельных лекарств в Африке. В некоторых регионах Африканского континента количество контрафактной фармацевтической продукции может доходить до 75 %. Это был шанс изменить к лучшему жизни миллионов людей. До этого я, конечно, тоже занимался полезными для общества вещами, но сравнивать просмотр японских мультиков с потенциальным спасением жизней как минимум некорректно. Сверхмотивация (благодаря такой достойной цели) и интерес к новым технологиям позволили нам с коллегами создать приложение, которое не стыдно показать потенциальным партнерам в индустрии.
Если честно, начало стажировки отнюдь не было гладким. Новая работа в новой стране – двойной стресс. К тому же я начал работать в июле, в период отпусков. Уже через две недели вся моя команда разъехалась отдыхать, а коллега, с которым я должен был изначально работать, на два месяца отбыл в Сингапур в командировку, и я его вообще не видел. На три недели меня фактически оставили одного заниматься чем-то неопределенным. Что конкретно надо сделать, я не успел понять. Перед тем как бросить, меня познакомили с другой командой, они тоже делали проекты на блокчейне. Так как от моей команды заданий не поступало, я начал работать с ними. Именно тот проект впоследствии и привел меня обратно в IBM Research.
Четыре месяца стажировки выдались насыщенными: я успел вникнуть в корпоративный блокчейн и основы криптографии, посмотреть все большие города Швейцарии и начать встречаться с замечательной девушкой, которая училась в докторантуре университета Цюриха. После себя я оставил проект, который мои коллеги планировали развивать дальше и в итоге превратить в полноценный продукт.
К концу стажировки надо было решать, что делать дальше. Можно было вернуться в Кишинев и продолжить работать в Crunchyroll. Но я все еще был студентом, а значит, была опция снова подавать заявки на стажировки в крупных компаниях. Именно такой вариант я нашел в «Амазоне»: «полугодичная стажировка для студентов последнего курса с возможностью дальнейшего трудоустройства». Команда базировалась в Люксембурге, европейской штаб-квартире «Амазона», что примерно в четырехстах километрах от Цюриха.
Amazon
В «Амазон» я попал за неделю. В понедельник подал заявку, в пятницу получил контракт. Согласно правилам компании, соискателям обязаны дать ответ в течение двадцати четырех часов, чтобы не упустить потенциального кандидата из-за внутренней бюрократии.
Мне организовали пять собеседований в течение двух дней. Четыре из них оказались техническими. Надо было писать реальный код, решать задачи на знание алгоритмов и структур данных. Вот где фундаментальная подготовка действительно пригодилась. На дворе стоял сентябрь 2017-го, но я договорился о начале стажировки в феврале, чтобы сдать экзамены в университете и написать магистерскую работу. В октябре я завершил стажировку в IBM Research, как всегда, отметив это конфетами и тортиком для коллектива. В ответ коллеги подарили мне классный раскладной швейцарский нож.
Вернувшись в Кишинев, я занялся магистратурой. Мой университет был горд, что я стажируюсь в больших компаниях, поэтому мне дали время наверстать два месяца обучения. В январе сдал экзамены и написал дипломную работу, чтобы ничего не отвлекало от «Амазона». Я планировал сделать карьеру в этой компании. 30 января я прилетел во Франкфурт и оттуда доехал до Люксембурга.
Зима в Люксембурге – не самое приятное время года. Постоянно дождь, ветер, а если выпадает снег, то часть общественного транспорта меняет маршруты. Команда, которая меня встретила, оказалась очень теплой и приветливой. С первого дня я почувствовал себя в своей тарелке. Все с удовольствием помогали, рассказывали о проектах, а тимлид был отличным программистом и менеджером.
Я попал в команду Amazon Supply Chain Finance. Нашей задачей было делать софтверный продукт, который собирает данные обо всех доставках «Амазона», систематизирует их и предоставляет доступ нескольким тысячам работникам складов, отделов логистики и финансов по всему миру. Эта стажировка началась с самого необычного дела в моей жизни – доставки посылок. Очень важно, чтобы программист хорошо понимал, что и для кого он делает. Еще лучше, если процессы, которые он автоматизирует, можно буквально потрогать руками. Поэтому на целую неделю меня отправили во Франкфурт, на склад «Амазона». Я сортировал товары при получении, занимался их отправкой и взаимодействовал с продуктом, как обычный пользователь. На один день я присоединился к доставщику, и мы поехали во Франкфурт развозить посылки. Единственного дня хватило, чтобы понять, какая это сложная работа. Запомнился момент, как мы доставляли посылку одному парню, его не было дома, и в комментариях к заказу было написано: «Если меня не будет дома, оставьте посылку моей соседке». Мы позвонили в соседнюю дверь и сказали, что мы из «Амазона», хотим оставить посылку.
«Да как же вы мне надоели! И вы, и он! Не оставляйте мне никаких посылок!» – «радостно» отреагировала соседка.
Большинство технологий были мне знакомы, но вот объем данных, который мы обрабатывали, оказался совершенно другим. Базы данных с миллиардами строк, элегантные индексы – там было чему поучиться. А еще один коллега поразил меня своим уровнем программирования. Никогда не видел такого качества кода, ни до, ни после! Я многому у него научился, и он мотивировал меня сдать несколько Oracle сертификаций по Java.
Коллектив был молодой, энергия била там фонтаном. Мы программировали так же яростно и много, как сражались в настольный футбол после обеда. Главной мотивацией команды, как и всей компании, были две вещи:
1. Счастливый клиент.
2. Курс акций.
Работая в крупных корпорациях, люди часто думают, что лично повлиять на курс акций невозможно. В «Амазоне» руководствуются другим принципом: «Если я и мой коллега, моя и соседняя команда хорошо работаем, то вся компания будет успешной, а это повлияет на курс акций». Так как большинство постоянных сотрудников имеет акции, такая идеология им определенно близка. Это одна из причин успеха «Амазона».
Вторая причина успеха компании, которую я увидел изнутри, – это ее основатель, Джефф Безос. От руководителя такой огромной компании не ожидаешь столь глубокого погружения в процессы. В своих письмах сотрудникам он мог затрагивать вопросы командной работы на конкретных примерах или указывать стратегическое направление небольшим подразделениям. У меня сложилось впечатление, что Джефф Безос знает свою почти полумиллионную компанию так же хорошо, как и в то время, когда в ней работало всего сто человек. Этот был прекрасный пример управления – вникать во все так глубоко, как только можешь. Наверняка он спал меньше восьми часов, но «Амазон» – это ребенок Джеффа Безоса, а к ребенку при необходимости встаешь в любое время суток. Думаю, именно в этом кроется секрет успеха как больших компаний, так и маленьких проектов. Там есть люди, которым не все равно, которые при необходимости встанут и ночью.
Стажировка тем временем проходила насыщенно. Помимо франкфуртской командировки, меня отправили еще в Берлин для обучения облаку «Амазона» (Amazon Web Services). Эта командировка в очередной раз подтвердила мое предположение, что большие компании ищут людей с фундаментом, а освоить конкретные технологии можно и позже. Я хорошо интегрировался в команду и значительно подтянул навыки в настольном футболе. Случилось даже поучаствовать в конкурсе «Амазон ищет таланты», где я играл на гитаре. Параллельно продолжал встречаться с девушкой из Цюриха, мы ездили друг к другу в гости.
Иногда бывало и грустно. Переезд из страны в страну имеет один большой недостаток: каждый раз начинаешь с чистого листа. Возможно, интровертам легче, но экстравертам, к коим я отношу себя, поначалу бывает непросто. Не хватает друзей, какого-то приятельского общения. Какими бы хорошими и доброжелательными ни были новые коллеги, у них уже сложился определенный социум, у многих семья, дети. Поэтому в плане досуга особенно рассчитывать на них не надо, в лучшем случае вы будете раз в две недели выходить в бар, а раз в полгода проведут тимбилдинг. Я нашел спасение от грусти в музыке. Гитара и добрые песни: споешь штук десять, и на душе спокойнее, главное – про соседей не забывать.
Любое хорошее дело имеет плохую особенность – оно быстро заканчивается. В мае надо было решать, что делать дальше. Предварительно мне сделали предложение перейти на постоянную позицию и дали время подумать. С другой стороны, моя личная жизнь была в Цюрихе. Карьера или отношения, деньги или семья? В двадцать три года такой выбор дается непросто. Когда пришло время дать ответ, моя девушка заболела, была необходима операция. Этот факт окончательно склонил чашу весов в сторону отношений и потенциальной семьи.
Вернуться в Цюрих оказалось куда сложнее, чем уехать из него. К тому же надо было решить вопрос максимум за два месяца. На Линкедине (англ. LinkedIn) я увидел предложение о работе в банке на позицию облачного (англ. cloud) инженера. Я работал в «Амазоне», а про программистов «Амазона» существует легенда, что они все великолепно знают амазоновское облако (конечно же, это не так). Этот миф позволил привлечь внимание и быстро пройти интервью. Собеседования были исключительно на адекватность, технических не было, так как репутации Amazon и IBM работали отлично.
В конце мая в Кишиневе состоялась защита моей дипломной работы на магистерскую степень. К сожалению, на церемонию вручения дипломов и фотосессию в мантиях я не попал. До сих пор обидно, что пропустил такой важный момент в жизни. В середине июня по традиции купил много конфет и пирожных – настало время прощаться. Я провел пять месяцев с этой командой, мы многому научились друг у друга.
За пару дней до отъезда менеджер пригласил меня на обед и задал крайне интересный вопрос:
– Илья, что тебя мотивирует в работе?
– Удовольствие людей, которые пользуются моим продуктом.
– Отличная мотивация. Это позволит тебе построить хорошую карьеру. На деньги тоже стоит обращать внимание, но удовольствие от них временное. А вот желание создать продукт для людей – то, что надо.
Credit Suisse
По традиции в первый понедельник июля я вышел на новую работу. Огромный офис с великолепным видом на город. Когда я первый раз жил в Цюрихе, часто смотрел на это здание, и оно казалось мне недосягаемым. «Замок» на склоне горы Утлиберг, где, по городским легендам, хранятся золото и драгоценности клиентов. «Там точно работают люди исключительно голубых кровей» – думал я тогда. Однако оказалось, что простых смертных туда тоже пускают. За исключением одиннадцатого этажа – в то время там сидели трейдеры. Нам говорили, что это для безопасности – правда, было не очень понятно, для чьей именно, нашей или их. Слухи же утверждали, что на том этаже есть бесплатный кофе и вкусняшки, поэтому остальным туда вход закрыт. Получается, все-таки для безопасности наших животов.
Credit Suisse – моя первая и последняя не технологическая компания (я имею в виду, что они зарабатывают деньги не на IT). На IT деньги в компании только тратили. Это сказывалось и на технологиях, которые там использовали, и на отношении к программистам. Во главе угла – безопасность. Это хорошая стратегия для банка, где хранятся сотни миллиардов долларов, и в то же время – повод рубить все инновации на корню. Через пару месяцев стало понятно, что главный принцип принятия решений у сотрудников – это безопасность собственного рабочего места. И все делается, на самом деле, именно для сохранения себя внутри компании. Это касалось всего персонала, не только тех, кто связан с IT. На дворе был 2018 год, но финансовый кризис 2008 года еще был свеж в памяти многих моих коллег.
В 2018 году Microsoft начал заходить на рынок облачных решений в Швейцарии и продал всем банкам гениальную мысль: «Интегрируясь с нашим облаком, вы уменьшите затраты на администрирование ваших дата-центров». На практике все оказалось не так гладко, но до этого надо было еще дойти. Поэтому внутри Credit Suisse создали несколько небольших команд, которые работали над концептами интеграции облака с разными продуктами банка. Я попал в команду «Онлайн Веб Банкинг».
Люди в команде разделились на тех, кто понимал облака, и тех, кто знал банковские сервисы. Среди нас не оказалось ни одного швейцарца, зато работая там, я глубоко вник в индийскую культуру. Несколько ребят из Индии были со мной в Цюрихе, а несколько находились в офисах в Бангалоре. За пару месяцев мы разработали концепт и частично имплементировали интеграцию облака с веб-банкингом. Всем очень понравилось, и нас попросили продолжить работу.
Внутри любой корпорации команды и подразделения ведут политические игры – идет негласная борьба за бюджет, за повышения, за славу. Иногда это мотивирует команды эффективнее работать, но порой может привести к откровенной вражде и абсолютному нежеланию помогать друг другу. Как раз второй случай был характерен для Credit Suisse. Я считаю, что именно нездоровая атмосфера внутри компании стала одним из факторов, которые привели ее к банкротству в 2023 году.
Для завершения проекта нам надо было переписать часть кода веб-приложения для облака. Исходный код хранился у наших коллег этажом ниже. Мы попросили код, чтобы портировать его в облако, и тут у них включился режим безопасности: «Если другие будут разбираться в нашем коде, нас будет проще уволить». И код нам наотрез отказались отдавать. Что бы мы ни делали, как бы ни просил наш менеджер или менеджер менеджера (и так далее по цепочке), ничего не помогало. В результате вместо трех дней мы потратили три недели на реализацию функционала.
Как заметил мой более мудрый коллега, IT-подразделение и половина других подразделений в Credit Suisse – это социальные клубы: утром пришел в офис, пару раз выпил кофе, сходил на обед и вечером ушел. Если просто хочешь спокойно жить – это идеальная работа. Но мне хотелось совсем другого – создавать классные продукты, которыми пользуются миллионы, а может быть, даже миллиарды.
С шестнадцати до девятнадцати лет я состоял в молодежном крыле политической партии в Молдове. Там я очень быстро усвоил: чтобы сделать что-то хорошее через политику, нужна власть. Чтобы получить реальную власть, надо быть либо очень умным, либо очень богатым. Политика внутри корпорации подчиняется тем же правилам. Власть в данном случае имеют топ-менеджеры и совет директоров. Чтобы попасть в одну из этих категорий, надо играть по устоявшимся правилам много лет, и только потом, возможно, представится шанс что-то поменять. Мне такая перспектива не нравилась, поэтому я решил уйти в компанию, продуктами которой пользуются миллиарды людей. Я решил уйти в Google.
Собеседования в Google
Я много раз подавал заявки на стажировки и постоянную позицию в Google, но ни разу не получил ответа. Живя в Цюрихе, я обзавелся знакомыми, которые могли протолкнуть мое резюме, чтобы меня пригласили хотя бы на собеседование.
Прежде чем отправить свое CV, около шести недель я потратил на подготовку. Решал задачи, освежал базовые знания и смотрел видео про собеседования в Google. В марте 2019-го я отправил свое резюме, и мне назначили онлайн-интервью.
Первое собеседование проходит с работником из отдела кадров. Там оценивают адекватность кандидата, задают пару простых технических вопросов. Если этот фильтр пройден успешно, наступает раунд технических интервью. Сначала онлайн, потом в офисе пять раз подряд. До 2020 года все последующие интервью были техническими, но с наступлением ковид-пандемии одно из них заменили проверкой коммуникативных навыков и вообще все собеседования стали проводить в онлайн-формате.
На первом онлайн-интервью надо было решить две задачки на структуру данных «список» (англ. List). «Справился хорошо, но не идеально. Достаточно для прохода на следующий этап» – такой отзыв оставил интервьюер. Я и сам чувствовал, что не доработал до конца. Следующий этап – собеседование в офисе – назначили через неделю.
Главными в оценке интервьюера были слова «не идеально», а я запомнил только «справился хорошо». Эта попытка выдать желаемое за действительное была громадной ошибкой. Я переоценил свою подготовку и вместо того, чтобы взять пару недель отпуска на серьезную тренировку, поторопился перейти на следующий этап. И это стало катастрофой.
Из пяти собеседований вживую действительно хорошим получилось только одно, два прошли средне, еще два – просто отвратительно. Провалены были те интервью, где дело касалось математики. В какой-то мере тут сказались пробелы университетской подготовки, отчасти – собственная лень. Пять собеседований подряд, где надо быстро думать, – это в принципе нелегко. А если еще и подготовка слабая, то шансов просто нет.
Через пару дней пришел закономерный ответ: отбор я не прошел, но через год можно попробовать снова. Это был большой удар по самолюбию. Самым обидным казалось то, что задания были вполне проходимыми. Главная сложность – ограничение по времени. Я решил бы каждую задачу в отдельности за два-три часа, но не за сорок пять минут – и так пять раз подряд. Как я уже говорил, скорость мышления – один из навыков, которые особенно ценят большие компании. Немного прибавить терпения и упорства, чуть больше математики и решенных задач – и все бы получилось. Но история не знает сослагательного наклонения.
В профессиональном спорте поражение – это часть жизни, обязательный этап роста. «Из одной проигранной партии можно узнать больше, чем из ста выигранных», – утверждал чемпион мира по шахматам Хосе Рауль Капабланка. И был абсолютно прав. Через три года, сделав работу над ошибками, я взял реванш у Google. К несчастью, а возможно и к счастью, именно в ту неделю, когда меня поздравили с успешным прохождением собеседования, Google объявил о приостановке найма. Сначала на две недели, затем – на два месяца, а потом и вовсе на неопределенный срок. Поэтому мечта так и осталась мечтой.
IBM Research
Живя в Цюрихе, я поддерживал отношения с бывшими коллегами из IBM Research. Через пару дней после фиаско в Google я получил звонок от Йенса Йелитто (нем. Jens Jelitto), коллеги, с которым мы делали блокчейн-проект для логистики: «Илья, мы нашли для нашего проекта партнера в индустрии. Готовы взять тебя на постоянную позицию. Что ты об этом думаешь?»
Стоит отметить, что попасть в IBM Research совсем не просто. Это в первую очередь научная организация, поэтому карьера многих ученых там начинается с прохождения докторантуры (PhD) или постдока. Собственно программистов в 2019-м было мало. Я вложил много сил в свой проект на стажировке и очень обрадовался шансу довести его до конца, как и возможности вернуться в одну из самых технологических компаний в мире.
Собеседования прошли успешно, мне сделали предложение в предпоследний рабочий день марта. Прежде чем на него согласиться, я поговорил со своим менеджером. Уходить надо так, чтобы не подставить команду и компанию. Наш проект находился в финальной фазе, и еще месяц я был готов работать без выходных. Руководство сочло это разумным компромиссом без потери репутации с чьей-либо стороны.
Тридцатого апреля я купил угощение, чтобы вспомнить хорошие моменты и отметить мой уход с коллегами в Credit Suisse. Второго мая, полный оптимизма и желания творить, я пришел в офис IBM Research.
Итак, круг замкнулся: я вернулся туда, куда не планировал возвращаться. В начале своего пути я и мечтать не мог о таком месте работы. Именно этот момент я считаю завершением моего карьерного дебюта. Он получился насыщенным, полным неожиданностей и удач. Я пожертвовал несколько «пешек» вначале, но полностью завладел инициативой. Была допущена как минимум одна серьезная ошибка. Но ведь не ошибается тот, кто ничего не делает.
Сейчас я нахожусь в стадии миттельшпиля и планирую его элегантно разыграть. Пара ходов в середине партии получилась очень удачной. Я возглавил реализацию первого государственного блокчейн-проекта в Германии для Федерального ведомства по делам миграции и беженцев (BAMF – Bundesamt für Migration und Flüchtlinge). Мы объединили в одну сеть несколько регионов (Bundesland) для автоматизации обмена данными о беженцах и мигрантах. На момент написания этой книги (2024 год) в Европе по-прежнему царит миграционный кризис, и наша система делает жизнь людей лучше, ускоряя их интеграцию в немецкое общество.
Вторым моим успешным проектом стали «ковидные паспорта». IBM Digital Health Pass – это была одна из первых в мире реализаций вакцинных паспортов. Мы внедрили ее в Нью-Йорке на полгода раньше, чем аналогичная система заработала в Европе. Я потрудился и над европейской реализацией. Немного моего кода исполнялось на Андроид-телефонах во всех европейских странах.
Вторую часть книги я назвал «Миттельшпиль». Как правило, дебют можно хорошо подготовить и просчитать. А вот миттельшпиль всегда уникален, поэтому надо импровизировать. Чтобы импровизация была более осознанной, я проанализирую разные аспекты профессии на реальных примерах и попробую предсказать, куда мои ученые коллеги тащат IT-мир и к чему нам, программистам, стоит заранее подготовиться.
Часть 2. «Миттельшпиль»
Чем глубже фундамент, тем выше здание можно построить
Корни образования горькие, но плоды сладкие.
Бурдж-Халифа – небоскреб высотой 828 метров в Дубае. На данный момент (2024 год) это самое высокое здание в мире. Безусловно, Бурдж-Халифа – памятник человеческой мысли, смелости, богатству. Но отличает этот небоскреб не только то, насколько он возвышается над поверхностью, но и то, на какой глубине расположен его фундамент.
Аравийский полуостров сформирован донными отложениями древнего океана, то есть преимущественно из песчаных пород. В отличие от Манхэттена, где пригодный для высоких и тяжелых зданий скалистый грунт лежит близко к поверхности, здесь относительно твердые породы встречаются значительно реже. Этот фактор приходилось учитывать чикагскому архитектору Эдриану Смиту. Чтобы построить здание в 828 метров, в землю вкрутили 192 сваи диаметром полтора метра и длиной 45 метров (половина футбольного поля). Далее над ними надстроили бетонную плиту шириной 3,7 метра. Эта сложная конструкция и образует фундамент самого высокого здания в мире. Именно благодаря такой мощной базе проект был успешно доведен до конца и ежегодно притягивает сотни тысяч туристов.
Что является фундаментом для программиста в быстро меняющемся мире? Нужен ли вообще этот фундамент? Стоит ли строить его с помощью учебы в университете? А может, лучше выбрать хорошие курсы или самообразование? Обязательно ли учить математику? На эти фундаментальные вопросы я отвечу в следующей главе.
IT-фундамент
Поработав в разных отраслях, огромных корпорациях и маленьких стартапах, с умными и очень умными людьми, я сформулировал конкретный ответ: фундамент для программиста – это продвинутые базовые технические навыки в информатике, широкий кругозор и хорошая математика.
Базовые технические навыки в информатике – это структуры данных, базы данных, алгоритмы и низкоуровневый язык Си. Глубоко освоив эти вещи, можно будет без особых проблем выучить 80 % высокоуровневых языков и программировать на них так, чтобы было не очень стыдно показать другим людям. Не стоит в начале обучения гнаться за какой-то конкретной модной технологией, в некоторых отраслях тренды полностью меняются за пять-семь лет.
Когда я начинал заниматься веб-разработкой, главной библиотекой считалась jQuery (релиз в 2006 году), использовавшаяся для анимации и придания динамики сайтам. Мне казалось, что jQuery будет вечной, потому что ничего лучше придумать нельзя. В 2013-м Facebook опубликовал первую версию ReactJS для создания сайтов и веб-приложений. Эта библиотека полностью поменяла все парадигмы. Но если веб-разработчик хорошо разбирался в базовых технологиях браузера, то переучиться не составляло труда. Аналогии можно привести и в совершенно других областях. Например, если программист хорошо знает один из базовых языков – Java, – он может одинаково эффективно использовать серверную библиотеку Spring и писать программки для пластиковых карт с чипом NFC.
Наилучшим доказательством моих слов будут требования к кандидатам в больших компаниях, таких как Google, Amazon, Microsoft. За исключением узкоспециализированных вакансий (например, криптограф), знания требуются очень широкие и в то же время базовые (см. выше). Я дважды проходил собеседования в Google, по совокупности около четырнадцати испытаний – и второй раз даже успешно. Интервьюеров в первую очередь интересовали скорость мышления и знание основ. Причина таких требований состоит вот в чем: после выхода на работу новый сотрудник получает около трех месяцев на обучение конкретным технологиям для конкретного проекта. Считается, что при наличии соответствующей базы этого времени будет достаточно, и поначалу компания готова в него инвестировать.
Вторая важная составляющая IT-фундамента – широкий кругозор: история, география, литература, философия, экономика. Прошло то время, когда программисты работали поодиночке. Сейчас создание любого инновационного продукта – это долгая работа в больших командах под руководством эффективных менеджеров. Нельзя построить квантовый компьютер за полгода в гараже с друзьями.
Рабочие дни программиста – далеко не только сидение за компьютером. Вы выходите с кем-то из коллег пообедать, выпить кофе, общаетесь на отвлеченные темы. Умение работать и взаимодействовать в команде – такой же навык, как язык программирования. Чтобы с тобой хотели работать месяц, достаточно быть приятным в общении. Чтобы с тобой хотели работать годами, ты должен быть еще и интересным собеседником. Чтобы руководить и вести за собой коллектив, ты должен быть приятным, интересным и эффективным. Где эффективность – это профессионализм, помноженный на скорость.
Математика
Третий важный навык – математика. Математику не зря называют царицей наук. Она используется везде: в музыке, в автопилоте машин, при оплате покупок в магазине.
В музыке нотная грамота подчиняется строгим правилам сложения дробей. Если половина мелодии написана в размере 2/4, а другая половина – в 3/4, и все такты перемешаны вразнобой, то человеческое ухо быстро это распознает, такая музыка вызывает дискомфорт.
Автопилот (в 2024-м) – это натренированный искусственный интеллект, который с помощью камер распознает предметы и принимает решения. Сам процесс тренировки и последующей оптимизации включает в себя операции над огромными (100…000 × 100…000) математическими матрицами из раздела дискретной математики. При оплате покупок кредитная карта вместе с платежным терминалом каждый раз исполняют криптографические протоколы, которые в 2024 году основаны либо на больших числах и дискретном логарифме, либо на эллиптических кривых.
«Ну мне-то точно эта сложная математика не понадобится. Где я и где автопилот последнего поколения» – так думали и я, и мои одногруппники в университете. И действительно, максимум 1 % программистов используют в работе математику. Однако впоследствии я понял, что нужна она не только тем, кто ее применяет впрямую или косвенно, а действительно всем – как гимнастика для ума. Мозг – это своего рода мышца, его можно и нужно тренировать. Математика – отличный способ заставить мозг работать быстрее и дольше. Один из базовых тренировочных процессов в шахматах – решение задач: мат в два хода, выигрыш ферзя в три хода и т. д. Чем быстрее шахматист решает задачи, тем быстрее и дальновиднее он действует в реальной игре. Так же и с математикой в жизни – она раскачивает мозг и позволяет думать быстрее, глубже и дальше.
Я вижу это на примере своих коллег-криптографов. Специалист по криптографии – это в первую очередь высококлассный практикующий математик. Когда мы вместе играем в викторины, становится очевидно, что они думают раза в полтора быстрее, чем я.
Невероятную историю я услышал недавно на круизном лайнере от ученого, занимающегося физикой элементарных частиц, который много лет трудился над созданием Большого адронного коллайдера (БАК) под Женевой в ЦЕРНе. БАК – это кольцо длиной примерно двадцать семь километров, предназначенное для разгона протонов, тяжелых ионов и других элементарных частиц с целью их соударения. Главный смысл его создания – изучение устройства Вселенной начиная с самых маленьких ее частиц и попытка заглянуть в прошлое, вплоть до Большого взрыва. Невероятность этой истории заключается вот в чем: человек тридцать лет жизни посвятил физике элементарных частиц, его статьи были процитированы более 10 000 раз (это очень много в академическом мире), а потом ушел в американский стартап, чтобы заниматься расшифровкой ДНК по волосам, потому что там платят в несколько раз больше.
«Но как можно перейти из такой физики к расшифровке ДНК?!» – спросил я его жену, когда он отошел, чтобы ответить на звонок по работе. Ответ был прост: «Если понимать физику и математику такого уровня, то другие области – сущий пустяк. За пару месяцев он вник в процесс на уровне профессионального биолога». Эта история лишь подтвердила, что себя надо тренировать не только физически, но и ментально.
Университет или самообразование?
Большинство воспринимает университет как место, где можно приобрести специальность. Это утверждение верно лишь наполовину. Университет дает не просто определенный объем информации, здесь можно получить структурированные, комплексные знания от экспертов в самых разнообразных областях, которые, на первый взгляд, абсолютно не связаны между собой. Я делаю акцент именно на структуре, которой крайне сложно следовать самостоятельно. Ну кто в здравом уме будет по собственному желанию заниматься философией или дискретной математикой в восемнадцать-двадцать лет? В этом возрасте есть тяга к конкретным результатам, и порой кажется, что занятия философией только тормозят учебный процесс. Однако в долгосрочной перспективе для построения успешной карьеры нужно иметь развитое критическое мышление, а комплексное образование как раз способствует его формированию. Корпоративный мир – это не зоопарк, а джунгли. Нередко там встречаются политические игры, манипуляции и полуправда. Именно критическое мышление и правильная оценка ситуации помогут принимать адекватные решения.
Помимо системности образования, университет дает еще одно большое преимущество: живое общение с преподавателями. Казалось бы, книга и профессор могут дать одинаковые знания. Возможно, хороший учебник даст их даже в большем количестве. Зато профессор может указать на то, чего вы не знаете. Задавая каверзные вопросы, заставляя вас думать и анализировать, он поможет найти слабые места в вашей подготовке и определить направления для дальнейшего развития.
Не менее важными являются связи, которые формируются в университете и зачастую поддерживаются в течение всей жизни. Именно поэтому надо постараться попасть в хороший университет: там, как правило, выше концентрация умных и мотивированных людей, которые в будущем станут топ-менеджерами в разных компаниях. По этой же причине стоит время от времени отдыхать в хороших отелях – там часто попадаются крайне умные и интересные люди.
Университет также предоставляет доступ к огромному количеству стажировок и программ по обмену. Я смог поехать на стажировку в IBM Research в Швейцарию только потому, что учился в магистратуре. Если есть возможность полгода провести в другой стране в рамках программы по обмену – это нужно обязательно сделать. Так вы разовьете кругозор и станете чуть больше понимать и принимать другую культуру, что в будущем положительно скажется на выстраивании отношений в мультикультурных командах.
Означает ли все написанное выше, что программисту не особо нужно самообразование, если он окончил университет? Думаю, ответ очевиден: нет. Университет – это фундамент, на котором можно строить IT-карьеру. Насколько высоким получится «дом» в нашем быстро меняющемся мире, будет зависеть от качества самообразования в дальнейшем (в приложении 1 я дам несколько рекомендаций по разным направлениям).
Американские ученые ввели термин «период полураспада компетентности». Он означает единицу измерения устаревания знаний. По статистическим оценкам:
1. Устаревание знаний инженера-выпускника 1940 года наступало через 12 лет.
2. Знания выпускника 1960 года устаревали через 8–10 лет.
3. В 1970 году устаревание знаний происходило через 4–5 лет.
4. Знания выпускника 2000 года устарели через 2–3 года.
В некоторых направлениях IT-сектора знания надо обновлять каждый год. Поэтому подход «один раз выучил – всю жизнь применяю» в XXI веке просто невозможен. Неважно, на какой вы стадии карьеры, чтобы оставаться востребованным специалистом, необходимо заниматься самообучением всю жизнь. Но сначала, как мы помним, надо «выкопать» глубокий образовательный фундамент, чтобы потом на нем строить большую карьеру.