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

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

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

Как начать программировать? Как сделать классную IT-карьеру? Эти вопросы не раз задавали себе миллионы людей по всему миру. Илья Кырчумару дает всеобъемлющие ответы на эти и другие вопросы. После прочтения этой книги вы будете понимать:

1. Принципы построения долгосрочной карьеры, правильной мотивации и стратегии.

2. Какие IT-профессии будут востребованы в будущем, а какие проиграют сражение с искусственным интеллектом.

3. Особенности разных типов IT-компаний, их преимущества и недостатки.

4. Влияние образования и глобализации на IT-сектор в разных регионах.

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

Илья Кырчумару за свою карьеру прошел путь от фрилансера маленьких сайтов в Молдове до программиста и архитектора в таких компаниях, как Amazon и IBM Research. Эта книга – личный опыт автора, его размышления о жизни, технологии и карьере в IT.

Предисловие

«Фg7 (ферзь g7) – мат» – оппонент с явным удовлетворением поставил точку в заслуженно выигранной партии. Последний аккорд на чемпионате Европы по шахматам в Батуми вышел таким же минорным, как и предыдущие восемь из десяти. После этой, девятой по счету, проигранной партии стало понятно, что карьеру в шахматах мне не сделать. В тот раз я не просто плохо сыграл – это был турнир, который однозначно показал, что в свои шестнадцать я уже слишком сильно отстал от лучших шахматистов континента.

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

Над этим вопросом я раздумывал во время финальной партии. Пожимая руку противнику, я уже знал ответ: «Шахматы останутся в прошлом».

Через несколько месяцев я начну делать сайты (за которые мне до сих пор стыдно). Именно так начался мой путь в программировании.

За четырнадцать лет (с 2010 по 2024 год) я прошел путь от программиста-фрилансера, занимающегося созданием маленьких сайтов в Кишиневе, до архитектора информационных систем в IBM Research в Цюрихе. Это не самый легкий вариант построения карьеры, но и невыполнимым его тоже не назовешь. Профессиональное развитие похоже на длинную дорогу, на которой путника непременно поджидают всевозможные приключения и опасности. В моем случае это был крайне интересный, полный риска и удачи путь, пролегающий через маленькие фирмы Молдовы к таким гигантам финансового и технологического мира, как Credit Suisse и Amazon.

Эта книга для тех, кто делает первые шаги в профессии (или только планирует их сделать). Хочется поделиться личным опытом и советами блистательных коллег, которые меня многому научили, развенчать некоторые мифы о науке, работе в корпорациях и собеседованиях в Google. Вместе с читателем мы порассуждаем о важности фундаментального образования и попробуем заглянуть в будущее глазами работника лаборатории, где одновременно разрабатывают магнитные ленты (ага, те самые, с которых мы когда-то слушали музыку), искусственный интеллект (эра LLM уже началась) и квантовые компьютеры.

Мне часто задают вопросы: «Как попасть в программирование? Что лучше: университет или самообразование? Какую специальность и специализацию выбрать? Работать в большой или маленькой фирме? Как продвигаться по карьерной лестнице и управлять командами? Где лучше работать, чтобы зарабатывать много?» Постараюсь дать глубокие и подробные ответы на эти и другие вопросы. Так как я не планирую останавливаться на достигнутом, а технологии совершенствуются с космической скоростью, моя книга будет также развиваться: устаревшую информацию со временем заменят свежие взгляды и идеи.

Книга разделена на две части: «Дебют» и «Миттельшпиль». Их можно читать друг за другом или по отдельности. Каждая глава в «Миттельшпиле» раскрывает отдельный аспект IT-сферы.

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

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

P. S.: Эта книга не учебник по программированию. Это – мой личный опыт, размышления о жизни, технологиях и карьере в IT. Мною руководила искренняя заинтересованность в том, чтобы Вы, дорогой читатель, сделали классную IT-карьеру!

Часть 1. «Дебют»

Первые шаги в программировании: HTML для чайников

«Что делать дальше? А самое главное, как зарабатывать деньги?» – эти два вопроса возникли сразу после того, как я в 16 лет решил оставить шахматную карьеру. Я по-прежнему учился в школе и делал это хорошо, особенно силен был в математике, физике и истории. Без ложной скромности скажу, что был одним из лучших и в таком предмете, как физкультура. Школа и родители привили мне любовь к спорту, ведь «жизнь слишком коротка, чтобы быть не в форме».

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

