Российские студенты выиграли чемпионат мира по программированию. Российские программисты стали чемпионами мира, обойдя Гарвард и MIT

Сегодня, в 18 часов по московскому времени, в американском Rapid City начнется финал самого престижного мирового соревнования для программистов – ACM ICPC. Приглашаем всех желающих увидеть это событие в прямом эфире (прямая трансляция начнется уже в 17 часов по Москве) и поддержать команду Университета ИТМО – одного из фаворитов чемпионата. О том, как команды со всего мира готовились к финалу, а также о прогнозах на победу расскажем ниже.

Немного фактов

  • Спортивное программирование ежегодно собирает больше участников, чем Олимпийские игры – в этом году в соревнованиях ACM ICPC принимают участие 46 381 человек из 103 стран, в то время как в летней Олимпиаде в Рио на всех этапах участвовали 11 544 спортсменов (в 4 раза меньше).
  • Интерес к соревнованиям растет с каждым годом. Как отмечает Владимир Парфенов, директор регионального полуфинала чемпионата ACM ICPC в России и странах Северо-Восточной Европы, декан факультета информационных технологий и программирования Университета ИТМО, в 2004 году в мировом первенстве ACM ICPC принимало участие 8 000 программистов (включая региональные отборочные этапы), в 2016 – уже свыше 40 000.
  • За российскими вузами уже давно закрепилось положение лидеров чемпионата – наши команды 11 раз становились абсолютными чемпионами ACM ICPC. Из них 6 раз победу в чемпионате одерживали команды Университета ИТМО – и это мировой рекорд (в 2017 году Университет ИТМО борется за звание семикратного чемпиона мира).
  • Число участников из России остается высоким уже много лет: в 2004 году во всех этапах чемпионата приняли участие 2 100 программистов из России, к 2016 их число увеличилось уже до 3 400.
  • Формат чемпионата ACM ICPC называют не только одним из наиболее удачных, но и одним из самых сложных: каждая команда использует только один компьютер и в сжатые сроки должна решить как можно больше задач. Из-за этого на чемпионате предъявляются повышенные требования не только к креативности, знанию алгоритмов и «матчасти», но и к умению распределять роли и работать в команде.
Я бы сказал, что преуспеть в соревнованиях до определённого уровня, имея только знания из первой категории [знание математики, алгоритмов, языка программирования], можно. Тем не менее, знания из второй категории [понимание правильной тактики, навыки грамотного распределения ресурсов] сильно упрощают жизнь и работают как катализатор. Как и в любом спорте: есть физические навыки, а есть знание техники, психология, и так далее. Преуспеть только за счёт первого можно, но второе будет работать катализатором

– Павел Кротков, выпускник факультета информационных технологий и программирования Университета ИТМО, участник и организатор множества контестов по программированию в России и за рубежом, включая ACM ICPC NEERC

  • Кстати, начиная с октября прошлого года Павел с коллегами – Максимом Буздаловым, чемпионом ACM ICPC 2009 года и Дарьей Яковлевой, в 2016 году вошедшей в десятку на международном соревновании по программированию Google Code Jam for Women – ведут курс «Как побеждать в соревнованиях по программированию: секреты чемпионов », который Университет ИТМО запустил на платформе edX. О том, какие советы чемпионы дают новичкам в спортивном программировании, мы писали здесь: и .
  • За онлайн-трансляцию чемпионата также отвечает команда Университета ИТМО (конечно же, не спортсменов-программистов, а специалистов по видеотрансляции). В то время, как участники чемпионата борются за чемпионский титул, видеогруппа, аналитики, директор, режиссер, дизайнер, программисты и видеоредакторы стремятся превратить финал ACM ICPC в мероприятие, за которым будет интересно наблюдать людям со всего мира. Кстати, в этом году специально для российских зрителей мы организуем вещание на русском языке. О том, как работает команда, какие аппаратные и программные решения используются при трансляции, читайте в этом материале.

Подготовка участников

Прежде, чем принять участие в финале, команды проходят подготовку на разнообразных предварительных сборах. Один из таких тренировочных этапов ежегодно проходит на базе МФТИ (это Moscow Workshops ACM ICPC).

Формат воркшопов достаточно жесткий: за 11 дней непрерывных тренировок студенты-участники решают не менее 100 олимпиадных задач. Также в рамках тренировочной программы предусмотрены консультации с преподавателями сборов и изучение материалов лекций.

Будущие победители таким обучением не пренебрегают: в 2016 году 8 из 13 команд-победительниц ACM ICPC участвовали в тренировочных сборах. А в нынешнем в Moscow Workshops ACM ICPC приняли участие 170 студентов и тренеров, представлявших 19 стран и 44 университета. Возможность дистанционного участия позволила пройти обучение у российских специалистов командам из США, Латвии, Румынии, Китая и Индии.

