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

Как начать программировать? Как сделать классную IT-карьеру? Эти вопросы не раз задавали себе миллионы людей по всему миру. После прочтения этой книги вы будете понимать:1. Принципы построения долгосрочной карьеры, правильной мотивации и стратегии.2. Какие IT-профессии будут востребованы в будущем, а какие проиграют сражение с искусственным интеллектом.3. Особенности разных типов IT-компаний, их преимущества и недостатки.4. Влияние образования и глобализации на IT-сектор.В заключении вы заглянете в будущее, познакомитесь с миром квантовых компьютеров и всеобъемлющей цифровизации. Ведь для того, чтобы добиться успеха завтра, начинать готовиться нужно уже сегодня. Илья Кырчумару за свою карьеру прошел путь от фрилансера сайтов в Молдове до архитектора информационных систем в таких компаниях, как Amazon и IBM Research. Эта книга – личный опыт автора, его размышления о жизни, технологии и карьере в IT.

date_range Год издания :

foundation Издательство :Автор

person Автор :

workspaces ISBN :

child_care Возрастное ограничение : 0

update Дата обновления : 18.07.2024


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

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

Конец ознакомительного фрагмента.

Текст предоставлен ООО «Литрес».

Прочитайте эту книгу целиком, купив полную легальную версию (https://www.litres.ru/pages/biblio_book/?art=70900405&lfrom=174836202&ffile=1) на Литрес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.

Все книги на сайте предоставены для ознакомления и защищены авторским правом