РепортажиОбщество

Бразильцы от клавиатуры

«Новая газета» пообщалась с российскими студентами, победившими на чемпионате мира по программированию

Бразильцы от клавиатуры
Фото: «Новая газета»

В Россию из Таиланда вернулись студенты, взявшие медали международного чемпионата по программированию ACM ICPC. Из 12 призовых мест (по четыре «золотых», «серебряных» и «бронзовых») наши команды заняли пять. Чемпионами стали ребята из Санкт-Петербургского государственного университета. На четвертой строчке, тоже «золотой», — программисты из Московского физико-технического института. Серебро завоевали студенты другого питерского вуза, ИТМО, и команда Уральского федерального университета (7‑е и 8‑е места). Нижегородскому госуниверситету достались 10‑е место и бронза.

Для России это уже пятая победа подряд и 11‑я за все время участия в самом престижном соревновании по спортивному программированию. Впереди только американцы — у них 17 трофеев. Но последний раз университет из США занимал 1‑е место в 1997 году. А россияне с 2012 года только и делают, что делят кубок между собой: он переходит от студентов СПбГУ к их землякам из ИТМО и обратно. Позади остаются такие известные вузы, как Массачусетский технологический институт, Гарвард, Токийский университет, Национальный университет Сингапура.

Корреспонденты «Новой газеты» рассказывают о двух командах-призерах — СПбГУ и МФТИ.

Костя Семенов, Артем Жук и Ваня Смирнов. Фото: Владислав Докшин — специально для «Новой газеты»
Костя Семенов, Артем Жук и Ваня Смирнов. Фото: Владислав Докшин — специально для «Новой газеты»


МФТИ

Питер сделал Москву даже в программировании. Мало им было фасадов, поэтов и рок-клуба. Оказывается, они еще и программный код быстрее пишут.

Зато ходят там все, словно пришибленные. А Москва прямодушнее и веселее. В Москве, как известно, вся сила. (Даже если это Долгопрудный.) И в программировании тут тоже есть свой Маяковский, свои «Звуки Му».

— У нас одна из самых эмоциональных команд. Как-то на тренировочных сборах мы сидели рядом с латышами. Я думаю, они узнали много новых слов, — признается четверокурсник Ваня Смирнов, один из трех участников команды MIPT Jinotega. Говорит: «Я считаю, что я капитан, хотя остальные с этим не согласны».

Ваня из Москвы. Артем Жук, трехкратный медалист международной олимпиады по математике среди школьников, — тот из Минска (3‑й курс). Самый младший в команде — второкурсник Костя Семенов, Ижевск. Все учатся на факультете инноваций и высоких технологий. Тренирует команду аспирант Михаил Тихомиров.

Ребята только что приземлились в «Шереметьеве» и, несмотря на 10‑часовой перелет, согласились со мной встретиться.

Как программисты они не выглядят. Скорее как герои фильмов Гая Ричи: все в короткополых шляпах (купили в Hard Rock Cafe в Пхукете), слегка помятые.

У Вани к тому же фингал: ударился о воду во время банджи-джампа, прыжка на резиновом канате. После финала студенты неделю отдыхали в Таиланде. Говорят, у каждого под конец осталось по 1 тысяче рублей, а было по 60.

Интересы у них тоже «человеческие». Смирнов ездил автостопом на Байкал и в Норвегию. Жук катается на велосипеде. А Костя Семенов учится, Костя — отличник.

Мы сидим в одном из кабинетов Центра развития ИТ-образования МФТИ в Долгопрудном. Центр возглавляет Алексей Малеев, сам выпускник Физтеха. Алексей говорит: «Мы стали регулярно заниматься computer science лет пять назад. Приглашаем ребят начиная с 1‑го курса. Тренировки — два раза в неделю. Как и в любом спорте, в течение сезона проходят личные, региональные, зональные соревнования (их называют «контестами»). Есть также соревнования, которые организуют компании: «Гугл», «Фейсбук», «Яндекс»… Команды из МФТИ начинают свой путь к финальной стадии чемпионата мира с четвертьфинала. Он проходит в Москве. В этом году из 200 с лишним команд на московском четвертьфинале 70 были из Физтеха. В полуфинал вышли шесть. Поэтому чаще проблема заключается в том, чтобы обойти своих. Полуфинал, в котором участвуют уже команды так называемого Северо-Восточного европейского региона, традиционно проходит в Санкт-Петербурге. В финал попадают 128 команд со всего мира».