Прогнозы: кто победит

По оценкам Андрея Станкевича, тренера команд Университета ИТМО и члена оргкомитета полуфинала чемпионата мира в странах Северо-Восточной Европы, в числе претендентов на победу в этом году будут следующие университеты:
  • Россия : СПбГУ, Университет ИТМО и МФТИ (тройка лучших команд региона «Северо-Восточная Европа»)
  • Китай : Университет Синьхуа, Шанхайский Университет Транспорта, Фуданский Университет, Пекинский Университет
  • США : Массачусетский Технологический Институт
  • Швеция : Королевский Технологический Институт
Конкуренцию им, по мнению Андрея Станкевича, могут составить команды других китайских и корейских вузов, а также традиционно сильная команда Варшавского университета.
«Как показали предфинальные сборы в МФТИ, очень сильная команда в этом году у китайского университета Синьхуа. В нее входят студенты, которые в свое время школьниками занимали абсолютные первые места на международной олимпиаде. Тем не менее, два раза нашей команде удавалось обойти их на тренировочном соревновании, так что шансы есть.

Из российских команд очень хорошо себя показали команды Университета ИТМО, СПбГУ и МФТИ. Из неожиданных открытий последних сборов – команда из Австралии (Университет Нового Южного Уэльса) и более сильная, чем раньше, команда KTH из Стокгольма. Также можно отметить сильные команды из MIT и нескольких других китайских университетов: Шанхайского Университета Транспорта, Фуданского университета из Пекина, Пекинского университета».
– Андрей Станкевич


Владимир Парфенов отмечает, что в этом году результаты российских команд, прошедших в финал, оказались ожидаемыми: лидеры выступили стабильно хорошо, но состав вузов-финалистов остался практически неизменным по сравнению с прошлым годом:
Среди российских финалистов – участники старые ([они] и раньше доходили до финального этапа, но не во все годы), поскольку подготовить команду, выходящую в финал весьма трудно.

Если говорить о регионе [Северо-Восточная Европа], то в этом сезоне СПбГУ, Университет ИТМО и МФТИ – это три наиболее сильные российские команды, поскольку у МГУ, например, сезон не сложился. Из других стран [региона] с нами могут соперничать белорусские команды.
– Владимир Парфенов

Российские студенты в седьмой раз подряд стали победителями чемпионата мира по программированию ACM ICPC в Пекине. С 2000 года это уже 13-я победа участников из РФ. Первое место заняла команда из Московского государственного университета (МГУ). На втором - Московский физико-технический институт (МФТИ), на третьем - Пекинский университет. Команда победителей получит денежное вознаграждение в $15 тыс. Ранее первые места на этих соревнованиях занимали команды Санкт-Петербургского госуниверситета (СПбГУ), Санкт-Петербургского университета информационных технологий, механики и оптики (ИТМО) и Саратовского государственного университета. Впрочем, в экспертном сообществе не склонны переоценивать успехи российских программистов, напоминая о проблемах в общем уровне подготовки учащихся.


В Пекине завершился финал чемпионата мира по программированию ACM ICPC - крупнейшей студенческой олимпиады в этой дисциплине. В финале первенства в этом году приняли участие 140 команд из 51 страны. От России выступали 11 команд, представляющих Московский физико-технический университет, Московский государственный университет, Университет ИТМО (Санкт-Петербург), Санкт-Петербургский государственный университет, Высшую школу экономики, Московский авиационный институт, Новосибирский государственный университет, Пермский государственный университет, Саратовский государственный университет, Академический университет (Санкт-Петербург) и Уральский федеральный университет (Екатеринбург).

Российские участники завоевали кубок мира и четыре медали из 13 - больше, чем любая другая страна.

Команды из Китая и США получили по три медали, по одной - у Японии, Кореи и Литвы.

Кубок мира впервые выиграла команда МГУ Red Panda, решив 9 задач из 12 предложенных. «Наши ребята - лучшие! Гордимся»,- говорится в сообщении пресс-службы МГУ. «Это первая абсолютная победа МГУ в ICPC»,- сообщили “Ъ” в университете. В состав команды (традиционно она состоит из трех человек) входят Михаил Ипатов (студент мехмата), Владислав Макеев и Григорий Резников (факультет вычислительной математики и кибернетики). Тренером команды является завкафедрой информатики специализированного учебно-научного центра (СУНЦ) имени А. Н. Колмогорова МГУ Елена Андреева.

«Команды МГУ участвуют в студенческом командном чемпионате мира по программированию более 20 лет,- заявила госпожа Андреева после подведения итогов первенства.- Многие из них завоевывали медали чемпионата, несколько раз останавливались в шаге от победы, занимая второе место. В этом году впервые наша команда завоевала титул чемпиона мира, опередив как сильнейшие российские команды МФТИ и ИТМО, так и лучшие зарубежные - команды университетов Пекина, Сеула и Токио».