И все же, как зарабатывать деньги? Начал я с уроков шахмат для детей. Мне повезло: в нашем многоквартирном доме несколько лет назад случился беби-бум, и новым детишкам как раз исполнилось по три-четыре года. Мое вознаграждение составляло 1–2–3 доллара в час плюс огромное удовлетворение от проделанной работы. Именно тогда я понял, как сильно мотивирует конкретный результат своих усилий. Когда мой пятилетний ученик впервые участвовал в соревнованиях, у меня аж живот от нервов сводило. Зато когда он выиграл свой дебютный турнир и получил четвертый разряд, счастью не было предела. Тогда я осознал, как радовались и переживали мои тренеры. Как они искренне болели за нас и расстраивались, когда мы упускали призовые места на последних ходах.

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

Шестнадцать лет – чудесный возраст, ведь все самое интересное только начинается. Но, как правило, это интересное требует каких-то дополнительных денег, а родители могли обеспечивать только базовые потребности. Шахматное тренерство приносило небольшие деньги, но на новые интересы и желания их не хватало. Например, я хотел заниматься большим теннисом и музыкой, а еще надо было начинать приглашать девочек в кино, покупать им цветы. По-честному, девочки, конечно, были приоритетнее, чем гитара или пианино.

В этот момент мама рассказала, что сын ее подруги делает сайты и хорошо зарабатывает. В школе у меня была информатика, мы учили Паскаль. Я ничего в этом не понимал и имел среднюю оценку 7 (из 10).

«Ладно, если попробую, ничего не потеряю», – решил я. Вычитал в Википедии, что сайты состоят из HTML, CSS и чего-то там еще, и так как ничего не знал об этом, то вбил в Google: «HTML для чайников». Этот поисковый запрос я считаю началом своей IT-карьеры.

HTML оказался не самой сложной технологией (во всяком случае, понятнее, чем Паскаль), было интересно, но как-то скучновато. Я старательно изучал инструкции из книги по HTML, но далеко не все получалось с первого раза. Да даже со второго не получалось. Сейчас-то я точно знаю, что поиск ошибок – debugging – это неотъемлемая часть жизни программиста, поэтому надо быть готовым заниматься скучной и методичной работой. К счастью, профессиональный спорт научил, что без упорного труда успеха не добиться. Поэтому я вдумчиво изучил HTML, затем CSS и, наконец, дошел до JavaScript. Тогда сайты приобрели динамику и стали похожи на те, которыми я пользовался. Появилось некоторое удовлетворение от проделанной работы: «Теперь я что-то да могу».

Обычно так и бывает: чтобы выйти на новый уровень развития в какой-то области, надо приложить определенные усилия, поначалу это неприятно и немного страшно. Если усилий будет достаточно и обстоятельства сложатся удачно, придет результат, а с ним и удовлетворение. Сверхспособности и гениальность не гарантируют успеха: без упорного труда не получится достичь больших высот в профессии. Даже Моцарт потратил тысячи часов на обучение музыке, а историки утверждают, что ноты он выучил раньше букв.

Более-менее освоив HTML, CSS и JavaScript, я наивно решил, что готов к работе. Как раз в это время подвернулась возможность сделать сайт для стоматологической клиники, в которой я проходил лечение. Жизнь часто подбрасывает шансы проявить себя, важно уметь их замечать. В общем, мы договорились о небольшой цене за сайт, и я приступил к работе. На тот момент я обладал примерно половиной знаний, необходимых даже для такого маленького проекта, но моя сила была в том, что я этого не осознавал и был готов работать над сайтом, пока он не запустится.

Это был своего рода процесс Learning by Doing (изучение во время исполнения). Оказалось, что, помимо непосредственно разработки, надо зарегистрировать доменное имя (название сайта), где-то этот сайт развернуть, соединить доменное имя с физическим сервером и предоставить клиенту возможность редактировать данные. А для этого их надо хранить в базе данных, а для этого нужно… еще то, это, пятое, десятое. Подобно матрешке, большая и вроде бы понятная задача распадалась на множество мелких, решение которых уже не было столь очевидно новичку. Никакого ChatGPT тогда не было, всю информацию я получал в основном из книг и своих ошибок.

Получилось ли у меня в итоге выполнить работу? Конечно. Понравился ли клиенту сайт? Несомненно. Понравился ли сайт мне? И да, и нет. Он точно был неидеален, но я вложил в него всю душу.

Три урока было усвоено:

1. Чтобы сделать проект, не обязательно знать все необходимое на старте. Многие вещи можно будет доучить позже при наличии готовой базы.

2. Если клиенту все нравится, не стоит его в этом переубеждать. В будущем я узнаю, что это является одной из заповедей консалтинга.

