Делать по коду: как спортивное программирование стимулирует развитие технологий

Фото Елены Афониной / ТАСС

Помимо хакатонов, которые сейчас у многих на слуху, в среде разработчиков существует и другой популярный формат соревнований — спортивное программирование. На них начинающие и опытные программисты решают, казалось бы, сложные узкопрофильные задачи. Однако именно такие турниры зачастую становятся источником свежих идей для бизнеса и помогают предпринимателям находить таланты в свою команду. Руководитель службы разработки поиска по товарам в «Яндексе» и призер международных соревнований по спортивному программированию Илья Кучумов рассказывает, как оно устроено и чем может быть интересно для бизнеса

Что такое спортивное программирование

Если коротко, хакатоны ориентированы на создание продуктов, а спортивное программирование — на работу с алгоритмами. В ходе соревнований по спортивному программированию участники решают алгоритмические задачи за определенное время. Оценивается именно правильность и эффективность решения задач, участники работают индивидуально или в небольших группах, а время на решение строго ограничено. Хакатоны же больше ориентированы на командную разработку работающих прототипов продуктов или решений для реальных проблем и могут длиться до нескольких дней. 

Есть несколько соревнований высокого уровня сложности, которые привлекают лучших программистов:

  • International Collegiate Programming Contest (ICPC) — одно из самых престижных и известных соревнований, проводится для студентов университетов со всего мира;
  • Facebook Hacker Cup — соревнование по программированию от Facebook (входит в состав Meta, деятельность которой признана экстремистской в России и запрещена), направленное на поиск талантливых инженеров;
  • AtCoder Contests — японская платформа для соревнований по программированию, которая также пользуется международной популярностью.

В России, к примеру, «Яндекс» проводит Yandex Cup — открытый чемпионат по шести направлениям.

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

Для участников соревнования открывают множество возможностей. Профессиональные программисты соревнуются с другими специалистами, углубляют экспертизу и привлекают внимание работодателей. Иногда в соревнованиях принимают участие люди, которые занимаются программированием в качестве хобби, или школьники — для них такие мероприятия обычно проводят в формате олимпиад. Участники соревнований по программированию нередко становятся основателями успешных компаний — например, Quora или Etherium.

Зачем представителям бизнеса следить за соревнованиями

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

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

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

Как спортивное программирование влияет на развитие технологий

Такие соревнования зачастую становятся мощным стимулом для развития технологий и поиска новых решений. На всех крупных соревнованиях (например, ICPC, Google Code Jam, Google Hash Code, Atcoder Contests) решения и их разборы можно увидеть в открытом доступе — публикуются объяснения математической модели и приводятся примеры. Такие разборы с более понятными объяснениями полезны в том числе для предпринимателей, владельцев бизнеса и управленцев: можно найти новые технологические идеи для своих компаний и продуктов, по-новому взглянуть на бизнес-задачи. 

Хороший пример — Kaggle, соцсеть для специалистов по обработке данных и машинному обучению и система организации конкурсов по этим областям. Среди прочего Kaggle проводила соревнования по улучшению распознавания жестов для Microsoft Kinect и конкурс по совершенствованию системы поиска бозона Хиггса в ЦЕРНе. Особенность системы в том, что компании покупают и сразу внедряют у себя решения топовых участников.

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

Соревнования часто объединяют людей с разными навыками и опытом, это способствует обмену знаниями и сотрудничеству между участниками и в итоге может привести к созданию мультидисциплинарных команд и проектов. Например, такое часто случается в HFT-компаниях — они занимаются автоматической торговлей на биржах. В таких проектах обычно встречаются две важные составляющие:

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

Соответственно, команды формируются так, чтобы в них были представлены специалисты из обеих областей.

Примеры инноваций

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

Так, разработчик из Китая Тяньчэн Лоу (Tiancheng Lou), известный под ником ACRush, — суперзвезда спортивного программирования — стал сооснователем компании Pony.ai, которая занимается разработкой автономных транспортных средств и в 2022 году оценивалась в $8,5 млрд.

Участник множества соревнований Александр Скиданов соосновал NEAR — один из наиболее обсуждаемых PoS-блокчейнов в индустрии. Интересно, что в команде проекта — также победители олимпиад.

Нгуен Тхань Чунг, основатель и CEO вьетнамской онлайн-игры на основе токенов Axie Infinity с миллиардной капитализацией, — тоже бывший участник соревнований по программированию. Еще один пример — основатель Quora Адам Д’Анджело, который выигрывал несколько олимпиад в начале 2000-х.

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

  • AlphaFold — система от DeepMind, которую создали бывшие чемпионы по спортивному программированию. Способна предсказывать структуру белков с невероятной точностью и таким образом открывает новые возможности в области медицины, материаловедения и других областях;
  • Всем известная GPT-3 — генеративная языковая модель от OpenAI, созданная при участии энтузиастов спортивного программирования;
  • Многие ключевые алгоритмы Google (например, PageRank) разработаны людьми с опытом участия в соревнованиях по спортивному программированию.

Forbes.Идеи для бизнеса

Канал о стартапах, новых идеях и малом бизнесе

Двигатель прогресса

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

 Мнение редакции может не совпадать с точкой зрения автора

Анализ
×
Кучумов Илья
Афонина Елена
Скиданов Александр
Meta (запрещена в РФ)
Сфера деятельности:Связь и ИТ
1 296
Google
Сфера деятельности:Образование и наука
138
ООО "ЯНДЕКС"
Сфера деятельности:Связь и ИТ
353
Microsoft
Сфера деятельности:Связь и ИТ
236
OpenAI
Сфера деятельности:Связь и ИТ
42