— Поездок очень много, — добавляет Ваня, затягиваясь электронной сигаретой. — Поэтому не все команды живут больше одного года. Сейчас объясню. Представь: сборы, тренинги, выступил — надо остаться на несколько дней, погулять. Вот так поездил — семестр и кончился. У некоторых не все в порядке с успеваемостью, могут и отчислить. Но мы рассчитываем принять участие и в следующем финале в США.

Артем и Костя во время личного контеста. Фото: Владислав Докшин — специально для «Новой»
Артем и Костя во время личного контеста. Фото: Владислав Докшин — специально для «Новой»

Студенты показывают мне фото и видео с финала в Пхукете. Спортивная арена, на площадке установлены ряды столов с компьютерами. Церемония открытия, церемония закрытия. Большое табло, на которое в режиме реального времени выводятся результаты команд. Есть даже комментатор — ветеран соревнования. Ветераном можно стать и лет в 20. Больше двух раз выступать в финале не дают. Участники старше 24 лет тоже не допускаются.

— Это чтобы спортивное программирование не становилось профессией, — объясняет Ваня.

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

Есть ограничение по времени, за которое написанный код должен выполнить задачу: две секунды. По длине кода тоже есть ограничение, но оно, по словам студентов, почти недостижимо — 128 килобайт.

— Самое длинное решение, которое я когда-либо видел, — 12 килобайт, — говорит Ваня. — А в среднем это 3 килобайта текста.

(Размер этой заметки — 13 килобайт. При этом она ничего даже не решает.)

За правильный ответ команде приносят воздушный шарик.

— Какое прикладное значение у этих медалей? — спрашиваю.

— Можно в резюме написать. Это круто, — говорит Артем.

— Реально котируется, — соглашается Ваня.

— Ну это мечта! — перебивает их Алексей Малеев. — Компании отлавливают медалистов за руку. Ребята теперь могут не ходить и стучаться в двери, а сами выбирать.

Некоторые представители ИТ-отрасли считают, что работать в «Гугле» или «Фейсбуке» — не лучшая карьера для таких студентов, потому что они способны на большее, на собственные успешные проекты.

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

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

Между делом студенты зарабатывают составлением задач. «Соревнований много, университетам по всему миру нужны новые тесты». Задачи стоят от 30 до 300 долларов.

— Журналисты часто с презрением относятся к тем, кто ушел в пиар. Вроде учились вместе, но один потом едет на войну, а другой — рекламирует зубную пасту. А в программировании есть сфера, которую вы презираете?

— Клепание сайтиков, — с ходу отвечает Ваня. — Типа «Сделаю сайт за 1000 рублей». Это «не тру».

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

— У нас есть быдло-код, — говорит Артем. — Это когда настучал что-то быстро, работает — и ладно. В идеале код должен быть понятным и чистым.

Ребята выходят из университетского корпуса и на «раз, два, три» отпускают в небо связку шариков, с которой их в аэропорту встречал Алексей Малеев. Спешащий мимо преподаватель с факультета переходит на строевой шаг и смеется: «Я теперь должен честь отдавать». К медалистам подбегают фотографироваться девочки.

А Jinotega — это город в Никарагуа.

Никита Гирин, «Новая газета»

«Нашим тренировкам нет аналогов во всем мире»

Директор Центра развития ИТ-образования МФТИ Алексей Малеев — о том, что может сделать Россию лидером

— Четыре года назад мы запустили у нас в Долго­прудном открытые трени­ровки по спортивному программированию. Этот тренинг называется Moscow International Workshop ACM ICPC. Мы проводим его два раза в году: в ноябре, перед полуфиналом чемпионата мира, и в марте, перед финалом. За это время у нас побывали команды из 20 стран, от Исландии до Китая. Это команды из университетов, которые входят в сотню лучших вузов мира.

Из 12 команд, которые завоевали медали в Таиланде, восемь приезжали на наши тренировки в этом году: все российские команды, а также ребята из Шанхая, Вроцлава и Львова.

Эти тренировки мы проводим в партнерстве с ИТМО, МГУ. У нас давние и плодотворные контакты с СПбГУ, которые в этом году стали чемпионами. Нам помогают две крупнейшие ИТ-компании России: Mail.Ru Group и «Яндекс».

Мы гордимся, что этот формат не имеет аналогов такого масштаба в мире. 20 стран на одной площадке — нигде такого нет. Это может Россию выдвинуть в лидеры — вот такая ИТ-подготовка элитного уровня. Ведь это не просто образовательный туризм. Участие в воркшопе стоит денег, но иностранцы считают, что это для них полезно, и готовы за это платить.