3. Прыгать в незнакомые воды страшно, но это самый быстрый путь к получению знаний и навыков. Финансовая и личная ответственность в сто раз сильнее мотивирует к действию, чем самодисциплина. Правда, такая ответственность заставляет по-настоящему нервничать и легко вгоняет в стресс.

Стресс – неотъемлемая часть жизни. Чем выше уровень, тем больше будет стресса. Создание сайта за 150 долларов не сравнится по силе нервного напряжения с разработкой системы за десять миллионов долларов. Необходимо учиться самоконтролю, это позволит проживать сложные рабочие моменты без потерь для здоровья. Чтобы творить всю жизнь и делать классные проекты, нужно найти собственные приемы для восстановления. Я борюсь со стрессом с помощью музыки, чтения, танцев и спорта. Особенно хорошо подходит теннис: тут и гимнастика для глаз (фокус переключается с мяча вблизи и на сторону противника вдалеке), и психологическая разрядка (во время удара ракеткой можно представлять, что бьешь особенно раздражающего клиента или своего рассеянного коллегу). Великолепно работает, когда именно с таким коллегой и играешь.

Итак, первый сайт запущен, первые деньги на этом заработаны, но теперь хочется большего. Работая над тем проектом, я осознал, что мне не хватает глубокого понимания технологий. Поэтому первый гонорар был реинвестирован в себя. Я записался на курсы по веб-разработке. Это было правильное решение: за пятнадцать учебных часов с преподавателем я получил столько знаний, на самостоятельное освоение которых понадобилось бы минимум в десять раз больше времени. Когда есть возможность, фундамент надо строить с профессионалом. Это касается любой области, будь то музыка или стендап-выступления. Так вы потратите меньше времени и сразу научитесь делать правильно. Зачастую переучиваться куда сложнее, чем учиться.

Что есть фундамент в IT? На этот вопрос нет однозначного ответа. Математика или низкоуровневый язык программирования? А может, достаточно новомодного Питона и пары библиотек искусственного интеллекта? Я ответил бы на этот вопрос так: фундамент – это навыки и знания, которые позволят на протяжении всей карьеры изучать, применять и создавать новые технологии.

Где и как построить IT-базу? Тут можно вести долгие дискуссии относительно необходимости высшего образования, преимуществ онлайн-курсов и реальной практики. Я же в этом вопросе категоричен: надежный IT-фундамент можно создать только одним способом. В университете.

Университет

Собираясь поступать в университет, я, честно говоря, не мыслил сложными категориями. Мне исполнилось 18, я окончил школу и успешно сдал выпускные экзамены. Это был первый год проведения экзаменов с видеонаблюдением, и списать было очень сложно. Все были в шоке, когда оказалось, что больше половины учеников не сдали минимум один предмет. Я же, сильно потея и много шутя, уверенно сдал все предметы со средним баллом 9,2 (из 10) и с оптимизмом смотрел в будущее. Поэтому в июне 2013-го настало время решить, что учить и где учиться дальше.

Вопроса «Стоит ли идти в университет?» у меня не было. Все мы помним истории Билла Гейтса и Марка Цукерберга, которые в свое время ушли из университета и основали великие компании. Но они-то учились в Гарварде. Я же на Гарвард явно не тянул. Мне куда ближе была история Сергея Брина и Ларри Пейджа, которые написали первую версию поисковика Google в качестве исследовательской работы на степень PhD, то есть базируясь на знаниях, добытых в университете.

Еще в апреле я дважды сдал SAT (американский экзамен для школьников), планируя поступить в американский университет в Болгарии. Но результатов SAT хватило только на скидку в 50 %, что требовало бы где-то 10 000 долларов в год на обучение. Такая сумма была нам с родителями не по карману, и эта опция отпала сама собой.

У меня были хорошие шансы воспользоваться квотой для молдаван на обучение в России. Молдова – это двуязычная страна, мы все (почти) говорим на русском и молдавском языках. Был вариант попробовать поступить в Московский государственный университет – МГУ, самый престижный вуз России. Но жизнь в мегаполисе – это пробки, загрязненный воздух и студенческое общежитие. Поэтому я решил, что лучше эти два-три часа в день использовать на обучение, чем тратить их на стояние в пробках и долгие перемещения по большому городу. Мне казалось, не столь важно, в каком именно университете учиться. Оглядываясь назад, я вижу, что был крайне наивен в своих представлениях о жизни вообще и об образовании в частности.

