Все новости
Почему программисты из России побеждают на международных олимпиадах?
Почему программисты из России побеждают на международных олимпиадах?
Почему программисты из России побеждают на международных олимпиадах?
Почему программисты из России побеждают на международных олимпиадах?
Почему программисты из России побеждают на международных олимпиадах?

Почему программисты из России побеждают на международных олимпиадах? Слово — чемпиону мира

Конкурс Google Global Code Jam 2006 в офисе Google в Нью-Йорке
© Ramin Talaie/Corbis via Getty Images
Обладатель золотой медали по спортивному программированию — о деньгах, девушках в IT, пандемии и смысле олимпиад для детей и взрослых

Школьники и студенты из России уже несколько лет занимают первые места на престижных олимпиадах по спортивному программированию. Сборные команды из российских вузов находятся на первых местах в рейтингах престижных международных турниров. Например, здесь на первом месте МГУ, здесь команда из России, а еще есть звезды в личных зачетах. Как устроен мир спортивного программирования и какие двери открываются перед победителями — рассказал аспирант МФТИ, один из победителей чемпионата мира 2018 года Александр Голованов.

Как увлекаются олимпиадами? 

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

Александру Голованову 24 года. Большую часть жизни он участвует в олимпиадах по математике и спортивному программированию Личный архив Александра Голованова
Описание
Александру Голованову 24 года. Большую часть жизни он участвует в олимпиадах по математике и спортивному программированию
© Личный архив Александра Голованова

Благодаря олимпиадам я побывал в разных странах, куда не поехал бы просто туристом. Чемпионат мира 2018 года проходил в Китае — в Пекине. Еще я ездил на соревнования в Абхазию, Болгарию, Румынию, Чехию, Беларусь, Японию, Канаду, Францию. Частично дорогу и проживание оплачиваем мы сами, частично — организаторы и университет. Обычно соревнования по программированию идут один день, а по математике — два дня. Но мы стараемся приезжать на несколько дней раньше, чтобы успеть погулять по городу.

Олимпиады, призы и деньги

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

Ежегодный конкурс Google Code Jam в штаб-квартире Google в Маунтин-Вью, Калифорния, 23 сентября 2005 года AP Photo/Paul Sakuma
Описание
Ежегодный конкурс Google Code Jam в штаб-квартире Google в Маунтин-Вью, Калифорния, 23 сентября 2005 года
© AP Photo/Paul Sakuma

На базе новосибирского Академгородка проходят соревнования, где за первое место дают 90 тыс. рублей, за второе — 60 тыс., за третье — 30 тыс. Эти деньги делятся на команду — в команде три человека. Есть соревнования, которые проводит Google, — за первое место положено $15 тыс., за второе — $2 тыс., за третье — $1 тыс. Но там очень много участников и трудно пройти в финал — до него пять раундов. Я проходил в третий раунд, и мне прислали футболку. Уже не помню, какой был приз на чемпионате мира в 2018 году, но существеннее, чем на других турнирах, где мы выигрывали. В общем, никто не участвует только из-за призов. Хотя я знаю людей, которые зарабатывают на составлении задач для олимпиад. Есть платформы, на которых проходят онлайн-соревнования, — за их подготовку платят деньги.

Победителям проще найти работу?

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

Кто главные соперники?

Если судить по чемпионату мира, то последние лет десять команды из российских вузов в топе самой престижной олимпиады International Collegiate Programming Contest. Там побеждали команды МГУ, СпбГУ, ИТМО. Сильные соперники — команды из вузов Китая, США, Японии и Польши. Индия — нет, там много программистов, они активно участвуют в международных олимпиадах, у них много онлайн-соревнований внутри страны, но их команды не занимают первые места. В спортивном программировании Индия не отжигает. 

Чемпионат мира по спортивному программированию ACM ICPC в Екатеринбурге, 25 июля 2014 года  Донат Сорокин/ТАСС
Описание
Чемпионат мира по спортивному программированию ACM ICPC в Екатеринбурге, 25 июля 2014 года
© Донат Сорокин/ТАСС

Почему россияне стали побеждать?

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

Девушки и спортивное (и не только) программирование

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

Пандемия и соревнования

Из-за эпидемии коронавируса многие мероприятия перенеслись или отменились. Что-то перешло в онлайн. В конце апреля я участвовал в турнире на всероссийском онлайн-чемпионате Rucode, мы с командой заняли девятое место.

Когда программисты уходят из спорта…

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

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

…и куда идут? 

Абсолютно разные пути — кто-то идет работать в крупные российские компании, кто-то уезжает за границу, кто-то открывает свое дело. Вот у меня нет цели делать стартап или продукт, который сделает мир лучше. Вернее, так: если то, что я делаю, станет полезным для многих людей, будет здорово. Алгоритмы для фондовых бирж, которые я делаю, нужны рынку, и мне нравится эта работа. Но я замечаю, что мне не слишком интересно думать о прикладном применении. Главное — процесс. Я люблю математику, мне нравится решать абстрактные задачи.

Записала Анастасия Степанова