Чемпионат по программированию проводится с 1970-х годов, с 2000 года в нем начали побеждать команды российских вузов: первыми тогда стали студенты СПбГУ.

С 2012 года в этой олимпиаде побеждают только российские команды.

Рекордсмен по количеству побед среди российских команд - Университет ИТМО (занимал первое место семь раз, в том числе в 2017 году). В этом году команда Университета ИТМО опустилась на девятую позицию, решив 7 задач из 12. При этом ИТМО остался третьим среди российских вузов-участников олимпиады. «Программирование становится настоящим интеллектуальным спортом будущего, не менее интересным, чем, например, шахматы, и в данной дисциплине ребятам из России нет равных»,- прокомментировал успехи российских студентов вице-президент Российского союза ректоров, ректор Университета ИТМО Владимир Васильев.

Кроме команды МГУ среди самых лучших оказались команды МФТИ (второе место) и университетов Пекина и Токио, решившие 8 из 12 задач и удостоенные золотых медалей.

С результатом 7 из 12 соревнования завершили Сеульский национальный университет, университет Нового Южного Уэльса, университет Цинхуа, Шанхайский университет, ИТМО, Массачусетский технологический институт, университет Вильнюса и Уральский федеральный университет.

«Команда физтеха показала высокий результат, они уверенно шли к победе весь год, показали лучший результат за всю историю участия МФТИ в соревнованиях, с чем можно поздравить команду Cryptozoology! Мы гордимся нашими студентами»,- сообщил Алексей Малеев, руководитель команды, директор Центра ИТ-образования МФТИ. «Москва имеет самое большое представительство среди всех городов мира - сразу четыре университета (среди 13 лучших.- “Ъ” ) отстаивают честь страны,- отметил господин Малеев.- Более того, 10 из 13 прошли школу Moscow Workshops ICPC на базе МФТИ». «Это доказывает, что программистское образование у нас в стране - одно из лучших в мире. Поздравляем команду МФТИ и всех российских программистов!» - подчеркнул ректор МФТИ Николай Кудрявцев.

В ICPC соревнуются команды из трех студентов не старше 25 лет. К участию в чемпионате не допускаются студенты, дважды участвовавшие в мировом финале. В распоряжении команды - всего один компьютер, поэтому помимо логики и умения работать в жестких временных рамках конкурсанты должны проявить навыки взаимодействия в команде и грамотно распределить роли. Побеждает команда, которая правильно решила наибольшее количество задач и при этом показала наилучшее время; также учитывается количество сделанных попыток, или «посылок» (так называют решение задачи, отправленное на проверку на тестирующий сервер).

Все призеры ICPC получают денежную премию: команда чемпионов - $15 тыс.; команды, завоевавшие золотые медали,- по $7,5 тыс.; серебряные призеры - по $6 тыс., а команды, взявшие бронзу,- по $3 тыс.

Победу российских студентов не стоит переоценивать, считает главный научный сотрудник Института проблем информатики РАН Константин Колин. «Выиграли и выиграли, речь идет о единичном успехе: это элита, которую готовят в ведущих вузах, а нужно посмотреть на общий уровень подготовки школьников и студентов»,- сказал эксперт в беседе с “Ъ”. По его словам, социологические опросы, проведенные среди московских школьников в прошлом и нынешнем годах, показали, что «34% школьников считают, что солнце вращается вокруг Земли». «Маразм крепчал, а правительством принята программа ""Цифровая экономика"", которая требует высококвалифицированных специалистов. Для того чтобы их подготовить, необходима революция в образовании, и начинать нужно с педагогов. Мы много об этом говорим, но пока, к сожалению, в Министерстве образования нас не слышат»,- заключил эксперт. В Минобрнауки победу российских студентов на международной олимпиаде “Ъ” оперативно прокомментировать не смогли.

Анна Макеева, Валерия Мишина

За последние 17 лет российские программисты 11 раз выигрывали мировое первенство по программированию АСМ ICPC, а в последние пять лет кубки уезжали в Россию ежегодно. Журнал РБК выяснил, как сложилась карьера нескольких финалистов одного из самых престижных мировых конкурсов программирования

Фото: Асхат Бардынов для РБК

Международный студенческий чемпионат по программированию Assoсiation for Computing Machinary International Collegiate Programming Contest (далее — ICPC) проводится с 1977 года. До финала, который каждый раз проходит в разных странах, доходит 100-120 команд, состоящих из трех человек. Организаторы турнира разыгрывают 12 комплектов медалей — по четыре золотые, серебряные и бронзовые награды.

За все время проведения ICPC чемпионами становились студенты в основном двух российских вузов — Санкт-Петербургского государственного университета (СПбГУ) и Санкт-Петербургского национального исследовательского университета информационных технологий, механики и оптики (ИТМО). В 2006 году победу одержала команда Саратовского государственного университета.

