1 октября 2021, 09:32
Статья

Отвечают победители международных чемпионатов — те, кто участвует в соревнованиях много лет и живет ими

fizkes/ Shutterstock/ FOTODOM

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

Как и когда начинать? 

Первое — преподаватели считают, что слишком рано начинать заниматься спортивным программированием не стоит. Оптимальный возраст — 7–8-й класс, но педагоги уточняют, что дети, особенно одаренные математически, иногда начинают готовиться в начальной школе. Наши герои начали учиться программированию и участвовать в соревнованиях — в средней школе и старших классах.

Алексей Данилюк, серебряный медалист ICPC-2016 в составе команды УрФУ. Выпускник СУНЦ УрФУ. Профессиональный спортивный программист. Финалист следующих чемпионатов: "Яндекс.Алгоритм", TopCoder Open, VK Cup, Facebook Hackercup, Russian Code Cup, Google Hashcode и Google Codejam.

"Формально программирование я начал изучать в девятом классе, после перехода в Специализированный учебно-научный центр (СУНЦ) УрФУ в Екатеринбурге — это школа для одаренных детей. Но программирование, особенно спортивное программирование и алгоритмы, стоит на плечах математики. Математикой я начал интересоваться с шести лет. Рекомендую книги "Занимательная математика" Перельмана (и другие из его серии) и "Как же называется эта книга?" Смаллиана, их можно читать в семь-восемь лет. Не обещаю, что все будет понятно, но если есть тяга к математике, то точно будет интересно. В олимпиадах по математике участвовал с младших классов школы. Помню ежегодный конкурс "Кенгуру". Это, конечно, не настоящая серьезная олимпиада, но тоже неплохо. Сколько себя помню, я всегда любил математику и к моменту поступления в СУНЦ был достаточно хорош в ней.

СУНЦы есть при МГУ (Москва) и НГУ (Новосибирск), при них интернаты. В СУНЦ МГУ большая часть учеников — из разных городов со всей России. У нас примерно половина учеников жили в Екатеринбурге в своих домах, остальные были из разных городов — в основном Свердловской области, либо близлежащих регионов. Родом я из небольшого закрытого города Новоуральска. До девятого класса я учился в хорошей школе, но информатики у нас не было, как и преподавателей серьезного уровня. Но дело в основном не в преподавателях, а в учениках вокруг тебя. В обычных школах дети, которые интересуются участием в олимпиадах, чаще становятся изгоями. У учителей нет на них времени, потому что надо подтягивать двоечников до приемлемого уровня, а не выводить лучших на мировой уровень. Когда я попал туда, где все имеют те же интересы, прогресс стал намного более стремительным. Жизнь в интернате тоже помогает, потому что ты постоянно остаешься в этой среде.

В олимпиадах я стал участвовать после поступления в СУНЦ. Я изучал Pascal под руководством моей подруги. Она показала мне сайт с задачами по олимпиадному программированию. Самые простые задачи можно использовать для изучения основ языка программирования. Когда я освоил базовые вещи, со мной начал обсуждать задачки другой мой одноклассник — Никита Сивухин, в будущем золотой медалист IOI (Международная олимпиада по информатике), мой сокомандник и серебряный медалист финала ICPC-2016. Через полгода я уже мог относительно успешно участвовать в локальных олимпиадах. Правда, с тех пор уровень школьных олимпиад сильно вырос, вряд ли я смог бы за полгода достичь ненулевых результатов в 2021-м".

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

"Мои родители всегда работали в сфере IT, и примерно с пятого класса я начал знакомиться с программированием в формате написания каких-то простых учебных программ на Pascal. Серьезные занятия олимпиадной информатикой начались в седьмом классе, после того как я съездил в летнюю компьютерную школу, опять же по совету родителей".

Фарход Хакимиен, студент четвертого курса Университета Иннополис. Команда Иннополиса второй раз выходит в финал ICPC. Студент бакалавриата Иннополиса — впервые. Серебряная медаль (шестое место) на соревнованиях Северной Евразии.

"Программированием я интересовался с детства. Вся моя семья, кроме мамы, — отец, двое братьев и две сестры работают в IT. Мне всегда это казалось увлекательным. В 13 лет я поступил в лицей, где был отбор талантливых ребят на спецклассы по олимпиадам. Я подал на класс по информатике и прошел с самыми высокими баллами. С того момента я начал изучать и одновременно решать олимпиадные задачи".

Кому подойдет заниматься спортивным программированием? 

