Институт

IT-компании охотятся за новосибирскими программистами

Когда речь заходит о программистах, многие представляют себе малоразговорчивого гика, который сидит за столом с несколькими мониторами где-то в недрах офиса и что-то кодит. Это представление отчасти справедливо. Но программирование — это не только работа, но и образ жизни, а в некоторых случаях — еще и спорт. Об этом мы поговорили с организаторами фестиваля RuCodе, который охватил 80 российских регионов.

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

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

В среднем на решение одной задачи у сильных команд уходит от 10 минут до получаса. Как правило, участникам соревнований отводится 5 часов времени для решения 10–12 задач. Задания для контестов придумывают профессиональные разработчики с многолетним опытом и бывшие конкурсанты. Они используют практические кейсы и проблемы, поэтому спортивное программирование не оторвано от реальности, хоть и отличается от обычного.

В России и мире проводятся сотни чемпионатов для «спортсменов». Среди них наиболее значимые — студенческий чемпионат ICPC, а также Google Code Jam, Hash Code, TopCoder Open и VK Cup. Соревнования помогают налаживать связи в сообществе и прокачивать навыки. Немаловажную роль играют и денежные призы. Например, первая тройка победителей Google Code Jam получают вознаграждение в размере от $1000 до $15 000.

Насколько развито спортивное программирование в России

Первый в мире чемпионат по программированию, ICPC, проведен в США в 1977 году, а российские конкурсанты стали выступать на первенстве с 1993 года. Менее чем за 30 лет команды из России вышли в лидеры — сегодня они получают призовые места на большинстве крупнейших контестов по олимпиадному программированию. Так, на студенческом чемпионате мира ICPC российские разработчики с 2000 года завоевали 33 золотых медали.

Такие результаты не случайны. Начиная с 90-х годов российские школы и вузы начали готовить программистов к соревнованиям разного уровня — начиная с небольших региональных и заканчивая международными. Программирование тогда было новым направлением, но развивалось оно быстро, во многом благодаря сильной математической школе, которая сформировалась в советские времена.

Постепенно спортивный кодинг выходил за пределы Москвы, где лидером движения выступал МФТИ. Именно этот московский вуз занялся организацией мастер-классов в регионах, а затем и в других странах.

 — С 2012 года успешно работает проект Moscow Workshops, зародившийся на базе кампуса МФТИ. Он представляет собой сеть коротких учебных программ. С момента основания в них уже отучились более 3000 студентов и старшеклассников из более чем 60 стран, — рассказывает проректор МФТИ Алексей Малеев.

В апреле состоялся первый обучающий онлайн-фестиваль по искусственному интеллекту и алгоритмическому программированию Rucode, в котором приняли участие более 10 тысяч человек, в том числе конкурсанты из 80 регионов России. Его тоже организовывал МФТИ при участии крупных IT-компаний, таких как «Яндекс» и «Мегафон».

Российские технологические гиганты часто спонсируют соревнования. Например, «Яндекс» выступает спонсором OpenCup — Открытого Кубка им. Е.В. Панкратьева по программированию. В этом первенстве могут участвовать не только школьники и студенты, но и профессиональные программисты из России, Польши и США, в том числе действующие медалисты.

Сегодня по всей России действуют школы и кружки по спортивному программированию, а летом и зимой проводятся образовательные интенсивы и сборы для старшеклассников. Владивосток, Ижевск, Москва — география у проектов обширная. Например, в Петрозаводском государственном университете каждый год проходят зимние сборы по программированию, участники которых решают те же задачи, что и финалисты чемпионата ICPC. Движение развивается и в Новосибирске.

 — С 2000 года Новосибирский государственный университет проводит Открытую Всесибирскую олимпиаду по программированию им. И.В. Поттосина, — говорит доцент Новосибирского государственного университета, старший научный сотрудник Института систем информатики им. А.П. Ершова СО РАН Татьяна Чурина.

Отборочный интернет-тур и первая номинация очного тура этой олимпиады проводятся тоже по правилам ICPC. Каждый год в контесте участвует более 1000 студентов и школьников.

