Делать по коду: как спортивное программирование стимулирует развитие технологий
Что такое спортивное программирование
Если коротко, хакатоны ориентированы на создание продуктов, а спортивное программирование — на работу с алгоритмами. В ходе соревнований по спортивному программированию участники решают алгоритмические задачи за определенное время. Оценивается именно правильность и эффективность решения задач, участники работают индивидуально или в небольших группах, а время на решение строго ограничено. Хакатоны же больше ориентированы на командную разработку работающих прототипов продуктов или решений для реальных проблем и могут длиться до нескольких дней.
Есть несколько соревнований высокого уровня сложности, которые привлекают лучших программистов:
- 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) разработаны людьми с опытом участия в соревнованиях по спортивному программированию.
Двигатель прогресса
Соревнования по спортивному программированию — эффективный двигатель прогресса в бизнесе. Помимо того что олимпиады способствуют в целом генерации новых идей и решений, развитию технологий, они могут приносить ощутимую пользу и конкретным компаниям: помогать в найме и развитии талантливых сотрудников, поиске инновационных подходов к решению бизнес-задач, оптимизации процессов. Несмотря на то что все это на начальном этапе требует вложения ресурсов, в конечном итоге оно окупается. Сформированная сильная команда и решения, которые не просто закрывают текущие потребности бизнеса, а нацелены в будущее, — важные конкурентные преимущества для любой современной компании.
Мнение редакции может не совпадать с точкой зрения автора