Pull to refresh

Интервью с Александром Скидановым в рамках встречи с призёрами ICPC 2008

Cybersport
Как вы наверняка знаете 10 апреля на финале престижного чемпионата ACM ICPC российские студенты в очередной раз доказали всему Миру, что в спортивном программировании им до сих пор нет равных. Шутка ли — в три из пяти верхних строчек итоговой таблицы результатов вписаны названия русских ВУЗов.

Команда Ижевского Государственного Университета (ИжГТУ) ISTU#1 Godlike заняла третье место в общем зачёте и была награждена золотыми медалями (по версии ACM «золото» достаётся первой тройке). Заинтересованной общественности хочу предстаить интервью с Александром Скидановым, капитаном ижевских программистов.

ISTU#1 Godlike


Для начала нужно сказать, что интервью проходило в рамках встречи призёров с сотрудниками ИТ-компании в которой я работаю (мы уже несколько лет спонсируем олимпиадное движение в регионе). Ребята рассказали о поездке на финал в Канаду, самом мероприятии, осветили некоторые нюансы и тонкости подобных соревновании. После встречи мне удалось задать Саше несколько заранее подготовленных вопросов.

«Вообще термин «спортивное программирование» не даёт однозначного понимания направленности олимпиад. Чего больше в спортивном программировании сегодня, непосредственно программирования или всё же математики?»

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

На локальных соревнованиях в Петрозаводске или открытом кубке CBOSS, математики очень много, особенно геометрических задач. Я их очень не люблю, другие члены команды тоже, поэтому иногда на таких соревнованиях мы выступаем не самым лучшим образом.

«А есть какая-то специфика у различных турниров? К примеру, задачи на чемпионате Урала имеют какое-то принципиальное отличие от финальных задач ICPC?»

Принципиальных отличий нет. Единственное, что нужно отметить так это то, что на локальных турнирах заметно смещение акцентов в сторону математики. Ну и разумеется на местных турнирах мы чувствуем себя гораздо комфортнее. Задачи для чемпионата Урала в Екатеринбурге из года в год пишутся буквально 3-5 специалистами, поэтому за годы участия мы уже научились, можно сказать «предугадывать» направление предстоящих работ.

«Говорят, спортивное программирование сегодня — индустрия. Соответственно, постоянно растут требования к участникам турниров. Не случается ли такого, что для поддержания своего уровня приходится «забивать» на некоторые дисциплины в ВУЗе? Проще говоря, не случается ли ситуаций, когда перед деканатом твоя фамилия напечатана в списке призёров и списке на отчисление?»

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

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

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

Медалисты с тренерами

«Какие планы на будущее? Впереди у тебя TopCoder и ImagineCup. Что ждёшь от этих турниров?»

Боюсь, что ImagineCup мне придётся пропустить — я им совершенно не занимался, хотя время ещё есть. С другой стороны его осталось не так много и если у других претендентов было по два месяца на подготовку, а я решу всё в последний день, то и результат будет соответствующий.

Полуфинал TopCoder, который будет проходить в Лас-Вегасе я однозначно не пропущу. Другое дело, что пройдут в финал всего 10 человек, а я пока что нахожусь на 23 месте в общем зачёте.

«Что случилось в конце февраля, откуда провал графика TopCoder? Готовился к АСМ?»

Нет. Тренировки перед ICPC нисколько не отвлекли меня от TopCoder’a. Февральский срыв графика связан исключительно с одним-единственным конкурсом, который у меня почему-то сразу незадался. TopCoder иногда напоминает мне лотерею, просто не повезло — такое бывает. С другой стороны я восстановил свой рейтинг в следующем состязании.

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

Разумеется жалко. На протяжении нескольких лет у меня в жизни была устойчивая цель, которой я, по сути, достиг, но дальше дорога на ICPC для меня закрыта. Конечно я буду продолжать участвовать в TopCoder, как и многие другие финалисты. Пусть это и не такой раскрученный турнир, как мероприятия проводимые ACM, но в нём по крайней мере нет возрастного ограничения. Да и дисциплин гораздо больше — можно будет попробовать себя, например, в прикладном программировании. Без постоянных тренировок мой рейтинг конечно со временем пойдёт на спад, но я хотя бы смогу продолжать заниматься любимым делом. Кроме того, онлайновый TopCoder кажется мне более интересным, чем длинный и местами даже нудный ACM ICPC.

«Как распределяются роли в вашей команде? Они чётко закреплены за каждым участником, или варьируются в процессе решения каждой конкретной задачи?»

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