Решив учиться в Молдове, я колебался между информатикой, математикой и физикой. Математику я знал лучше всего, но тогда она казалась мне бесперспективной. «Что с ней потом делать, кому она будет нужна в каком-нибудь, условно, 2020 году?» – спрашивал я себя. «Ведь есть же компьютеры, они все прекрасно считают», – соглашалась со мной мама. Сейчас, ежедневно работая с криптографами, я мысленно возвращаюсь в 2013 год, чтобы сказать себе: «Илюша, если не специализируешься на математике, хотя бы учи ее серьезно!»

В школе мне нравилась физика. Я принимал участие в школьных олимпиадах по математике и физике, занимал места на региональных соревнованиях. Но что делать с физикой после университета конкретно в Молдове, было неясно. Конструкторских бюро или больших заводов в стране нет, а уезжать мне не хотелось. Поэтому, взвесив все за и против, я решил учиться информатике. Это было крайне прагматичное решение: рынок IT в Молдове ежегодно увеличивался, что давало высокие шансы найти работу после университета. Сейчас могу сказать, что из всех моих выводов, догадок и умозаключений правильным оказалось только одно: найти работу в IT в Молдове было действительно легко.

Даже имея опыт создания сайтов, я плохо понимал школьную информатику и из точных наук знал ее хуже всего. К тому моменту я сделал и запустил два небольших сайта для клиентов, поэтому мог смело сказать, что обладаю опытом в веб-разработке. Первые заработанные деньги мотивировали дальше развиваться в этом направлении. Однако я интуитивно чувствовал, что только курсов и самообучения будет недостаточно. Поэтому решил учиться в местном университете на факультете математики и информатики – в конце концов, если не понравится, всегда можно уйти. На следующие пять лет моей альма-матер стал Молдавский государственный университет. По иронии судьбы, тоже МГУ. Позже я приду к выводу, что сходство между Московским и Молдавским университетами кроется только в аббревиатуре, во всем остальном мой МГУ, к сожалению, значительно уступает российскому тезке.

Первый курс мне очень понравился, мы изучали основы программирования и математики: низкоуровневый Си, который является базой для 80 % современных языков, базы и структуры данных, дискретную математику и логику. С одной стороны, я был классическим ботаником: выполнял все домашние задания и тянул руку на семинарах и лекциях, с другой стороны, продолжал работать над заказами и пытался применять изученные вещи на практике. На удивление, искать клиентов мне не пришлось: они приходили сами либо по рекомендациям от предыдущих клиентов, либо через знакомых. Два моих самых больших проекта пришли через игру в футбол (мы тогда собирались любительской командой, арендовали поле). Правильное поведение в спорте обычно помогает расположить людей к себе: если с тобой хотят играть в одной команде, то, скорее всего, захотят и работать.

Дебютный учебный год прошел быстро и в удовольствие. Уже во втором семестре я стал лучшим на факультете по среднему баллу и занимал первую строчку следующие четыре с половиной года, до окончания бакалавриата и магистратуры. Но к концу первого курса стала очевидна следующая проблема: учиться было слишком легко. И причина была отнюдь не в моей гениальности, а в малом количестве учеников и их плохой подготовке. Это был год, когда половина школьников не сдала выпускные экзамены, а значит, автоматически лишилась шанса поступить в университет. Информатика и до этого не пользовалась огромной популярностью, что странно, учитывая зарплаты в несколько раз выше, чем в остальных секторах. Но реальность была такова: нас было мало, около двухсот на потоке, четверть попала туда случайно, еще четверть отправили родители. «Если двойки стоят в линию, это проблема ученика, а если в колонку – проблема учителя» – эта логика заставляла преподавателей снижать требования, объяснять меньше, чем они хотели бы, и упрощать экзамены, чтобы большинство смогло пройти дальше. Иначе студентов нужно было бы отчислять, а это чревато закрытием групп и потерей работы.

По опыту шахматных уроков я знал, что нет ничего лучше для учителя, чем ученик, который стремится к большему. Поэтому порой буквально заставлял преподавателей давать нам опциональные усложненные задания и настаивал на том, чтобы сложные темы подробно разбирались на занятиях. Преподаватели с огромной радостью шли мне навстречу, чего нельзя сказать о большинстве моих одногруппников. «Ботаник, выскочка, зубрила» – так думала обо мне половина факультета. Это абсолютно нормально, если достигаешь успеха и чем-то выделяешься, найдутся те, кто будет тебя осуждать. Зависть, непонимание и еще тысяча причин, по которым одни люди обсуждают других. Так было, есть и будет. Лучшее, что тут можно сделать, – просто заниматься своими делами, не пытаясь что-то кому-то доказать.

