YOUNG

«Скорость – важный фактор успеха». Кто такие спортивные программисты

YOUNG
Матвей Казаков
Матвей Казаков

Руководитель Представительства чемпионата мира по спортивному программированию ICPC в Северной Евразии

Анна Меликян

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

Чем еще спортивные программисты отличаются от промышленных и в чем их уникальность – рассказывает руководитель Представительства чемпионата мира по спортивному программированию ICPC в Северной Евразии Матвей Казаков. 

«Скорость – важный фактор успеха». Кто такие спортивные программисты
Присоединиться

Профессиональные решатели задач

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

Главное, чтобы код не просто работал, но работал быстро и эффективно потреблял ресурсы. Эти два ключевых критерия настолько оттачиваются, что люди делают это на автомате.

У промышленного программиста задача, как правило, сформулирована по-другому: для него важно уметь поддерживать работу кода без строгих временных ограничений. 

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


Спринтеры и марафонцы 

Все соревнования по спортивному программированию проходят на время. Скорость решения – один из важных факторов успеха, ведь чем больше ты решил задач, тем больше шансов стать чемпионом. 

В промышленном программировании, конечно, тоже есть сроки, но коды и программы могут писаться и проверяться месяцами, а то и годами. Это уже не 20 или 40 минут на задачу.  

Генераторы идей 

Дано: задача и ограниченное количество времени. Требуется: найти оптимальное верное решение самым красивым способом. Именно так выглядят соревнования по спортивному программированию. 

В промышленном программировании предпочтение отдается стандартным, проверенным решениям, фокус при этом остается на функциональности.

Почему так важно в спортивном программировании, чтобы решение было быстрым, оптимальным и верным? Все просто: если решение будет ошибочным или выполняется слишком долго, тебе выпишут штрафные очки. Поэтому спортивные программисты – это креативщики, генераторы идей. 

Время для старта 

Спортивный программист может стать промышленным программистом – никаких проблем, но из промышленного программиста превратиться в спортивного намного сложнее. 

Спортивные программисты оттачивают свои способности годами. Многие успешные спортсмены, участвующие в соревнованиях в России, начинают заниматься олимпиадами с 5 класса. Можно заниматься индивидуально, решая задачи прошедших соревнований на codeforces.com и topcoder.com, там же проходят и онлайн-соревнования. Но для участия в командных соревнованиях, типа ICPC, нужна хорошо слаженная команда и тренер. Команды формируются в школьных кружках по спортивному программированию и в университетах – на факультетах компьютерных наук, программирования.

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

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

У занятий в детстве есть еще один плюс: можно начать тренироваться в игровой форме и превратить спортивное программирование в альтернативу игровой приставки.

Карьерные перспективы

И промышленные, и спортивные программисты стартуют одинаково.

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

По данным International Data Corporation, в мире сейчас насчитывается больше 22 миллионов программистов, при этом около 320 тысяч из них – спортивные. Получается, рынок разграничен: узкий рынок спортивных программистов и широкий рынок обычных программистов, на которых спрос также высок, но и выпускают их намного больше. 

С другой стороны, спортивные программисты часто стоят дороже, и не всем компаниям необходимы такие специалисты. Те компании, которым нужны инновационные решения, требующие высокой производительности и те, кто понимают ценность такого специалиста, охотятся за спортивными программистами. Биржевая торговля, языковые технологии, нейронные сети, BigData, везде, где есть серьезные математические модели – им без «спортивных мозгов» не обойтись.

Фото на обложке: shutterstock / Elle Aon

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

Материалы по теме

  1. 1 От татарского языка до спортивного программирования: как школьник превратился в успешного олимпиадника и студента
  2. 2 «Самое главное в хакатонах – знакомства». Как работать дизайнером продукта без образования
  3. 3 «Я сам изучал искусственный интеллект перед хакатоном». Подросток об увлечении программированием