«Самые быстрые мозги»: кто вербует на работу русских программистов
Дефицит IT-кадров ощущается все сильнее. Каждый год крупным и мелким компаниям России нужно около 200 тысяч специалистов в области технологий. К 2024 году этот показатель увеличится до 300 тысяч человек в год. Но где и как искать таланты, в которых нуждаются все? Есть варианты – чемпионаты по спортивному программированию, соревнования в области искусственного интеллекта и хакатоны. Состязательная среда сразу показывает, кто сильнейший. О том, как это устроено и какую работу предлагают участникам чемпионатов, «Профилю» рассказывают сами программисты. Что такое спортивное программирование? Если коротко, то спортивное программирование (competitive programming) – соревнования, задача участников которых – решить как можно больше алгоритмических задач быстрее других. Принимаются только полные, а не частичные решения. Победителем становится участник или команда с максимальным числом решенных заданий. Google Сode Jam, Hash Code, Rucode, Facebook Hacker Cup, «Яндекс.Алгоритм», Russian Code Cup, VK Сup, ICPC – в числе самых популярных чемпионатов по спортивному программированию. И российские участники регулярно отличаются на них, не говоря уже о том, что самая популярная платформа по алгоритмическому кодингу Codeforces запущена российским программистом, выпускником Саратовского государственного университета Михаилом Мирзаяновым. Этой весной прошел всероссийский проект Rucode, помогающий включиться в сферу спортивного программирования и искусственного интеллекта. Его запустил Физтех вместе с «Яндексом» и «МегаФоном» при поддержке Аналитического центра при правительстве РФ и Фонда президентских грантов. Крупнейшие ИТ-работодатели страны всё внимательнее присматриваются к тем, кто стремится расширить свои навыки в программировании и не боится неординарных задач. Голоса участников Лучше всего обо всем этом расскажут сами участники соревнований разных лет, каждый из которых проходил сборы в Moscow Workshops – образовательном проекте, зародившемся в МФТИ. Участники сборов неоднократно побеждали в соревнованиях по программированию мирового уровня как в России, так и за рубежом. Николай Кузиванов Место работы: ВКонтакте Должность: младший программист-разработчик «О спортивном программировании я узнал в 11 классе. Начинал я с нуля, но загорелся сразу, вероятно, именно поэтому у меня стало получаться. К концу первого года участия в кружке спортивного программирования занял третье место на районном этапе Всероссийской олимпиады школьников. Затем продолжил карьеру «спортивного программиста» в вузе, где с друзьями создал команду по ACM ICPC. Нам удалось 4 года подряд выигрывать «Кубок Томска», а также побеждать во многих других соревнованиях, включая те, что проводились МФТИ в Москве. Самое рейтинговое соревнование – финал ACM ICPC 2017, который проводился в США. Я поехал от Томского политехнического университета. Участие в соревнованиях по спортивному программированию позволило освоить целый ряд алгоритмов и структур данных, плюс научился быстро и концентрированно мыслить в случае необходимости решить сложную задачу. Что касается работы, то предложений особых не было, я не светился в публичном поле. Хотя было много рекламы от спонсоров: на различных сборах нас вербовали Mail.ru Group, «Яндекс», Worldquant, «СКБ-контур». В итоге я решил устроиться во «ВКонтакте». На момент трудоустройства в компании уже работало три чемпиона мира ICPC разных лет, причем им очень нравилось и нравится то, чем они занимаются. И я принял решение поступить на работу в эту же компанию, о чем ни разу не пожалел. Интересный момент – большое количество кодовой базы «ВКонтакте» написано именно чемпионами. Опыт спортивного программирования часто помогает в решении рабочих задач, особенно тогда, когда необходимо найти нестандартное решение сложной проблемы». Сергей Федоров Место работы: Яндекс (Yandex Selfdriving Cars) Должность: старший разработчик «Я познакомился со спортивным (олимпиадным) программированием еще в школе. Изначально занимался лишь математикой, но потом увлекся информатикой и программированием. По-настоящему загорелся после участия в летней школе для одаренных детей в Саратове, она называлась «Созвездие». Для участия много тренировался, в школьные годы решал задачи по программированию каждый день, тогда это было моим хобби. В целом тренировки занимали около 20 часов в неделю. При этом я успевал делать все, что мне было интересно и помимо учебы, как основной, так и дополнительной. Самой ценной стала золотая медаль на IOI 2009, хотя потом была медаль еще 2010 года. Были и другие достижения, не менее рейтинговые. Так, я получал бронзовую медаль ACM ICPC Finals два года подряд – в 2012-м и 2013-м. Но для меня именно эта победа была наиболее долгожданной. Побеждал, скорее всего, благодаря тому, что мне очень нравилось участвовать в соревнованиях, плюс ко всему у меня аналитический склад ума и я хорошо знаю математику. Еще один важный момент – способность сконцентрироваться и не сдаваться до последней секунды. Было заманчивое предложение от Facebook: компания предложила работать в любом офисе любой страны мира по моему выбору. Но я выбрал хедж-фонд WorldQuant LLC, где оставался почти четыре года. Полтора года – в Москве в качестве Quantitative Researcher, два – в США в качестве Vice President Portfolio Management. Я занимался в основном программированием моделей предсказания движения цен, оценкой качества чужих моделей, построением и решением задач оптимизации. Сейчас я работаю в «Яндексе» в команде обработки дорожной ситуации. Со своей командой занимаюсь планированием маневров и траектории движения автомобиля. Основная задача – не создавать аварийные ситуации, следовать ПДД и адаптироваться под внешние условия. Мы умеем решать задачи, которые пока не научился решать никто. К слову, благодаря спортивному программированию в автоматическом режиме ищу ошибки в коде, если они есть, и исправляю их. Навыки отточены как раз на соревнованиях». Сергей Цаплин Место работы: R&D-центр Huawei в Санкт-Петербурге Должность: инженер «Программированием я увлекся благодаря Весеннему компьютерному лагерю, когда учился в 6-м классе в школе в Перми. Там меня научили языку Pascal, после чего я смог решать на нем разные задачи. Очень помогло знание математики, любовь к ней привила моя мать. Затем я участвовал в олимпиадах по информатике разного уровня. К слову, увлекался и спортом – был участником велосипедной гонки «Тур де Франс», проходящей по горному этапу. Спортивный азарт охватывал как во время велогонки, так и во время соревнований по программированию. Что касается последних, то мне удалось занять 11-е место на Всероссийской олимпиаде школьников в 2014-м, выйти в финал ICPC 2018-м и занять 7-е место на NEERC 2018–2019 годах. Олимпиады научили меня быстро разбираться в новых вещах, нестандартно мыслить и не бояться дедлайнов, держа концентрацию до самого конца. Подготовка к олимпиадам и соревнованиям дала как знания, так и необходимые в работе hard и soft-скиллы, включая умение писать чистый код и находить ошибки. Благодаря этому мой код часто работает уже с первого раза, это как магия. Кроме того, благодаря соревнованиям меня заметили – сначала компании из Перми, а затем и международные. Так, из Huawei, в которой я сейчас работаю, писали даже не один, а два раза. В итоге Huawei и выбрал – в первую очередь, потому, что здесь очень благоприятные условия для карьерного роста. В Питерском офисе, где я работаю, за прошлый год количество сотрудников увеличилось со 100 до 200 и продолжает стремительно расти. Должность – инженер, работаю всего полгода, поэтому о карьерном росте говорить пока рано. Задачи по работе очень интересные: от исследовательских до рутинных. Со всем справляюсь оперативно, думаю, именно благодаря своему опыту в спортивном программировании». Сергей Волнов Место работы: Google, Лондонский офис Должность: Senior Software Engineer «Программированием я увлекся почти случайно. После 9-го класса я сменил школу и перешел в физико-математический класс. Как оказалось, здесь понадобились знания по информатике. Я стал заниматься спортивным программированием и вскоре отправился на всероссийские соревнования. Подготовка требовала солидных знаний и опыта, а значит, нужно было тренироваться. На это уходило около 10 часов в неделю плюс дополнительные занятия. Стоит отметить, что я не побеждал в крупных соревнованиях, был обычным участником, включая четвертьфинал и полуфинал ACM ICPC. Тем не менее опыт спортивного программирования очень пригодился в дальнейшей жизни и карьере. Участников олимпиад замечают IT-компании, и найти работу потом вообще не проблема. Причем вовсе не обязательно быть чемпионом, чтобы попасть в хорошую организацию. Это объясняется тем, что в обычной разработке задачи из спортивного программирования практически не встречаются. Но они гораздо сложнее обычных рабочих заданий, поэтому участники олимпиад выполняют свою работу быстро и эффективно. Достаточно быть средним олимпиадником, чтобы стать весьма успешным программистом. После университета мне предложили работу Google, Microsoft и Facebook. Мне хотелось поработать в Европе, а такая возможность была предложена лишь Google. Компания помогла с переездом и обеспечила отличные условия проживания. Поэтому и выбрал эту компанию. За 4 года работы здесь я выполнял задачи для рекламного подразделения, Google Maps и Android. Был инженером в бэкенде, Full-stack, а теперь работаю над инфраструктурой ML для Android OS». Филипп Рухович Место работы: МФТИ Должность: лектор, тренер по спортивному программированию «В спортивное программирование я пришел в 7-м классе. Я много тренировался, и все время хотелось большего. В целом спортивное программирование стало дорогой в «большое программирование». Решение олимпиадных задач позволило получить важные навыки для работы. Среди прочих навыков – творческое мышление, способность придумывать новые алгоритмы и упорство. Все это помогает в текущей работе и жизни. Самым крупным достижением в спортивном программировании считаю бронзовую медаль ICPC World Finals 2019 команды МФТИ Shock Content. Правда, я был уже тренером этой команды, а не участником. Как участник я стал финалистом ICPC 2014 от МФТИ. Кстати, для того, чтобы стать успешным спортивным программистом, вовсе не обязательно быть участником каких-то рейтинговых соревнований. Если нет возможности ездить по стране или миру, стоит попробовать поучаствовать в онлайн-соревнованиях, включая раунды на сайте codeforces.com. Это даст понимание того, на что способны другие спортивные программисты самых разных уровней и направлений». В сухом остатке «IT-отрасль очень динамична. Запросы рынка на подбор разработчиков-профессионалов часто меняются, иногда несколько раз в год. Этому способствует изменение самой конъюнктуры рынка. Например, когда банки превращаются в высокотехнологичные компании, которые предлагают всю палитру fintech-решений, не ограничиваясь стандартными банковскими продуктами. С учетом цифровизации высококлассные IT-специалисты нужны во всех отраслях, а так как все меняется очень быстро, то особенно ценится умение творчески подходить к новым вызовам, предлагать оригинальные решения и реализовать их в сжатые сроки. У нас в России очень хорошо развита сеть школьных и студенческих олимпиад по программированию – это отличный фундамент, благодаря которому мы не только регулярно занимаем пьедесталы крупнейших соревнований, но и обладаем собственными крупными поисковыми сервисами, социальными сетями и картами. Ну а за результатами участников внимательно наблюдают крупные и небольшие российские и зарубежные IT-компании. Участники соревнований по спортивному программированию получают отличные предложения от «Яндекса», Mail.ru Group, Сбербанка, «МегаФона» и других крупных корпораций. Результат – «самые быстрые мозги» России работают на благо бизнеса, технологий и общества, формируют элиту российской ИТ-индустрии», – комментирует проректор по международным программам и цифровым инновациям МФТИ, основатель Moscow Workshops и Олимпиадных школ МФТИ Алексей Малеев.