В библиотеке я отыскал монографию Дональда Кнута «Искусство программирования». Четыре тома о базовых алгоритмах, структурах данных и теории информатики. Читая книгу, я был поражен, насколько огромен и сложен этот мир. Особенно удивила именно сложность, так как уже к сотой странице я окончательно перестал понимать, о чем речь. В этот момент все большую популярность начинала приобретать Coursera – онлайн-платформа с курсами по разным направлениям. Coursera стала для меня дополнением к университету, там была возможность глубже погрузиться в темы, которые меня интересовали. Где-то я прочитал, что на собеседованиях в Google задают вопросы по структурам данных, поэтому в первую очередь выбрал курс «Алгоритмы» (англ. Algorithms) от преподавателей Принстона Роберта Седжвика и Кевина Уэйна. Мне понадобилось три попытки (и два года), чтобы пройти и полностью осознать этот курс.

С наступлением трехмесячных летних каникул человек сорок с факультета уехали работать в США по программе Work and Travel. Это был отличный способ скопить две-три тысячи долларов, работая официантом или кассиром. Средняя зарплата в моем городе была около четырехсот долларов в месяц, поэтому две тысячи долларов были большой суммой для студента. Моего английского было достаточно для такой работы, но я решил мыслить стратегически, как меня учили в шахматах.

Если представлять карьеру как шахматную партию, то время в университете – это дебют (начало партии). Главная задача дебюта – развить свои фигуры и получить хорошую позицию для осуществления главного плана на игру. Поэтому я пожертвовал потенциальными двумя тысячами долларов и устроился на лето в небольшую фирму Deeplace, заниматься веб-разработкой за двести долларов в месяц. «Главная задача на ближайшее время – развитие своих фигур (навыков), а деньги не главное», – решил я перед началом работы. Этим принципом я руководствовался следующие десять лет.

Мне повезло, у нас были классная команда и очень опытный руководитель. Мы делали сайты для государственного сектора, и мне даже удалось поработать над новым сайтом Национального банка Молдовы. В первую же неделю я почти положил наш локальный сервер, случайно отправив на него пару миллионов электронных писем. За три месяца я поучаствовал в пяти проектах, поговорил со всеми менеджерами продаж и даже один раз присутствовал на переговорах с клиентом. Это был отличный опыт: я научился работать с Линуксом, что должно входить в базовый набор любого программиста; поэкспериментировал с базами данных и посмотрел, как организовывается работа проектов, когда участников больше, чем два человека. В конце лета мне предложили остаться и работать дальше на полставки, чтобы я мог совмещать работу и учебу.

Предложение было заманчиво, зарплата со временем увеличивалась бы, но разве информатика и IT-мир крутятся только вокруг сайтов? Конечно нет! Кто-то ведь проектирует программное обеспечение для самолетов, операционные системы для компьютеров и логику для кредитных карт. Я доверился интуиции, которая подсказывала, что пока стоит отказаться от работы. Надо копать глубже, строить фундамент шире, дебют только начинается. Говоря шахматным языком, я разыграл гамбит: пожертвовал пешкой сейчас, чтобы в будущем получить инициативу и выиграть партию.

Тогда я не осознавал правильности и важности решения, это действительно была интуиция. В то же время, в свои восемнадцать лет, выбирая, где учиться, я еще наивно полагал, что особой разницы между двумя МГУ (Молдавским и Московским) нет. Всего через год, в девятнадцать, я уже четко понимал: неизвестно, что может потребоваться в большом мире информатики, поэтому надо стремиться получить как можно больше знаний и навыков – сформировать фундамент, а потом принимать важные решения.

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

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

Когда требовать справедливости (то есть просить зарплату)

С окончанием второго года снова встал вопрос, что делать дальше. Несколько моих одногруппников еще в мае рванули в Штаты по программе Work and Travel, на кону стояли очередные три тысячи долларов. Я же заканчивал свой личный проект поисковой системы спа-салонов и неожиданно выиграл стипендию на месяц интенсивного изучения немецкого языка во Франкфурте. На экзамене требовался уровень не ниже B1, я написал его довольно плохо и прошел по нижней грани тех, кого отобрали. Мне повезло, потому что я был мальчиком-программистом среди множества девочек-германисток и, видимо, организаторам курсов хотелось разбавить женский коллектив.

Я снова не поехал по программе Work and Travel, продолжая придерживаться стратегии «вначале опыт, потом деньги». Дизайнер моих сайтов работала тогда в большой молдавской IT-фирме DAAC System Integrator и предложила мне сходить туда на собеседование.

