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

А я тут недавно, поправляя очки щеками, подумал, что пора заняться спортом и начинать худеть!

По мотивам bash.org.ru

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

Как известно, людям свойственно соревноваться. Поскольку программисты - тоже люди, им присущ соревновательный дух. Соревноваться, конечно же, лучше всего в том, в чем сам силен. В чем силен программист? Очевидно, в программировании. Как правило, состязания "спортсменов"-программистов отличаются от тех же, скажем, школьных олимпиад по программированию, хотя самым популярным "видом спорта" в спортивном программировании остаётся именно разработка оригинальных алгоритмов для решения нетривиальных задач. Разработка эта должна укладываться в определённые временные рамки, и за успешное решение задачи программист получает определенное количество баллов. Существуют и более приближенные к реальному миру состязания: в ряде из них соревнуются пары участников, один из которых пишет спецификацию какого-либо программного компонента, второй же этот компонент сразу непосредственно реализует. Есть и другие "спортивные дисциплины", в которых программисты соревнуются друг с другом.

Существуют различные популярные конкурсы и чемпионаты по спортивному программированию. Самый известный из них, TopCoder Open, носит статус неофициального чемпионат мира по программированию среди профессионалов. Он проводится известной корпорацией TopCoder, занимающейся подобными конкурсами с незапамятных времён. Другой популярный конкурс, Google Code Jam, который также раньше проводился совместно с TopCoder, начиная с 2008 года, проводится самостоятельно компанией Google.

Стоит сказать, что то, что называется спортивным программированием, обычно не включает в себя ряд весьма забавных конкурсов вроде International Obfuscated C Code Contest, где побеждает участник, ухитрившийся написать самый запутанный код на C, или конкурсов, связанных с использованием эзотерических языков программирования. Впрочем, программисты с удовольствием принимают участие и в таких "неспортивных" мероприятиях.

Вадим СТАНКЕВИЧ

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

Номер: 

08 за 2010 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!