banner banner banner
IT Компас: как правильно программировать IT-карьеру
IT Компас: как правильно программировать IT-карьеру
Оценить:
Рейтинг: 0

Полная версия:

IT Компас: как правильно программировать IT-карьеру

скачать книгу бесплатно


Я тоже не знал, что такое Golang. Тогда этот язык только набирал популярность благодаря большой поддержке и продвижению со стороны Google. Прочитав в «Википедии», что это за язык программирования, я решил, что смогу: «Learning by doing – несколько раз получилось, получится и в этот раз». Ответил согласием и в очередной раз сделал рискованный шаг в неизвестность. Как оказалось потом, я и близко не представлял, на что подписываюсь.

В самолете на обратном пути я прочитал две книги из серии «Golang для чайников» и официально начал проект, не написав на нем ни одной строчки кода. Задача заключалась в создании приложения для продажи и стриминга манги (японские комиксы). Я делал серверную часть, а коллега из Crunchyroll – мобильную. Меня ждала новость, которая сразу же добавила мотивации: «Дедлайн запуска проекта 31 декабря. Если мы не успеваем к этому времени, то Crunchyroll должен заплатить 20 000 долларов штрафа за задержку продаж манги в США». На дворе была середина октября, то есть до дедлайна оставалось два с половиной месяца.

До конца декабря пришлось забыть, что значат выходные и встречи с друзьями. Параллельно я еще поступил на программу магистратуры в университете и старался не отставать в учебе. Через месяц какое-то подобие манга-приложения уже начало вырисовываться, и мой менеджмент был доволен предварительными результатами. Было принято решение развивать данное направление и создать Golang-подразделение. Честь возглавить его выпала мне, потому что там был всего один человек (я).

Очень хорошо помню первого специалиста, которого нанял на работу, и наше с ним собеседование. На тот момент мне было 21, а ему – 42. Мне понравилось, что он четко понимал, чего не знает, и не скрывал этого. За три месяца я набрал команду из шести человек, получился хороший сплав из молодости и опыта. С помощью новых сотрудников я успел доделать проект (с кучей сомнительных и временных решений) до конца декабря, и в начале января мы запустили манга-сервис. Это был оглушительный успех.

В середине января мы переехали в новый офис в центре города. Сразу после переезда нам сообщили, что всю компанию в Кишиневе покупает Crunchyroll. Официальные причины покупки – расширение линейки продуктов и необходимость в новых людях. Реальная – оптимизация расходов. Если в Кишиневе работают эффективно и запускают новые сервисы в краткие сроки, зачем переплачивать местным сотрудникам? Буквально через две недели нам сообщили, что в Сан-Франциско сократили несколько десятков человек. Все программисты, с которыми мы работали над первым проектом, были уволены. Грустно, но показательно. Все, кого можно заменить аутсорсом, рано или поздно будут заменены.

Мне же только стукнуло 22 года, я был тимлидом лично созданной команды в быстро растущей компании с головным офисом в Сан-Франциско. Как говорили мои друзья, жизнь удалась.

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 форматов)