Алексей Данилюк: "Единственная адекватная причина заниматься им на серьезном уровне — это если вы хотите и, в некотором смысле, не можете иначе. Я получаю огромное удовольствие от решения задач. Я не заставляю себя через силу, чтобы стать лучше. Когда внутреннего желания нет — это не имеет никакого смысла".

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

Фарход Хакимиен: "Олимпиады полезны тем, кто не стремится учить все равномерно, а тяготеет к чему-то определенному. Если человек уверен, что ему интересно программирование и он хочет связать свою жизнь с ним, олимпиада — отличный старт. Она дает базовые знания, упорядочивает обучение, учит ставить цели и добиваться их. Кому могут быть не полезны олимпиады? Наверное, тем кто хочет изучать все равномерно, олимпиады отнимают очень много времени и сил. Я бы не советовал увлекаться олимпиадами, если вы принимаете поражения слишком близко к сердцу, потому что, поверьте, они будут".

Что меняется с появлением в жизни олимпиад?

Алексей Данилюк: "Олимпиады дали мне примерно все, что в моей жизни есть. Я познакомился с будущей женой на олимпиаде по математике, завел друзей в летних школах, получил сообщество людей с похожими интересами. Я не из богатой семьи, и пять лет я жил на какие-то специальные стипендии, призовые со соревнований — они во многом случайны, нерегулярные подработки типа преподавания в летних школах. Сейчас я сделал спортивное программирование своим источником заработка".

Михаил Анопренко: "Занятия олимпиадной информатикой определили всю мою жизнь до текущего момента и, скорее всего, еще на долгие годы вперед. Когда я учился в школе, большую часть учебного года участвовал в сборах и олимпиадах, ездил в разные города и страны. Из-за этого было труднее следить за успеваемостью, но школа всегда поощряет участие в олимпиадах и помогает. Благодаря успехам на олимпиадах я поступил в университет, а также это сильно помогло для устройства на хорошую высокооплачиваемую работу".

Фарход Хакимиен: "Олимпиады сделали меня более целеустремленным, дисциплинированным, добавили уверенности в себе, благодаря им я побывал в нескольких странах, завел полезные или просто интересные знакомства". 

От чего придется отказаться?

Алексей Данилюк: "От душевного спокойствия, когда долго не решаешь задачи (см. выше). Но на самом деле если у вас было это душевное спокойствие, то вам не нужно спортивное программирование".

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

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

Какие привилегии дают олимпиады? 

Алексей Данилюк: "Есть олимпиады из списка ректоров, которые дают поступление в вуз без экзаменов. Есть всероссийская олимпиада школьников, с еще более сильными эффектами. Многие вузы предлагают повышенную стипендию победителям олимпиад. Но мне кажется глупым занятием участвовать в них ради поступления. В университет можно поступить по ЕГЭ, подготовиться к ЕГЭ куда проще. Конечно, на ЕГЭ нужно с первого раза сделать все хорошо, а олимпиад много. Но я все равно не считаю, что оно того стоит.

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

И, как я уже сказал, спортивное программирование — это далеко не самый прямой путь ни в вуз, ни в IT-компании. Заниматься им стоит, только если это греет душу. Вообще чем-либо стоит заниматься, только если это греет душу.

Михаил Анопренко: "Да, в моем случае олимпиады уже многократно помогли мне в жизни. На лучшие образовательные IT-программы топовых вузов в настоящее время почти невозможно поступить по результатам ЕГЭ, только по олимпиадам. Имея диплом Всероссийской олимпиады, можно выбрать любое место для учебы. И также, разумеется, олимпиады играют важную роль при устройстве на работу. Огромное количество IT-компаний ориентируются на найм именно олимпиадников, потому что знают, что они в состоянии научиться решать любые задачи".

Фарход Хакимиен: "Олимпиады и победы в них мне уже помогли. В университет я поступил благодаря победе во внутренней олимпиаде, еще когда учился в 11-м классе. При поступлении в другие вузы, именно на эту специальность, победы на олимпиадах могут сыграть хорошую роль, иногда решающую".

На финал ICPC, который начался сегодня в Москве, приедет более 350 программистов в составе более 100 команд, они представят 42 страны. 15 команд из российских вузов. Чемпионат ICPC можно назвать Олимпийскими играми мира в спортивном программировании: в этом году в нем приняли участие почти 60 тыс. молодых программистов из 104 стран мира, и только около 1% участников вышли в финал. Ежегодно в финал ICPC выходят около 10 команд из России. Студенты российских вузов участвуют в чемпионате с 1995 года, опережая все страны по количеству медалей и не прерывая череду побед уже восемь лет подряд. 

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

Анастасия Акулова