Очень часто мы слышим выступления, что айтишник — только выпустился, тут же собрал чемодан — и уехал. Это неправда. Это однозначно неправда. Да, некоторые уезжают. Многие ездят на стажировки. И это правильно. Их мировоззрение становится полнее. Но они не только видят, чем отличается жизнь в другой стране. Они еще и начинают чувствовать преимущества жизни в России. А таких довольно много.

СПбГУ

Алексей Гордеев и Станислав Ершов. Фото: Елена Лукьянова
Алексей Гордеев и Станислав Ершов. Фото: Елена Лукьянова

Команда из трех человек на пять часов остается с одним компьютером, 25 страницами алгоритмов и 13 задачами. Через пять часов студенты из Санкт-Петербургского государственного университета (СПбГУ) станут чемпионами самого престижного мирового соревнования по программированию. Питерскую команду — Игоря Пышкина, Станислава Ершова и Алексея Гордеева — к победе привел тренер, дважды чемпион мира Андрей Лопатин.

В свое время опыт участия в чемпионатах пригодился Андрею при разработке сети «ВКонтакте» и мессенджера Telegram.

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

Именно на олимпиадах нарабатывается умение работать в условиях катастрофической нехватки времени, когда все срочно нужно исправить или вообще написать заново. «Стрессовая устойчивость позволяла в течение 10—15 минут выбраться из, казалось бы, совсем безнадежной ситуации, — вспоминает тренер Лопатин. — С другой стороны, задачи, на решение которых 10 лет назад могло не хватить и 5 часов, сейчас решаются за 10 минут. Алгоритмы усовершенствованы так, что вместо 500 строк кода теперь достаточно написать 50».

Антикризисная школа

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

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

Одно из таких решений и позволило команде СПбГУ победить в Пхукете. За час до окончания чемпионата ребята решили 9 задач с лучшим временем, чем их соперники, а это уже медаль. Но команда рискнула — и взяла в параллельную разработку сразу две задачи вместо одной. Они успели.

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


Конкретная математика

Игорь Пышкин. Фото: Елена Лукьянова
Игорь Пышкин. Фото: Елена Лукьянова

Все трое в команде СПбГУ — математики. Как они сами объясняют, соревнование больше математическое: в первую очередь задаче нужно придумать алгоритм решения, только потом приходит очередь самого кода. «Мне кажется, математику проще изучить программирование, чем программисту — математику на высоком уровне», — замечает Станислав Ершов.

«В заданиях обычно есть «изюминка»: нужно придумать, как совместить обычно несовместимые алгоритмические задачи, — добавляет Андрей Лопатин. — Эта интеллектуальная часть требует очень глубокого знания теоретического материала».

Команды из математиков на чемпионатах по программированию — скорее правило, чем исключение. Только около 30% участников — программисты по основному профилю. Правда, и математики дальше предпочитают работать в области программирования.

«С одной стороны, решать задачи интереснее. С другой — когда ты написал программу, и она работает, это гораздо круче, — говорит Станислав Ершов.

— В идеях часто можно ошибиться, а если работает программа, значит, все правильно».

Чемпионы уже получают предложения, в том числе, например, стажироваться на базе Google. Правда, они не очень торопятся соглашаться: пока много времени занимает учеба. «Думать начнем ближе к осени», — говорит Алексей Гордеев.

Кроме того, «просто» работать в Google или в Facebook чемпионам неинтересно. Им хочется решать совсем новые задачи: машинного обучения, нейронных сетей, придумывать новые алгоритмы. Перспективы они видят и в России, и за рубежом. «Яндекс» разрабатывает машинное обучение, компании, выпускающие компьютерные игры, — искусственный интеллект, Google работает над беспилотным автомобилем. В целом ребята говорят о работе за рубежом без особого интереса, хотя и допускают, что предложение, аналогов которому в России не будет, они примут.


Верхушка айсберга

«Победители олимпиад — это только верхушка айсберга, — замечает Андрей Лопатин. — Количество вовлеченных людей колоссально. В одном только СПбГУ на отборочный этап ежегодно приходят более 200 студентов, и лишь 50 из них проходят отбор. А потом трое лучших становятся командой, которая проходит в финал».

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

Екатерина Яковлева, «Новая газета» в Санкт-Петербурге»

shareprint
Добавьте в Конструктор подписки, приготовленные Редакцией, или свои любимые источники: сайты, телеграм- и youtube-каналы. Залогиньтесь, чтобы не терять свои подписки на разных устройствах
arrow