Соревнование студенческое, но даже через пять-десять лет участие в нем котируется при найме на работу, рассказал журналу РБК руководитель группы рекрутмента платформы Amazing Hiring Александр Пашинцев. Чаще всего медалистов и чемпионов таких олимпиад нанимают интернет-гиганты — «Яндекс», «ВКонтакте», Facebook, Google, Amazon, Mail.Ru Group, Avito или специализированные компании, занимающиеся, например, высокочастотным трейдингом, отмечает Пашинцев. По его данным, в крупных IT-компаниях 5-10% общего числа сотрудников — специалисты, прошедшие через турниры ICPC.

Молодежь, побеждающая на специализированных олимпиадах, может интересовать крупные западные компании, которые привыкли обучать сотрудников самостоятельно, считает старший консультант департамента «IT и телеком» кадрового агентства Cornerstone Ирина Лукавская. Уровень зарплат таких сотрудников зависит от современности технологии, в которой они разбираются, и числа профессионалов-конкурентов на рынке. Например, для тех, кто работает с программным обеспечением «1С» месячная заработная плата в 150 тыс. руб. — достойная, продолжает Лукавская, а АВАР-разработчики (знают внутренний язык программирования немецкой SAP) еще до кризиса 2008 года зарабатывали более 200 тыс. руб. в месяц.

Несколько участников ICPC отказались общаться из-за корпоративной политики компаний, в которых они сейчас работают. Журнал РБК поговорил с четырьмя чемпионами и медалистами ICPC и узнал, как сложилась их карьера и помогло ли им «олимпийское» прошлое.

Играющий тренер

Андрей Лопатин, двукратный чемпион мира по программированию (2000 и 2001 годы), считает, что ему удается совмещать карьеру в IT и педагогику. Его бывший наставник, старший преподаватель факультета информационных технологий и программирования СПбГУ Наталья Вояковская, ушла после 15 лет работы, и Лопатин после второй победы в ICPC занял место главного тренера вуза. «Я хотел, чтобы дело жило. Если бы я не подхватил, оно бы развалилось», — рассказывает чемпион-преподаватель.

Интерес к соревнованию в СПбГУ растет: еще десять лет назад число желающих заниматься спортивным программированием не превышало 100 человек в год. Теперь количество студентов, которые хотят испытать свои силы в чемпионате, достигает 200 человек ежегодно: к Лопатину приходят студенты с различных факультетов СПбГУ. В основном это студенты-математики — у каждого свои успехи, но в среднем обучение занимает около трех-пяти лет. Итоговый отбор на участие в конкурсе проходят примерно 50 человек, а в финал ICPC выходят лишь три человека.


Андрей Лопатин уверен, что программисты — это ценный ресурс, если они умеют не только писать код, но и знают, как должна работать программа

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

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

Периодически сборы проходят и за рубежом, но они, как правило, «гораздо слабее, чем в России» — из-за среднего уровня подготовки участников, рассказывает один из главных тренеров страны. Россия в последние годы доминирует в ICPC. В числе тех, кто может полноценно соперничать с российскими программистами, Лопатин называет американских, но это происходит за счет «импортированных» студентов — поляков, китайцев и других, поскольку в ведущие вузы США приезжают учиться со всего мира.

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

Программирование требует «больших математических знаний», продолжает он: если начинать знакомство с математикой с детства, то развивается определенный склад ума. На ICPC участнику нужно не просто написать код — необходимо решить сложную проблему и открыть что-то новое, и без математического мышления и знания алгоритмов никуда, категоричен тренер. С каждым годом задания на чемпионате усложняются — задачи, которые 15 лет назад казались нереальными, сейчас можно решить за 15 минут.

Многие IT-компании проводят собственные соревнования по программированию: это позволяет им искать будущих сотрудников. Однако ICPC — самый престижный конкурс: его участники — не просто кодеры, которые создают программы, а специалисты, придумывающие, как такая программа может быть устроена, объясняет Лопатин. Финалисты ICPC могут сэкономить работодателю бюджет: 10 тыс. серверов обойдется компании в $50 млн, а два толковых программиста могут рассказать, что необходимо сделать, чтобы не закупать эти серверы, объясняет тренер.

Подготовка команд СПбГУ к соревнованиям по программированию — основная работа Лопатина. В разные годы он работал во «ВКонтакте» и Telegram, созданных Павлом Дуровым, но сейчас параллельно с педагогикой занимается консультированием российского сервиса для построения логистических маршрутов VeeRoute. Лопатин признается, что с момента последнего своего личного чемпионства 15 лет назад он отказал примерно десяти крупным компаниям, которые звали его на работу.

Главный по котикам

