спортивное программирование
Jun. 9th, 2016 08:04 pm«В Facebook и Google мы не пойдем»: Почему одни из лучших программистов мира живут и работают в Екатеринбурге
Любопытное интервью с призерами чемпионата мира по программированию из Уральского федерального университета.
Мне вот всегда было интересно понять, почему в России (точнее, вообще на постсоветском пространстве) так популярны соревнования по программированию (наверное, термин, используемый в этой статье, подходит лучше: "спортивное программирование"), притом что на загнивающем Западе я о них долгое время и не знал даже, а когда знал, почему-то совершенно не тянуло. Это как какой-то отдельный мир совершенно. Я много лет активно участвовал в разных программистких сетевых сообществах, например, тусовался на рассылках различных опенсорс-проектов, встречался в реальной жизни с людьми иногда, но никогда при этом не заходила речь о TopCoder'е, скажем. О том, что TopCoder существует, я узнал из русского ЖЖ, по-моему (а узнав о нем, немедленно и срочно не пошел туда, не создал аккаунт и не стал участвовать). Это как-то очень забавно и интересно понять, почему.
Частично эту популярность объясняют некоторые реплики этого интервью, по-моему:
Т.е. это действительно воспринимается как спорт, в первую очередь. Включая какие-то дикие ограничения, характерные как раз для спортивных соревнований:
Ну вот я не понимаю, как это может быть настолько привлекательным. Программирование - это созидательная деятельность. Не было программы, и вот она есть. Ты не мог что-то сделать с помощью компьютера, и вот ты можешь. Какая разница, это заняло 20 минут или 40? Это просто какой-то неинтересный аспект.
Нет, я могу себе представить ограничения, которые привносят спортивный азарт - но на уровне нескольких дней и действительно сложных, интересных задач. Типа соревнования Ludum Dare - написать игру за два дня. Или The ICFP Programming Contest, там дают три дня, и условия обычно крышесносные. Сравните это с заданиями ЧМ по спортивному программированию. Если соревноваться на минуты и секунды (еще и с одним компьютером на троих), то задания выходят вот такого рода - хитрое применение нескольких стандартных алгоритмов с какой-нибудь заковыристой "изюминкой".
В общем, странный это какой-то мир. Не обессудьте, те, кто от него тащится. Но не понимал и не понимаю.
Любопытное интервью с призерами чемпионата мира по программированию из Уральского федерального университета.
Мне вот всегда было интересно понять, почему в России (точнее, вообще на постсоветском пространстве) так популярны соревнования по программированию (наверное, термин, используемый в этой статье, подходит лучше: "спортивное программирование"), притом что на загнивающем Западе я о них долгое время и не знал даже, а когда знал, почему-то совершенно не тянуло. Это как какой-то отдельный мир совершенно. Я много лет активно участвовал в разных программистких сетевых сообществах, например, тусовался на рассылках различных опенсорс-проектов, встречался в реальной жизни с людьми иногда, но никогда при этом не заходила речь о TopCoder'е, скажем. О том, что TopCoder существует, я узнал из русского ЖЖ, по-моему (а узнав о нем, немедленно и срочно не пошел туда, не создал аккаунт и не стал участвовать). Это как-то очень забавно и интересно понять, почему.
Частично эту популярность объясняют некоторые реплики этого интервью, по-моему:
"А почему именно в этот раз УрФУ показал лучший результат? Звезды сошлись?"
Михаил Рубинчик: Команда у нас звездная. Олег, Леша и все остальные очень сильные ребята. Олег сейчас на шестом курсе, начал заниматься на втором, но уже к третьему у него был приличный уровень.[...]
"Тебе что ближе? Стартап? Или большая компания?"
Олег Меркурьев: Я вообще нигде не работал. И в ближайшие полгода работать нигде не собираюсь. Пойду в аспирантуру, наукой надо немного позаниматься, а то я вообще все свое время тратил на спортивное программирование.
Т.е. это действительно воспринимается как спорт, в первую очередь. Включая какие-то дикие ограничения, характерные как раз для спортивных соревнований:
"Давайте поговорим немного про сам чемпионат. Три человека в команде. Один компьютер. Почему один? Почему не три?"
Михаил Рубинчик: Жюри когда-то так решило. Это было тридцать лет назад.
Олег Меркурьев: Тогда, возможно, были еще дополнительные причины, которых сейчас нет. И тогда даже по компьютеру на команду – это было много, а на человека уж совсем.
[...]На ЧМ можно пользоваться принтером. Первый человек сел, написал какое-то решение, оно не заработало. Ему нужно найти ошибку. Читать с компьютера – это дорого, у нас же ресурс один. Поэтому распечатывают на принтере и читают на листочке.
Ну вот я не понимаю, как это может быть настолько привлекательным. Программирование - это созидательная деятельность. Не было программы, и вот она есть. Ты не мог что-то сделать с помощью компьютера, и вот ты можешь. Какая разница, это заняло 20 минут или 40? Это просто какой-то неинтересный аспект.
Нет, я могу себе представить ограничения, которые привносят спортивный азарт - но на уровне нескольких дней и действительно сложных, интересных задач. Типа соревнования Ludum Dare - написать игру за два дня. Или The ICFP Programming Contest, там дают три дня, и условия обычно крышесносные. Сравните это с заданиями ЧМ по спортивному программированию. Если соревноваться на минуты и секунды (еще и с одним компьютером на троих), то задания выходят вот такого рода - хитрое применение нескольких стандартных алгоритмов с какой-нибудь заковыристой "изюминкой".
В общем, странный это какой-то мир. Не обессудьте, те, кто от него тащится. Но не понимал и не понимаю.
no subject
Date: 2016-06-09 05:12 pm (UTC)no subject
Date: 2016-06-09 05:12 pm (UTC)no subject
Date: 2016-06-09 05:31 pm (UTC)Но там больше, гораздо больше :)
no subject
Date: 2016-06-09 05:36 pm (UTC)no subject
Date: 2016-06-09 05:41 pm (UTC)no subject
Date: 2016-06-09 05:44 pm (UTC)no subject
Date: 2016-06-09 05:45 pm (UTC)no subject
Date: 2016-06-09 05:45 pm (UTC)no subject
Date: 2016-06-09 05:45 pm (UTC)no subject
Date: 2016-06-09 05:46 pm (UTC)no subject
Date: 2016-06-09 05:46 pm (UTC)no subject
Date: 2016-06-09 05:47 pm (UTC)no subject
Date: 2016-06-09 05:48 pm (UTC)no subject
Date: 2016-06-09 05:51 pm (UTC)ЧГК, блиц в шахматах, Старкрафт, мультитейблинг в покере. Все в ту ж копилку. 20 минут или 40 - огромная разница.
А программирование - тут просто площадка для применения этих навыков.
Вы не понимаете, потому что вам кажется, что оно тут главное. А оно тут второстепенное. Главное тут - спортивно-игровой драйв. Вы смотрите на это как программист, а нужно смотреть с точки зрения игрока.
Это игра.
no subject
Date: 2016-06-09 05:51 pm (UTC)Что бы тут не фантазировали на тему статистику разные товарищи, звучало примерно так "ребята из команды в дальнейшем устраивались хуже, чем сравнимые с ними по уровню студенты, которые не тратили время на это".
no subject
Date: 2016-06-09 05:54 pm (UTC)я думаю что это из разряда "зелен виноград".
no subject
Date: 2016-06-09 05:54 pm (UTC)no subject
Date: 2016-06-09 05:54 pm (UTC)Спасибо, за демонстрацию мышления придурка. :)
no subject
Date: 2016-06-09 06:01 pm (UTC)Первая разница - принимаются только те решения, которые прошли все тесты. Т.е. дополнительный аспект - нужно прежде всего решить задачу.
Вторая разница - если отправлено решение, и оно не прошло хотя бы один тест, то задача получает -1 балл. Если потом сдать задачу, то каждый -1 балл конвертируется в 20 штрафных минут. Другими словами, сдавать решения с багами плохо. т.е. ещё один аспект - не нужно ставить в бой такие программы, которые работают неправильно, а нужно их либо хорошо предварительно тестить, либо использовать другие подходы для повышения качества.
> написать игру за два дня
Такая задача не формализуется должным образом.
> но на уровне нескольких дней и действительно сложных, интересных задач.
Это не формат олимпиады. Не припомню, чтобы на Олимпийских играх кто-то соревновался несколько дней. Если и есть, то это исключения.
> хитрое применение нескольких стандартных алгоритмов
По поводу алгоритмизации ACM как раз таки учит очень хорошо. И вопрос не в том чтобы выбрать алгоритм, а в том, что нужно понимать ограничения алгоритмов (т.к. решение ограничено по процессорному времени и по доступной памяти) и внимательно обработать крайние случаи (которые в алгоритмы не вписываются, а вытекают зачастую из задания).
no subject
Date: 2016-06-09 06:06 pm (UTC)При этом по моим наблюдениям (я довольно долго варился в этой тусовке - закончил ведущую математическую школу Питера, а потом кафедру КТ в ИТМО, с которой как я понимаю и начиналась ACM в России) обычно ребята, которые добиваются успехов в математических Олимпиадах или ACM действительно очень толковые и у них получаются хорошие карьеры в науке или в бизнесе. Думаю в Яндексе таких довольно много, про то что в Google тоже много уже написано тут в комментах.
no subject
Date: 2016-06-09 06:12 pm (UTC)КМК тут как раз аналогия со спортом очень хороша. Заниматься спортом полезно, заниматься профессиональным спортом уже не столь полезно, заниматься спортом на уровне чемпиона мира крайне неполезно.
no subject
Date: 2016-06-09 06:14 pm (UTC)no subject
Date: 2016-06-09 06:19 pm (UTC)Карго-культом.
no subject
Date: 2016-06-09 06:23 pm (UTC)no subject
Date: 2016-06-09 06:25 pm (UTC)