«Титул капитана команды предполагает какие-то дополнительные обязанности или ответственность?»

Не знаю как у других команд, но в нашей капитан является по сути неформальным лидером. Никаких дополнительных обязанностей за мной не закреплено. Часто перед крупными турнирами мы договариваемся чьё решение будем использовать в случае спорной ситуации. Бывает что кардинально разные решения появляются у меня и Вити. Раньше, будучи уверенными каждый в своём варианте, мы пытались доказать друг другу правильность собственного решения. С определённого момента для того чтобы не тратить время мы просто начали договариваться заранее чьё слово будет решающим. В любом случае титул капитана команды не даёт мне никаких дополнительных привилегий перед другими членами и не обременяет обязанностями.

«Сколько времени на тренировки ты тратил, ну скажем, в последние шесть месяцев?»

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

Интервью для телевидения

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

Вообще у спортивного программирования есть свои противники. Наверное это говорит о зрелости индустрии (смеётся). Часто бывает, что по возвращению с очередной олимпиады, нам приходится где-то в форумах и конференциях читать о том, что спортивное программирование это прошлый век, оно не имеет никакой практической ценности и давно себя изжило. Много говорят о том, что все эффективные алгоритмы давно написаны, а сегодня на турнирах участники их просто адаптируют под конкретные задачи. Не хочу с этим спорить – на самом деле бывают случаи, когда мы используем классические, хоть и не рядовые, алгоритмы для решения конкурсных задач. В списке задач крупного турнира всегда есть простые задачи, которые сможет решить большинство участников используя типовой алгоритм. При этом в том же списке всегда есть задача или задачи, которые не будут решены ни одной командой на турнире. Поэтому, я считаю, что некорректно говорить о том, что золото досталось нам путём «переписывания» классических алгоритмов на скорость.

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

«Таблица результатов финала ICPC скорее похожа на результаты «междусобойчика» команд бывшего СНГ. Как справедливо заметили в комментариях к новости в Сети: «Непонятно почему в этой стране все болеют за футбол». Чего не хватает спортивному программированию, чтобы стать национальным видом спорта, как в своё время стали шахматы? Из спортивного программирования можно сделать шоу?»

К сожалению, я понятия не имею какие реформы нужно провести, чтобы ICPC превратить в шоу (смеётся). Хотя я достоверно знаю, что некоторые люди следят за этим соревнованием из спорт-баров по такому же принципу, по какому следят за футболом, хоккеем и пр. С другой стороны таких людей пока не так уж и много. TopCoder в этом плане куда более зрелищное мероприятие. Для того, чтобы за ним наблюдали и предпринимать ничего не приходится — аудитория зрителей с каждым годом устойчиво растёт. По поводу превращения спортивного программирования в национальный спорт могу ответить словами своего тренера. Владимир Георгиевич считает, что для этого нужно в первую очередь вмешательство государства на самом высоком уровне. По крайней мере сегодня, других путей он не видит.

«Профессия программиста неплохо оплачивается даже в нашей стране. А можно ли зарабатывать соизмеримые деньги, участвуя в турнирах по спортивному программированию?»

Если вас зовут Пётр Митричев — да, если как-то иначе — нет. Я получаю много разных стипендий — государственных, внутривузовских, спонсорских. Получаю денежные вознаграждения за участие в TopCoder’e. Но даже если взять все эти мелкие источники дохода, которые я имею благодаря своим навыкам в спортивном программировании, их сумма не приблизится к средней зарплате программиста в нашем городе.

«Розовый поросёнок-талисман реально работает?)»
Конечно нет (смеётся). Розовый поросёнок — это маркетинг.

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

PPS. Ещё фотографии с встречи и фотоотчёт на сайте ACM.
Tags:ACMICPCИжГТУ
Hubs: Cybersport
Total votes 8: ↑8 and ↓0 +8
Views425

Comments 5

Only those users with full accounts are able to leave comments. Log in, please.

Popular right now

Backend Ruby on Rails Developer (middle/senior)
from 200,000 to 300,000 ₽meyvnСанкт-ПетербургRemote job
Developer R&D Вlockchain
from 200,000 to 350,000 ₽LATOKENRemote job
Middle Java developer
from 130,000 to 170,000 ₽SkyFortRemote job
Cтарший PHP-разработчик
from 140,000 to 180,000 ₽Ешь ДеревенскоеRemote job
Flutter developer / Flutter разработчик
from 110,000 to 180,000 ₽Code PilotsСанкт-ПетербургRemote job

Top of the last 24 hours