Как становятся спортивными программистами

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

- Как так получилось, что вы занялись спортивным программированием? Как давно вы этим занимаетесь?

- В пятом классе я попал в кружок по программированию, который проводился в Школе Юных Интеллектуалов в городе Столбцы. Там я освоил начальные приёмы и мой преподаватель, Радион Владимир Сергеевич, предложил мне попробовать порешать простейших олимпиадных задач. Мне очень понравилось, и с шестого класса я стал участвовать в олимпиадах. Получается, я занимаюсь этим уже 12-й год.

- Вы обычно участвуете в соревнованиях в составе команды или самостоятельно?

- Я примерно с одинаковой частотой участвовал как в командных, так и в личных соревнованиях. В команде я обычно отвечал за быстрое кодирование простых задач, пока остальные ребята придумывали решения более сложных задач. И самостоятельно, и в команде я предпочитаю реализовывать алгоритм либо на языке С++, если требуется максимальное быстродействие, либо на языке Python, если быстродействие не критично. Python - очень удобный язык для быстрого написания небольших скриптов.

- В каких соревнованиях вы участвовали, какие больше всего запомнились?

- Я участвовал во многих школьных и студенческих личных и командных олимпиадах республиканского и международного уровня, таких, как IOI (международная олимпиада школьников по программированию), ACM ICPC (студенческий чемпионат мира по программированию), и соревнованиях, проводимых отдельными компаниями: TopCoder Open, Google Code Jam, Russian Code Cup, Facebook Hacker Cup. Больше всего всегда запоминаются финальные соревнования, если удаётся пройти на них отбор - они всегда проводятся в разных странах и с очень интересной программой для участников.

- Насколько спортивное программирование коррелирует с повседневной работой в Яндексе? Помогает ли опыт участия в соревнованиях решать рабочие задачи?

- Я бы сказал, что напрямую спортивное программирование не очень сильно коррелирует с повседневной работой. Однако навыки, приобретённые в процессе участия в олимпиадах, весьма помогают в рабочем процессе. Это и умение быстро сориентироваться в новой задаче, и способность её проанализировать и предложить какие-то варианты решения, и умение быстро находить ошибки в коде, и понимание своих сил (сколько займёт решение задачи), и многие другие.

- Что самое сложное, на ваш взгляд, в спортивном программировании ?

- Как и в спорте в целом - не останавливаться на достигнутом после каких-то успехов, а работать над собой дальше, а также не расстраиваться после поражений и верить в свои силы, продолжать тренироваться.

- Насколько в Беларуси сильна школа "олимпиадников" от программирования?

- Я считаю, что у нас достаточно сильная школа. Белорусские школьники каждый год завоёвывают медали различного достоинства на международной олимпиаде, студенты БГУ и БГУИР неоднократно становились призёрами студенческого чемпионата мира. На финалы личных соревнований (TopСoder и прочие вышеперечисленные) каждый год ездит несколько представителей Беларуси, что уже является большое достижением, поскольку в финалах обычно участвуют 20-30 лучших программистов со всего мира.

- Что бы вы посоветовали тем, кто хочет попробовать себя в спортивном программировании?

- Тем, кто хочет себя попробовать в спортивном программировании, я бы посоветовал смело пробовать, несмотря на возраст и на всё остальное. Конечно, большинство известных спортивных программистов начинали заниматься этой деятельностью ещё со школы, но есть довольно много ребят, и в Беларуси в том числе, которые начали заниматься спортивным программированием только в университете, или даже ближе к его окончанию, что не помешало им добиться больших успехов. Более того, решать олимпиадные задачки - это само по себе очень интересно, даже без каких-то громких успехов. Поэтому нужно пробовать, благо сейчас в интернете существует уйма ресурсов с задачами и разборами решений, что позволяет тренироваться и изучать алгоритмы без чьей-то очной помощи.

Беседовал Вадим СТАНКЕВИЧ

Версия для печатиВерсия для печати

Рубрики: 

  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 0
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!