То собеседование я помню очень хорошо. Начало июля, жаркий солнечный день, в офисе компании царит расслабленная атмосфера, как обычно бывает в начале периода отпусков. Меня собеседовали начальник отдела и тимлид команды. Оба сильны в базах данных и серверной (backend) разработке, двадцать с лишним лет опыта, проектировали и внедряли автоматизацию процессов для половины государственного сектора страны. Я со своими сайтами на их фоне выглядел зеленым юнцом (как по возрасту, так и по опыту). Но в моих глазах горели задор и желание работать в этой команде.

Собеседование было по большей части техническим, и в основном ответить на поставленные вопросы я не мог. Через сорок минут всем стало очевидно, что знаний в Java для серверной разработки мне не хватает. Ответ: «Илья, ты хороший парень, но надо еще поучиться» – уже витал в воздухе. «План А провалился» – такова была моя оценка происходящего. Надо было срочно что-то предпринять. Отправляясь на собеседование, я предполагал, что такое может случиться, и заранее продумал план Б. Поэтому достал свой главный козырь и сыграл на опережение:

– Я готов работать бесплатно. Вы можете сами решить, когда начать мне платить.

– Так, это меняет дело. Дай нам пару дней, мы позвоним.

У меня был реальный опыт, моя знакомая дизайнер дала мне хорошие рекомендации. Через три дня позвонил начальник отдела и сказал:

– Илья, ты нам понравился. Мы считаем, что польза от тебя будет и у нас получится сработаться. Если ты готов выйти на бесплатную стажировку, приходи 31 августа в 9 утра в офис. Никаких взаимных обязательств.

– Я согласен!

Полное отсутствие зарплаты, конечно, огорчало, но перспективы казались фантастическими: новые технологии, опытные коллеги, сложные проекты – то, ради чего я учился, то, что меня мотивировало и вдохновляло.

Июль я провел в работе над собственными проектами, надо было скопить денег. В августе улетел учить язык во Франкфурт. Это был полезный опыт, я действительно улучшил немецкий и в конце месяца достиг уровня B1. Тогда я еще не знал, что знание языка очень пригодится в реальной жизни и работе – это просто являлось частью моего фундамента. Конечно же, это было очень веселое время. Я познакомился с людьми из разных стран: от Буркина-Фасо до Узбекистана. Мы вместе ездили на экскурсии, танцевали на дискотеках, пили немецкое пиво и не совсем немецкий виски. В общем, вели беззаботную студенческую жизнь. С некоторыми я до сих пор поддерживаю связь. Приехав домой 30 августа 2015 года, я словно выдохнул немецкую поездку и вдохнул поглубже, чтобы на следующий день сделать шаг в мир серьезного программирования.

Первый день начался с небольшого разочарования. Мне выдали слабый компьютер и 15-дюймовый монитор, на котором ничего не помещалось. Ничто не бесило меня больше, чем минута ожидания, чтобы проект просто запустился на моем компьютере. В меня действительно никто не планировал инвестировать ни цента, пока я не докажу свою состоятельность. Через неделю стало ясно, что в веб-разработке я понимаю больше своих коллег, а вот в серверной – в разы меньше. Решил совмещать полезные задания с образовательными, коллеги с удовольствием делились со мной опытом, так как я делился в ответ своим.

«Было бы справедливо получать хотя бы сто долларов в месяц, ведь от меня есть конкретная польза», – эта мысль не раз приходила мне в голову. Но просить я не хотел, ведь это нарушило бы наш джентельменский договор, согласно которому компания сама определяла, когда начать платить мне зарплату. Репутация дороже денег, поэтому я терпел и старался работать над теми задачами, которые могли меня чему-то научить. Так прошел весь первый семестр третьего курса. С 8:00 до 12:00 я ходил в офис, потом ехал в университет (занятия начинались в 12:45), вечером делал домашние задания, а на выходных фрилансил, чтобы что-то зарабатывать. И вот в декабре меня вызвали к начальнику департамента и предложили с января 400 долларов в месяц, то есть 200 долларов за полставки. Полгода бесплатной работы себя оправдали! Эта зарплата была вдвое больше той, которую мне платили в предыдущей фирме: получалось, что за полтора года я увеличил свой доход в два раза.