Чемпионом мира ICPC Дмитрий Егоров стал в 20 лет — в 2014 году, когда учился на третьем курсе математико-механического факультета СПбГУ. Сейчас он возглавляет отдел разработки и оптимизации баз данных крупнейшей соцсети России «ВКонтакте» и продолжает учиться в магистратуре НИУ Высшей школы экономики. Впрочем, совмещение университета с работой — привычное для Егорова дело.

Будущий чемпион мира окончил физико-математический лицей № 239 в Санкт-Петербурге — престижную школу, в которой учились, к примеру, математик Григорий Перельман, доказавший гипотезу Пуанкаре, и родной брат основателя «ВКонтакте» Павла Дурова Николай, вместе с ним работавший над созданием и развитием соцсети.


Дмитрий Егоров год назад возглавил отдел «ВКонтакте». Под его руководством — четыре чемпиона мира по программированию. (Фото: Асхат Бардынов для РБК)

В 2014 году финал чемпионата ICPC проходил в первых числах июля в Екатеринбурге. Команда СПбГУ, в которой выступал Егоров, заняла первое место — это была третья подряд победа России на мировом турнире.

В первые годы учебы в университете Егоров стажировался в «Яндексе» — с 2012 по 2014 год. В компании прием «практикантов» поставлен на поток, поэтому при желании и «некотором уровне базовой подготовки» попасть туда совсем несложно, рассказывает студент. Стажировку в «Яндексе» он называет «крайне полезной» — не только с точки зрения полученных навыков программирования, но и с точки зрения организации внутри большой компании. После стажировки Егоров понял, что не видит себя рядовым сотрудником большой корпорации. «Я всегда был готов работать заметно больше и лучше других, но и ожидаю большей отдачи», — объясняет бывший студент СПбГУ. В больших компаниях недостаточно возможностей для роста и развития, им не хватает индивидуального подхода, сетует Егоров. И это касается не только «Яндекса», но и других IT-гигантов вроде Google. «Если хочется спокойной жизни с хорошей зарплатой и уверенностью в завтрашнем дне, то крупные IT-компании — отличный вариант. Но это не для меня», — считает чемпион ICPC.

Сразу же после церемонии награждения к Егорову подошел один из сотрудников «ВКонтакте» и предложил присоединиться к команде. Через несколько месяцев студент пришел на работу в крупнейшую соцсеть. Перспективы для него очевидны: весной 2014 года из «ВКонтакте» ушел Павел Дуров, вслед за ним компанию покинули многие разработчики. «Несмотря на десятки миллионов пользователей в день, вокруг вновь витал дух стартапа», — улыбается чемпион. Меньше чем через год Егоров возглавил отдел, в который пришел на рядовую позицию. В его отделе — семь человек: все они в разные годы участвовали в ICPC, четверо становились чемпионами мира.

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

Степень важности своего отдела для компании студент магистратуры оценивать не готов: во «ВКонтакте» сложно выделить ключевые и второстепенные отделы разработки. Для полноценной работы и развития необходимы все составляющие — и базы данных, и бэк-энд, и фронт-энд, и группа системных администраторов, и мобильная разработка. Без любой из этих частей сайт начнет деградировать довольно быстро, уверен Егоров. «Вы же не спрашиваете, какой орган у человека важнее — мозг или сердце? Без любого из них человек может жить разве что в анекдотах», — говорит он.

Все победители чемпионатов ICPC, как правило, могут выбирать место работы из довольно большого списка. Например, генеральный спонсор чемпионата мира компания IBM во время награждения раздает всем призерам приглашение связаться с их HR-службой и обсудить вакансии, вспоминает Егоров. Для себя он сразу решил, что не хочет уезжать из России.

«Для многих айтишников переезд за границу — нечто вроде навязчивой идеи, которую они культивируют друг в друге», — говорит Егоров. О выборе «ВКонтакте» в качестве работодателя он не жалеет, а массовую миграцию IT-специалистов за рубеж называет «абсолютной катастрофой для страны».

Поле возможностей

Студент 1-го курса механико-математического факультета СПбГУ Глеб Леонов и двое друзей увидели на стенде университета объявление о наборе желающих заняться олимпиадным программированием. Выпускник математической школы — Академической гимназии СПбГУ, в которой учился Павел Дуров, — заинтересовался. Так он попал в «класс» Андрея Лопатина. Дважды Леонов становился финалистом ICPC, один раз завоевал серебряную медаль.

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


Глеб Леонов с детства любил решать математические задачи, а уже в университете увлекся олимпиадным программированием (Фото: Асхат Бардынов для РБК)

Сейчас финалисты ICPC получают массу предложений от потенциальных работодателей: десять лет назад их возможности были скромнее. Впрочем, уже тогда Google звал программистов на собеседования. Леонова перспектива работы в одной из крупнейших американских IT-корпораций никогда не прельщала.

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

