
В блоге Codenrock – интервью с Захаром Яковлевым, финалистом Международной олимпиады по программированию ICPC. Вы узнаете:
- Как начинается путь в спортивное программирование.
- Обязательно ли быть программистом, чтобы участвовать в соревнованиях.
- Как тренироваться и показывать высокие результаты в контестах.
Также Захар занял первое место на Новогоднем марафоне по спортивному программированию на Codenrock. Участники решали задачи в трех турах и выигрывали подарочные сертификаты, а лучшие конкурсанты по результатам всех этапов получили денежный приз.
Подробнее о победителе соревнования и неоднократном призере других олимпиад – в интервью.
- Расскажи немного о себе. Как начался твой путь в спортивном программировании?
- Как тебе удается совмещать подготовку по разным дисциплинам?
- Как ты узнал о Новогоднем марафоне по спортивному программированию на Codenrock?
- Расскажи о своем опыте взаимодействия с легендами спортивного программирования в ИТМО.
- Что посоветуешь тем, кто хочет добиться успеха в спортивном программировании?
Расскажи немного о себе. Как начался твой путь в спортивном программировании?
В мире спортивного программирования я со школы. Серьезно заниматься начал примерно в 9 классе. Мне понравилась концепция. Посещал разные кружки, решал задачи и постепенно втянулся. К 11 классу стал призером Всероссийской олимпиады по информатике.
У меня не совсем классическая карьера в спортивном программировании, потому что по образованию я – физик, по этой специальности сейчас учусь и работаю в аспирантуре. Спортивное программирование – это больше хобби, нежели основная форма деятельности. В олимпиадах по физике я тоже был успешен: 4 раза ездил на Всероссийскую олимпиаду школьников, брал золотую медаль на Международной олимпиаде.
Программирование – не основной вид деятельности, но оно всегда мне нравилось. В большей степени для удовольствия, а не результатов. На втором курсе меня позвал одноклассник участвовать в команде ICPC. Мы представляли ИТМО: я учился на физике, ребята – информатике. По итогу дважды съездили на финал: в Луксор (Египет) и Астану (Казахстан). Медаль не взяли, но были достаточно близки.
Как тебе удается совмещать подготовку по разным дисциплинам?
У меня есть хорошая математическая база, что помогает одинаково успешно справляться с задачами. Поэтому я готов к широкому кругу заданий. Во время подготовки мы много тренировались с ребятами из команды. В личном зачете я соревновался гораздо реже – в основном участвовал только в онлайн-контестах. Но сейчас я в аспирантуре, поэтому занимаюсь решением задач в свободное время.
Как ты узнал о Новогоднем марафоне по спортивному программированию на Codenrock?
Я раньше участвовал в мероприятиях Codenrock, и мне приходит рассылка на почту. Это соревнование меня заинтересовало, потому что касалось алгоритмов и было индивидуальным. Я в целом отслеживаю события в мире спортивного программирования. В свободное время, когда мне скучно, захожу-смотрю, что предстоит.
Попробовать свои силы и решить задачи всех туров Новогоднего марафона можно прямо сейчас – турнир доступен в режиме песочницы.
Расскажи о своем опыте взаимодействия с легендами спортивного программирования в ИТМО.
В университете действительно много чемпионов мира, но их нельзя назвать какими-то особенными людьми. Общение с ними довольно простое. Нет такого, что мы чем-то принципиально отличаемся. Они в свое время участвовали в соревнованиях, мы сейчас, дальше за нами кто-то еще будет. Мои сокомандники уже тренируют следующее поколение команд ИТМО. Я сам недавно начал составлять задачи для четвертьфинала и полуфинала ICPC.
Что посоветуешь тем, кто хочет добиться успеха в спортивном программировании?
Главный секрет — это постоянная практика. Нет четкой границы между любителем и финалистом ICPC: прогресс идет плавно, по мере увеличения числа выполненных задач. Нет момента, когда ты резко начинаешь лучше решать. Часто есть доля везения: успех зависит от того, какие темы ты знаешь лучше, а какие хуже.
Вот несколько рекомендаций:
- Регулярно участвуйте в соревнованиях.
- Дорешивайте задачи после контестов.
- Разбирайте решения других участников.
- Изучайте новые алгоритмы.
Почти всегда после олимпиады есть разбор задач. Посмотрите, разберитесь в идее и реализуйте алгоритм самостоятельно. Также могут помочь специализированные курсы по алгоритмам. Но никогда не бывает какой-то критической величины – всегда есть куда расти.
Подробнее о Новогоднем марафоне по спортивному программированию – в кейсе соревнования.