Новый год я встречал в прекрасном расположении духа, инвестиции в себя начали оправдываться. Я чувствовал, что шахматно-жизненный дебют подходит к концу, фигуры расставлены хорошо и я готов к миттельшпилю (основной части партии). В январе я вышел на работу и принялся за нее с удвоенной энергией, ведь теперь мой труд будет оплачиваться. Январь закончился, начался февраль, но никто не спешил официально оформлять наши отношения с работодателем, о зарплате тоже не вспоминали. Более того, начальник департамента уехал в отпуск, и было непонятно, к кому обратиться с этим вопросом. Я подумал, что, наверное, надо подождать, ведь не может же быть, чтобы в такой большой фирме решили сэкономить какие-то 200 долларов – с моей точки зрения, этого просто не могло быть. Оказалось, что могло. В середине февраля меня наконец вызвали в отдел кадров, оформили на полставки и в конце месяца заплатили зарплату – с февраля, а не с января, как обещали.

Обидно было до слез. Я вложил всю душу в компанию, сделал сценарий на Новый год, мы весело его отпраздновали всем департаментом. Первая реакция была – уйти и громко хлопнуть дверью. Но команда была не виновата, а я все-таки достиг своей цели. Ощущение несправедливости было до боли знакомым: когда играешь весь турнир хорошо, а потом в конце совершаешь небольшую ошибку и с первого места в турнире отлетаешь на второе. Следующим желанием было идти к начальнику департамента и требовать справедливости. Но я отлично понимал, что даже с точки зрения бухгалтерии устроить человека на работу задним числом, чтобы выплатить ему обещанную зарплату – это огромная проблема, которая потом может вскрыться при аудите, и никто ради меня такого делать не будет. В жизни, как и в шахматах, надо думать за себя и за оппонента, чтобы лучше его понимать. Поэтому пришлось выбрать третий вариант: отложить поиски справедливости на потом и по-прежнему следовать своей стратегии «сначала знания – потом деньги».

Я с теплотой вспоминаю время, проведенное в этой компании. В коллективе ко мне относились как к своему ребенку и легко прощали некоторые рабочие косяки. Я многому научился и со многими подружился, но, к сожалению, там присутствовала советская модель управления людьми: «Незаменимых людей нет. Есть не замененные». Эта установка в итоге загубит компанию, а мне послужит хорошим примером того, как не надо управлять людьми. Я съел горькую пилюлю несправедливости и никому ничего не сказал. Коллеги только расстроились бы, а мой тимлид мог бы поссориться со своим большим начальством, пытаясь защитить мои интересы. Это никак не помогло бы ситуации. Поэтому стратегию я оставил прежней, но план действий решил поменять. С такой компанией мне было не по пути.

Карьера по экспоненте

Уход из DAAC System Integrator

Стремительный взлет моей карьеры начался со шкафа для обуви от IKEA. В начале апреля 2016 года один из моих друзей по университету, Эдуард, решил съехаться со своей девушкой. Они купили кучу новых шкафов и стеллажей и позвали меня на IKEA-вечеринку. IKEA-вечеринка – это кока-кола, пицца и разобранная мебель в неограниченном количестве, а твоя задача – собрать как можно больше предметов обстановки до 12 вечера. «Вечеринка» началась со шкафа для обуви, который мы собирали вместе с девушкой друга Анастасией.

Анастасия рассказала, что уже две недели работает в немецкой компании Yopeso, компания приятная, современная, и они ищут веб-специалиста. Я не был готов менять работу немедленно – хотел сначала завершить текущие проекты, но все же решил рассмотреть этот вариант. Анастасия порекомендовала меня, и буквально через пару дней я получил приглашение на собеседование.

Первая встреча с Yopeso прошла очень хорошо, даже блестяще. Так совпало, что половина технических вопросов была связана с паттернами программирования. Именно эту тему я готовил для выступления на ближайшей IT-конференции, поэтому даже сам сотрудник, проводивший собеседование, узнал много нового. Меня в первый раз в жизни спросили о желаемой зарплате. Я предполагал, что будет некоторый торг, поэтому назвал цифру в 1000 долларов (в два с половиной раза больше своей текущей зарплаты), думая, что на 700 долларах мы остановимся. Перед уходом из офиса еще раз напомнил, что могу выйти к ним на работу только в июле.

На следующий день мне выслали предложение с зарплатой в 1000 долларов, но с условием начать работу уже через три недели. Возникла первая серьезная моральная дилемма. С одной стороны, 400 долларов в месяц и уплата «морального долга» команде за потраченное на меня время. С другой стороны, 1000 долларов в месяц и ощущение, что я предал свою команду. Только в теории такие решения даются просто, ведь «деньги же не главное в жизни». «Но со мной поступили нечестно, меня обманули», – найти оправдания для ухода из компании тоже несложно. К счастью, стратегическое планирование пересилило тактические желания. Мне только исполнилось 21, интуитивно я понимал, что в этом возрасте репутация действительно важнее денег. Помня о том, что «репутация строится годами, а рушится за секунды», я поступил по совести и отклонил столь заманчивое предложение. Команда Yopeso с уважением отнеслась к моему решению, но на лето мне ничего не обещали.