Участие в чемпионатах и работа в компаниях — не одно и то же. Если речь идет о спортивном программировании, то твоя цель — как можно быстрее решить задачу и написать программу. А во время работы в компании цель специалиста — разработать софт, который можно модифицировать. Иногда необходимо «порезать» программу на части и заменить одну из «деталей», не трогая остальные, поэтому главное в работе программиста — практический навык. В университете его приобрести сложно, говорит Леонов. Более того, чем выше должность, тем больше дополнительных навыков необходимо.

Уже семь лет Леонов работает в компании JetBrains в Санкт-Петербурге. Созданная в 1999 году в Праге российскими программистами Сергеем Дмитриевым, Евгением Беляевым и Валентином Кипятковым JetBrains разрабатывает софт для IT-специалистов. Сейчас помимо Праги и Санкт-Петербурга у компании работают офисы в Москве, Мюнхене, Бостоне и Новосибирске. На работу в JetBrains Леонов устраивался сам — попросил контакты у сотрудников компании и отправил резюме.

«Если студент дошел до финала чемпионата мира, то у него, скорее всего, есть способности и он достаточно легко пройдет собеседование на должность младшего программиста», — улыбается Леонов.

Сейчас финалист ICPC занимается разработкой инструментов, правда не для программистов. Для кого — Леонов отвечать отказался, сославшись на внутренние правила компании. Несколько раз в год он участвует в индивидуальных соревнованиях по программированию, которые проводят Google, Facebook, Mail.Ru Group и др. Отборочные этапы проходят через интернет, а финалистов зовут на итоговый этап в разные города мира. «В финалы я, конечно, не попадаю, поскольку занимаюсь больше для себя», — признается Леонов.

Ядро Google

Увлечение математикой Петр Митричев перенял у старшего брата, который также занимался программированием. Мама, химик по образованию, покупала Петру книги по математике. Когда в доме не было компьютера, Митричев-младший читал литературу о программировании и ходил с братом в Центр детского и юношеского творчества, где они занимались в компьютерном кружке. В семь лет он поступил в районную школу № 827, а в 14 лет перешел в специализированный класс школы № 57 в Москве, а затем подал документы на мехмат МГУ.

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


Петр Митричев еженедельно участвует в соревнованиях для программистов онлайн. После победы на ICPC это стало его хобби. (Фото: Асхат Бардынов для РБК)

В отличие от студентов СПбГУ и ИТМО у Митричева и его одногруппников с мехмата не было одного тренера. В качестве неформальных наставников выступали бывшие участники ICPC, которые делились своим опытом как онлайн, так и на сборах. Ведущий научный сотрудник лаборатории вычислительных методов мехмата МГУ Евгений Панкратьев помогал участвовать в соревнованиях: организовывал поездки и содействовал в оформлении документов. Митричев дважды дошел до финала ICPC — в 2003 году в США и в 2005-м в Китае, когда учился на первом и на третьем курсах соответственно. Оба раза в составе команд он занял второе место.

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

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

Однако с 2007 года Митричев работает в Google — сначала в московском офисе, с 2015 года — в швейцарском. На собеседовании в одну из крупнейших IT-компаний мира Митричеву пришлось решать задачи, которые похожи на те, что встречаются в финалах ICPC, вспоминает программист. Правда, сейчас он занимается поисковым ядром сайта Google, и эта работа больше связана с теорией вероятностей, которую Митричев изучал в университете. Скорость, приобретенная в ходе соревнований, помогает, когда нужно, к примеру, создать прототип программы и понять, работает ли она.

Сейчас Митричев помогает Google проводить собственные соревнования по программированию — Google Code Jam, придумывает задачи для турниров вместе с коллегами. Митричев сам дважды принимал участие в этом конкурсе и занимал третье место в 2005 году и первое в 2006-м. Программист признается, что обсуждал возможное сотрудничество с представителями «ВКонтакте», Facebook и «Яндекс», но сейчас ему кажется, что Google — лучший вариант, «потому что компания решает интересные задачи, а ее сотрудники — умные люди, с которыми приятно работать».

После ICPC Митричев еженедельно участвует в онлайн-соревнованиях. По его словам, для решения некоторых задач ему приходится переучиваться: «Новому поколению в этом плане проще: они сразу учат современные методы программирования». Сейчас Митричев возглавляет один из ведущих рейтингов американской корпорации Topcoder.com, которая проводит соревнования по спортивному программированию с 2001 года.

В Рапид-Сити (США) 24 мая состоялась кульминация Чемпионата мира по программированию ACM ICPC-2017 . Абсолютными чемпионами стала команда Университета ИТМО, решившая 10 задач из 12 быстрее и грамотнее соперников. Таким образом, петербургский вуз установил новый рекорд в истории контеста: сборные Университета ИТМО в седьмой раз стали победителями ACM ICPC, что еще не удавалось ни одному вузу в мире. Чемпионский кубок над головой подняли студенты кафедры компьютерных технологий Владимир Смыкалов, Иван Белоногов и Илья Збань. В этом году в финале самого престижного соревнования среди программистов участвуют 133 команды из всех регионов мира, состязания проходили уже в 41 раз.

