Чемпион мира объяснил, почему на международных олимпиадах побеждают программисты из России
Александр Голованов. Фото: ТАСС |
Как увлекаются олимпиадами?
Александр Голованов участвует в олимпиадах с 11 лет. В пятом классе он впервые поехал из родной Казани в Киров на турнир юных математиков: «У нас было две команды, с нами отправились преподаватели. В Кирове мы жили в гостинице неделю — участвовали в турнире и гуляли по городу. Не помню, какое место заняла наша команда, но мне понравилось все — и соревновательная атмосфера, и общение, и то, что я посмотрел новый город».
После этой поездки Александр стал часто участвовать в городских олимпиадах и куда-то выезжать. Он отмечает, что в детстве был не очень социально активным, а благодаря олимпиадам подружился со многими людьми: «Если бы не соревнования, у меня было бы куда меньше друзей».
Но знакомства, добавляет он — не основная мотивация: «Мне просто всегда нравилась математика, я увлекался решением задач, мне было интересно решать их на турнирах. В старших классах я стал ездить на соревнования по программированию. И сейчас я несколько раз в год выезжаю на олимпиады от вуза и участвую в онлайн-олимпиадах».
Благодаря олимпиадам Александр побывал в разных странах, куда не поехал бы просто туристом. Чемпионат мира 2018 года проходил в Китае — в Пекине. Еще он ездил на соревнования в Абхазию, Болгарию, Румынию, Чехию, Беларусь, Японию, Канаду, Францию. Частично дорогу и проживание оплачивают сами участники, частично — организаторы и университет. Обычно соревнования по программированию идут один день, а по математике — два дня. Но Александр старается приезжать на несколько дней раньше, чтобы успеть погулять по городу.
Олимпиады, призы и деньги
Для Александра спортивное программирование — это хобби. У него есть работа — он изучает биржевые данные и разрабатывает алгоритмы для торговли на бирже. Это приносит ему основной доход. Он отмечает, что на международных и российских олимпиадах часто есть денежные призы, но жить за счет участия в олимпиадах мало у кого получается.
На базе новосибирского Академгородка проходят соревнования, где за первое место дают 90 тысяч рублей, за второе — 60 тысяч, за третье — 30 тысяч. Эти деньги делятся на команду — в команде три человека. Есть соревнования, которые проводит Google, — за первое место положено 15 тысяч долларов, за второе — две тысячи долларов, за третье — тысячу. Но, говорит Александр, там очень много участников и трудно пройти в финал — до него пять раундов: «Я проходил в третий раунд, и мне прислали футболку. Уже не помню, какой был приз на чемпионате мира в 2018 году, но существеннее, чем на других турнирах, где мы выигрывали. В общем, никто не участвует только из-за призов. Хотя я знаю людей, которые зарабатывают на составлении задач для олимпиад. Есть платформы, на которых проходят онлайн-соревнования, — за их подготовку платят деньги».
Чемпионат мира по спортивному программированию ACM ICPC в Екатеринбурге. Фото: ТАСС |
Победителям проще найти работу?
По словам Александра, чтобы устроиться на работу, необязательно выигрывать на международных олимпиадах. Люди, которые участвуют в олимпиадах, не преследуют такой цели.
«Соревнования и работа — очень разные вещи. Часто после большого опыта спортивного программирования человеку не так интересно делать то, чем занимаются программисты на работе. В офисе тебе дают задачу, нужно работать руками, что-то реализовывать по заказу, там нет соревновательного духа. Но в то же время я не думаю, что спортивное программирование отбивает желание работать — в любом случае, ты заканчиваешь вуз и начинаешь искать заработок», — говорит он.
Кто главные соперники
Если судить по чемпионату мира, то последние лет десять команды из российских вузов в топе самой престижной олимпиады International Collegiate Programming Contest. Там побеждали команды МГУ, СпбГУ, ИТМО. Сильные соперники — команды из вузов Китая, США, Японии и Польши.
Индия не входит в их число, там много программистов, они активно участвуют в международных олимпиадах, у них много онлайн-соревнований внутри страны, но их команды не занимают первые места.
«В спортивном программировании Индия не отжигает», — говорит Александр.
Почему россияне стали побеждать
Александр отмечает, что в России проводится много олимпиад: «Насколько я это себе представляю, все началось еще с развития математических олимпиад в Советском Союзе — там проводились соревнования от школьных до всесоюзных. В общем, в СССР сложилась сильная математическая школа. А программисту нужно быть хорошим математиком. В 90-х эта практика не потерялась. Сейчас развиваются летние компьютерные школы и сборы по программированию. Самые известные — петрозаводские сборы для студентов. В вузах — в том числе в моем вузе — тоже несколько лет проводятся свои сборы. То есть в России есть хорошая подготовка».
Девушки и программирование
По данным Александра, девушек на крупных международных или российских олимпиадах единицы. На школьных и студенческих сборах их побольше. При этом он не может сказать, что девушкам что-то объективно мешает быть в командах: «Я не считаю, что девочки не могут быть хороши в математике или программировании. В моей школьной команде была девочка — она справлялась не хуже других. Но я заметил, что девушкам быстро становится неинтересно программирование и соревнования. Мне кажется, это поменяется. Сейчас растет феминистическое движение, женщины пробуют себя в отраслях, которые считаются мужскими, а программирование считается таким направлением».
Ежегодный конкурс Google Code Jam в штаб-квартире Google в Калифорнии. Фото: ТАСС |
Пандемия и соревнования
Из-за эпидемии коронавируса многие мероприятия перенеслись или отменились. Что-то перешло в онлайн. В конце апреля Александр участвовал в турнире на всероссийском онлайн-чемпионате Rucode. Со своей командой он занял девятое место.
Когда программисты уходят из спорта
По мнению Александра, большинство людей перестают участвовать в олимпиадах, когда заканчивают вузы: «Вернее, так: большая часть уходит из спортивного программирования после школы или в университете, когда начинает подрабатывать. Есть те, кто продолжает ездить на турниры до окончания учебы и позже. Наверное, я буду менее активно участвовать в соревнованиях после аспирантуры. Но все равно хочу продолжать подольше участвовать в соревнованиях».
«Вообще, я хочу развеять миф, что программисты и особенно спортивные программисты какие-то гики, которые ходят и никого вокруг не видят, ничего не замечают. Большинство участников олимпиад интереснее, чем другие люди. С ними можно общаться не только про IT или математику. Многие участники олимпиад занимаются спортом, у них куча разных хобби. На олимпиадах всегда весело — мы с друзьями гуляем по городу, идем куда-то поесть и выпить пива, иногда ходим играть в квесты. Организаторы устраивают посиделки в караоке. Это не так, что люди приезжают и ничего не видят кроме гостиницы и задач на соревнованиях. Спортивное программирование — это целый мир», — говорит Александр.
Когда программисты уходят из спорта, у них, по его словам, абсолютно разные пути — кто-то идет работать в крупные российские компании, кто-то уезжает за границу, кто-то открывает свое дело.
«Вот у меня нет цели делать стартап или продукт, который сделает мир лучше. Вернее, так: если то, что я делаю, станет полезным для многих людей, будет здорово. Алгоритмы для фондовых бирж, которые я делаю, нужны рынку, и мне нравится эта работа. Но я замечаю, что мне не слишком интересно думать о прикладном применении. Главное — процесс. Я люблю математику, мне нравится решать абстрактные задачи», — отмечает Александр Голованов.