Май последнего курса бакалавриата подходил к концу. Впереди маячили выпускные экзамены и защита дипломной работы. Я окончательно интегрировался в коллектив и с удовольствием приходил в офис. А когда мне в дополнение к маленькому монитору дали большой, был на седьмом небе от счастья. Я уже и забыл про собеседование в Yopeso, когда раздался мобильный звонок: «Илья, здравствуй. Это Наталья из Yopeso. Мы хотели бы еще раз выдвинуть тебе наше предложение. Начало работы – 1 июля, начинаем новый проект. Пожалуйста, сообщи о своем решении в течение двух дней».

Радость и страх – две эмоции, которые переполняли меня в тот момент. Я радовался, что про меня вспомнили, но было страшно менять привычный образ жизни. Очень страшно.

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

Когда я спросил маминого совета, она сказала лишь одно: «Илюша, тебе 21 год, когда рисковать в поисках лучшего, если не сейчас?»

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

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

Yopeso – Crunchyroll

Yopeso оказалась не просто новой компанией, а новым миром. Здесь не надо было заполнять миллион бумаг, чтобы выдали новые наушники. Все парковались на свободные места, а не в порядке иерархии по принципу «чем выше твоя позиция, тем ближе к офису можно поставить машину». Все в этой компании было сделано для максимально эффективной работы, и философия была соответствующей: «Каждый ценен, каждый важен». Этот принцип послужил хорошим примером для управления собственными командами.

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

Так, проработав в компании одиннадцать рабочих дней, я оказался в командировке в Сан-Франциско, в сердце Кремниевой долины. Если мои университетские одногруппники попадали в США по программе Work and Travel, то в моей программе значилось только Work. Месяц пролетел стремительно. Мы много работали, мало путешествовали и каждый день ели огромное количество снеков в офисе. Бесплатные снеки кажутся не такими калорийными. Проект VRV был посвящен созданию продукта, который бы объединил разные стриминг-сервисы, такие как Crunchyroll и Funimation, на одной платформе. Это был своего рода «Нетфликс» для аниме и аналогичного контента. Моя команда (я, Андрей и Раду) и еще около пяти человек от Crunchyroll занимались главным сайтом для просмотра контента. Это было довольно сложное веб-приложение, которое должно одинаково хорошо работать на большом мониторе, маленьком ноутбуке и телефоне. «Хорошо» – это значит, что дизайн должен буквально попиксельно соответствовать картинке на реальном мониторе. Это была крайне нудная и скучная работа. В середине сентября нас снова отправили в Штаты, чтобы мы в экстренном режиме закончили MVP (Minimal Viable Product – минимально жизнеспособный продукт) и продукт мог запуститься.

Благодаря овертайму и командировочным мы хорошо зарабатывали. Но сама работа была нудной, абсолютно не креативной и совершенно, на мой взгляд, бесперспективной с точки зрения сложности программирования. Я только что окончил университет, мне хотелось применять свои знания, использовать алгоритмы на практике и делать сложные вещи элегантно. MVP подходил к завершению, и я увидел шанс соскочить с проекта. В тот момент наш генеральный директор курировал американское направление, поэтому мы были хорошо знакомы. Недолго думая, я написал ему письмо с просьбой перебросить меня на другие проекты, где будет больше серверного программирования, что больше способствовало бы моей самореализации. Ответ пришел быстро: «PHP-вакансий нет, Java есть только в Румынии. Если хочешь, можешь попробовать Golang – новый проект для Crunchyroll. Никто в офисе не захотел его брать, потому что никто этого языка не знает».

Я тоже не знал, что такое 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 % программистов используют в работе математику. Однако впоследствии я понял, что нужна она не только тем, кто ее применяет впрямую или косвенно, а действительно всем – как гимнастика для ума. Мозг – это своего рода мышца, его можно и нужно тренировать. Математика – отличный способ заставить мозг работать быстрее и дольше. Один из базовых тренировочных процессов в шахматах – решение задач: мат в два хода, выигрыш ферзя в три хода и т. д. Чем быстрее шахматист решает задачи, тем быстрее и дальновиднее он действует в реальной игре. Так же и с математикой в жизни – она раскачивает мозг и позволяет думать быстрее, глубже и дальше.

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

Продолжение книги