Награждение команды Университета ИТМО

Сборная вуза смогла правильно решить 10 задач из 12, потратив на это наименьшее количество времени. Именно время решения задач и меньшее число неудачных попыток их сдачи обеспечило команде седьмой кубок ACM ICPC. Другие «золотые» команды, составившие четверку лидеров контеста, также решили по десять задач. Буквально на пятки чемпионам мира наступала команда Варшавского университета, бывшая фаворитом ACM ICPC-2017. На третьей позиции программисты из Сеульского национального университета. С четвертым результатом финишировала команда СПбГУ - чемпион прошлого года. Сборная Университета ИТМО состоит из студентов факультета информационных технологий и программирования Владимира Смыкалова (первый курс магистратуры кафедры КТ), Ивана Белоногова (четвертый курс бакалавриата кафедры КТ) и Ильи Збаня (четвертый курс бакалавриата кафедры КТ). Главным тренером команды выступил доцент кафедры компьютерных технологий , кандидат технических наук Андрей Станкевич , который подготовил не одно поколение спортсменов-программистов. В 2016 году он получил престижную награду ACM ICPC Senior Coach Award за то, что в течение 15 лет его подопечные проходили в финал конкурса.

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

Призерами стали также другие российские команды: команда МФТИ уедет с «серебром» ACM ICPC, а Уральский федеральный университет с «бронзой» контеста . Всего в этом году Россию представляли 13 команд - на одну больше, чем в прошлом году, в том числе по три из Москвы и Санкт-Петербурга, а также из других городов: Саратова, Перми, Петрозаводска, Новосибирска, Самары, Томска и Екатеринбурга. Команды из РФ участвуют в чемпионате с 1993 года, а с 2000 года побеждали в соревновании уже 12 раз, включая этот год.

С полной таблицей результатов можно ознакомиться по ссылке .

«Все команды, вошедшие в ТОП-12, не раз назывались в списках фаворитов - больших сюрпризов не было. По сравнению с прошлым годом, мощный рывок показали азиатские вузы: в прошлом году им досталось всего две медали, а сейчас - целых семь. Однако в каждом регионе много сильных команд, и конкуренция все обостряется» , - комментирует наставник команды Университета ИТМО Андрей Станкевич .

Последний час соревнований, признался тренер, был для него не менее волнующим, чем для его подопечных.

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

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

Чтобы попасть в финал ACM ICPC, нужно было сначала пройти местный отбор в собственном университете. Обычно в этих мероприятиях участвуют более 300 тысяч человек. Затем проходят , в которых определяются лидеры, достойные финала. Чемпионы ICPC получает кубок Чемпионата мира и солидную денежную премию, которая в этом году равняется 15 000 долларов США. Остальные команды-призеры также не уезжают без материального вознаграждения.

Чемпионат по спортивному программированию International Collegiate Programming Contest проводится ежегодно c 1977 года под эгидой Ассоциации вычислительной техники (ACM, штаб-квартира в Нью-Йорке). В этом году ACM ICPC вновь поставил новый рекорд по количеству участников. Всего в региональных отборочных этапах участвовал 46 381 студент из почти трех тысяч университетов. В прошлом году в ходе чемпионата состязались чуть более 40 000 программистов. По статистике организаторов мероприятия, количество участников увеличилось на 2000% с 1997 года, года, когда чемпионат стала поддерживать компания IBM.

Команда петербургского Университета ИТМО в седьмой раз завоевала золотые медали финальной части чемпионата мира по спортивному программированию ACM ICPC, который проходил в американском городе Рэпид-Сити (штат Южная Дакота). Второе место заняли учащиеся Варшавского университета, третье — Сеульского университета, четвёртое — Санкт-Петербургского государственного университета (СПбГУ). Честь ИТМО отстаивали студенты кафедры компьютерных технологий Иван Белоногов (4 курс бакалавриата), Илья Збань (4 курс бакалавриата) и Владимир Смыкалов (1 курс магистратуры). Тренером команды является обладатель престижной награды ACM ICPC Senior Coach Award Андрей Станкевич.

В отдельных категориях чемпионата мира золотые медали достались учащимся Санкт-Петербургского государственного университета (СПбГУ), серебряные медали — команде Московского физико-технического института (МФТИ), бронзовые — студентам Уральского федерального университета (УрФУ).

За места на пьедестале почёта боролись 27 команд, которые прошли предварительный отбор. В общей сложности в чемпионате мира приняли участие 133 команды, из них 13 — российские, представленные вузами Москвы, Санкт-Петербурга, Екатеринбурга, Новосибирска, Перми, Петрозаводска, Саратова, Самары и Томска.