RuCode — новая образовательная инициатива

 — Такие чемпионаты как RuCode очень важны, — отмечает Татьяна Чурина.

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

Программа мероприятий фестиваля RuCode включала открытый онлайн-курс «Быстрый старт в спортивное программирование» (доступ к нему остается открытым и после фестиваля), интенсивы по искусственному интеллекту и спортивному программированию, а также чемпионат, в котором приняли участие 2000 человек.

Интересно, что в RuCode денежные призы предусмотрены не были.

 — Когда мы занялись организацией двухмесячного фестиваля по искусственному интеллекту и программированию RuCode, то сразу решили, что денежных призов не будет. Зато будет максимальная доступность знаний и возможность бесплатного обучения у лучших тренеров, — говорит Алексей Малеев — При этом если изначально мы планировали провести фестиваль очно в 10 регионах, то из-за известных событий вынуждены были перенести все в онлайн, благодаря чему в разы увеличили количество участников. В итоге во всех этапах фестиваля приняли участие более 10 000 школьников, студентов и выпускников вузов из 80 регионов России. Более того, к нам присоединились ребята из 58 других стран.

Высокий уровень подготовки программистов из Новосибирска объясняется, в частности, преемственностью знаний. Ведь именно здесь работал академик Андрей Петрович Ершов, один из основателей теоретического и системного программирования в СССР и создатель сибирской школы информатики. В свое время он настаивал на том, чтобы школьников и студентов обучали программированию, а не просто владению компьютером на пользовательском уровне.

Во многом именно благодаря такому наследию программисты из Новосибирска традиционно сильны. По словам Татьяны Чуриной, студенты НГУ занимаются спортивным программированием с 1997 года. В 1999 они впервые вышли в финал ACM-ICPC. Команда НГУ с тех пор четырнадцать раз выходила в финал, а в 2007 году удалось взять серебро. С 2000 по 2018 годы сборные команды НГУ входили в диапазон сильнейших мировых команд от 5 до 50 места наряду с такими лидерами, как Массачусетский технологический институт, Стэнфордский университет, Калифорнийский университет в Беркли и Токийский университет.

Зачем нужно спортивное программирование?

Участники соревнований по спортивному программированию умеют мыслить нешаблонно — в противном случае быстро решить олимпиадную задачу не получится. Как правило, они регулярно тренируются, в результате чего развивается навык быстро принимать решения и находить нестандартный подход. А это ценится многими работодателями, в первую очередь представителями крупнейших технологических компаний мира — таких как Яндекс, Mail.ru Group, Facebook, Acronis, Google, Сбербанк, Microsoft.

 — IT-компании буквально охотятся за нашими выпускниками, и в первую очередь за участниками мировых чемпионатов по программированию, — отмечает Татьяна Чурина. — Можно долго перечислять, сколько их работает в Google, Яндекс, JetBrains, Huawei, а также в институтах РАН.

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

Истории успеха

Среди экс-участников чемпионатов по программированию есть немало известных software-инженеров и предпринимателей. Так, главные технические разработчики ВКонтакте и Telegram — Дуров и Лопатин — дважды чемпионы мира по спортивному программированию.

Большинство участников мероприятий по олимпиадному программированию устраиваются в крупные технологические компании. Среди них Сергей Цаплин, который работает старшим инженером в санкт-петербургском офисе Huawei, Сергей Федоров, старший разработчик в Yandex Self-Driving Cars, Николай Кузиванов, младший программист-разработчик во «ВКонтакте», и Сергей Волнов, который трудится в Google на должности старшего разработчика.

Тренеры новосибирских команд Александр Стененко и Степан Гатилов — участники финалов ICPC — неоднократно получали и до сих пор получают предложения от зарубежных компаний. Но они предпочитают жить и работать в родной стране и городе — Новосибирске.

Еще один призер ICPC — Тони Шей, который сначала создал баннерообменную сеть, купленную Microsoft за $265 млн, а потом основал интернет-магазин одежды Zappos.com, который купила компания Amazon за $1,2 млрд.

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

Источник: Сетевое издание Om1.ru - 18.05.2020