ACM International Collegiate Programming Contest считается самым авторитетным в мире чемпионатом по спортивному программированию. Соревнование проходит ежегодно c 1977 года под эгидой Ассоциации вычислительной техники (ACM). Спонсором первенства выступает корпорация IBM. Победители ACM ICPC получают премию в $15 тыс.

«Эти дети решают задачи за три минуты. Да это же бред какой-то! И мне это нравится. Вот что бывает, когда дети нацелены на решение задач, у них есть необходимые ресурсы и поддержка, а также правильное тренерское руководство, и они идут к своей цели в течение года», — заявил исполнительный директор ICPC Билл Паучер.

Фундамент успеха

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

«В главном поединке ACM ICPC разгорелась нешуточная борьба — за час до окончания соревнований, когда турнирная таблица была заморожена, лидировал Университет ИТМО, однако до последнего оставалось загадкой, кто победит», — говорится в сообщении пресс-службы ИТМО.

Команда из Петербурга смогла справиться с 10 из 12 задач, но столько же задач решили её соперники. Тем не менее учащиеся ИТМО показали лучшее время — 845 минут. Ближайшие преследователи — студенты из Варшавы — справились с 10 задачами за 953 минуты.

«Мы видели, что у других команд есть потенциал, чтобы решить 11 задач. Однако нам повезло: никто больше 10 не решил», — заявил после церемонии награждения один из членов команды, Владимир Смыкалов.

Российские команды участвуют в первенстве ACM ICPC с 1995 года и смогли выиграть 12 из них. Команда ИТМО одерживала победу семь раз — в 2004, 2008, 2009, 2012, 2013 и 2015 и 2017 годах. СПбГУ одержал четыре победы — в 2000, 2001, 2014 и 2016 годы. В 2006 году золотые медали получили студенты Саратовского государственного университета.

  • Анатолий Шалыто
  • vk.com

Заведующий кафедрой технологии программирования ИТМО профессор Анатолий Шалыто прокомментировал RT победу студентов его вуза.

«У нас сильная математическая школа и два тренера-гения — оба Андреи Сергеевичи. Один — Станкевич, другой — Лопатин (наставник команды СПбГУ. — RT ), который создавал с Дуровым «ВКонтакте» и «Телеграмм». Он был двукратным чемпионом мира. Мы гордимся нашими детьми», — заявил Шалыто.

«Могу объяснить причину наших побед на одном примере. В 2013 году мы принимали чемпионат мира и взяли первое место. Казалось бы, тренер команды должен был уехать отдыхать куда-нибудь в Крым или на Бали. А он отправился проводить летнюю компьютерную школу и просил меня не звонить ему до 10 вечера, потому что он укладывает детей спать», — пояснил профессор.

Собеседник RT считает, что программирование можно сделать профессиональным видом спорта, хотя студенты с профессором не согласны. Тем не менее Шалыто надеется, что его пожелания услышит вице-премьер Виталий Мутко — и в будущем появится федерация спортивного программирования России.

«Вы посмотрите на результаты, которые показывают наши спортсмены в хоккее, футболе или в баскетболе. Вы можете представить, чтобы мы сейчас были семикратными чемпионами в каком-либо виде спорта? <...> Почему наш Станкевич не может быть заслуженным тренером России?»

Специалист по информационной безопасности Российского института стратегических исследований (РИСИ) Иван Моньков заявил RT, что фундаментом успехов российских программистов является советская/российская физико-математическая школа.

«Россия обладает превосходной научной базой для появления IT-специалистов экстра-класса. Несмотря на распад СССР, техническое образование в 1990-е годы осталось на очень достойном уровне. Поэтому я не удивлён, что наши ребята из года в год становятся чемпионами», — отметил Моньков.

«Вернуться в лидеры»

Университет ИТМО является единственным в мире семикратным чемпионом по версии ACM ICPC. В 2016 году в рейтинге среди лучших IT-вузов мира Times Higher Education петербургский университет занял 56-ю строчку.

История ИТМО началась 13 марта 1900 года, когда Николай II учредил ремесленное училище с механико-оптическим и часовом отделением. В 1920 году основные классы училища были преобразованы в техникум. В 1933 году на базе техникума был создан Ленинградский институт точной механики и оптики.

В 1994 году институт получил статус университета, что позволило открыть направления, связанные с информационными технологиями. Статус национального исследовательского университета ИТМО был предоставлен в 2009 году.

22 мая обозреватель Le Figaro Марк Шерки (Marc Cherki) написал, что ИТМО «готовит молодых гениев информатики, которые доминируют на престижнейших международных конкурсах». По его мнению, успехи петербургских студентов — свидетельство того, что Россия «стремится вернуться в лидеры мировой научно-исследовательской гонки».