?

Log in

No account? Create an account
спортивное программирование - Поклонник деепричастий [entries|archive|friends|userinfo]
Anatoly Vorobey

[ website | Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Links
[Links:| English-language weblog ]

спортивное программирование [июн. 9, 2016|08:04 pm]
Anatoly Vorobey
[Tags|]

«В Facebook и Google мы не пойдем»: Почему одни из лучших программистов мира живут и работают в Екатеринбурге

Любопытное интервью с призерами чемпионата мира по программированию из Уральского федерального университета.

Мне вот всегда было интересно понять, почему в России (точнее, вообще на постсоветском пространстве) так популярны соревнования по программированию (наверное, термин, используемый в этой статье, подходит лучше: "спортивное программирование"), притом что на загнивающем Западе я о них долгое время и не знал даже, а когда знал, почему-то совершенно не тянуло. Это как какой-то отдельный мир совершенно. Я много лет активно участвовал в разных программистких сетевых сообществах, например, тусовался на рассылках различных опенсорс-проектов, встречался в реальной жизни с людьми иногда, но никогда при этом не заходила речь о TopCoder'е, скажем. О том, что TopCoder существует, я узнал из русского ЖЖ, по-моему (а узнав о нем, немедленно и срочно не пошел туда, не создал аккаунт и не стал участвовать). Это как-то очень забавно и интересно понять, почему.

Частично эту популярность объясняют некоторые реплики этого интервью, по-моему:

"А почему именно в этот раз УрФУ показал лучший результат? Звезды сошлись?"

Михаил Рубинчик: Команда у нас звездная. Олег, Леша и все остальные очень сильные ребята. Олег сейчас на шестом курсе, начал заниматься на втором, но уже к третьему у него был приличный уровень.[...]

"Тебе что ближе? Стартап? Или большая компания?"

Олег Меркурьев: Я вообще нигде не работал. И в ближайшие полгода работать нигде не собираюсь. Пойду в аспирантуру, наукой надо немного позаниматься, а то я вообще все свое время тратил на спортивное программирование.


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

"Давайте поговорим немного про сам чемпионат. Три человека в команде. Один компьютер. Почему один? Почему не три?"

Михаил Рубинчик: Жюри когда-то так решило. Это было тридцать лет назад.

Олег Меркурьев: Тогда, возможно, были еще дополнительные причины, которых сейчас нет. И тогда даже по компьютеру на команду – это было много, а на человека уж совсем.

[...]На ЧМ можно пользоваться принтером. Первый человек сел, написал какое-то решение, оно не заработало. Ему нужно найти ошибку. Читать с компьютера – это дорого, у нас же ресурс один. Поэтому распечатывают на принтере и читают на листочке.


Ну вот я не понимаю, как это может быть настолько привлекательным. Программирование - это созидательная деятельность. Не было программы, и вот она есть. Ты не мог что-то сделать с помощью компьютера, и вот ты можешь. Какая разница, это заняло 20 минут или 40? Это просто какой-то неинтересный аспект.

Нет, я могу себе представить ограничения, которые привносят спортивный азарт - но на уровне нескольких дней и действительно сложных, интересных задач. Типа соревнования Ludum Dare - написать игру за два дня. Или The ICFP Programming Contest, там дают три дня, и условия обычно крышесносные. Сравните это с заданиями ЧМ по спортивному программированию. Если соревноваться на минуты и секунды (еще и с одним компьютером на троих), то задания выходят вот такого рода - хитрое применение нескольких стандартных алгоритмов с какой-нибудь заковыристой "изюминкой".

В общем, странный это какой-то мир. Не обессудьте, те, кто от него тащится. Но не понимал и не понимаю.
СсылкаОтветить

Comments:
Страница 1 из 3
<<[1] [2] [3] >>
[User Picture]From: gholam
2016-06-09 05:12 pm
А всякие pwn2own - не спорт? :)
(Ответить) (Thread)
[User Picture]From: avva
2016-06-09 06:23 pm
Нет конечно, туда же все приходят с готовыми дырками/взломами.
(Ответить) (Parent) (Thread)
[User Picture]From: iljyakarzakov
2016-06-09 05:12 pm
Предпочитаю программировать не спеша и внимательно. А быть сильным в спортивном программировании и быть сильным в программировании на работающий результат это, ИМХО, два разных бытия.
(Ответить) (Thread)
From: (Anonymous)
2016-06-10 07:25 am

Более того.

И на результат в разных областях работают очень по-разному. В одних случаях важно быстро выпустить хоть как-то работающий продукт, в других над небольшим куском кода месяцами сидят, потому что там математика мозгодробительная, в третьих особых сложностей нет, но нужна абсолютная надёжность.
(Ответить) (Parent) (Thread) (Развернуть)
From: yacpdb
2016-06-09 05:31 pm
Для соревнования в "умном" программировании я для себя нашел шахматную композицию - ну вот типа классных штук, от alex_levit.

Но там больше, гораздо больше :)
(Ответить) (Thread)
[User Picture]From: levtsn
2016-06-09 05:36 pm
Спортивное же - 22 бугая на полтора часа, один мячик катают. в чем смысл?

Edited at 2016-06-09 17:37 (UTC)
(Ответить) (Thread)
[User Picture]From: webface
2016-06-09 05:44 pm
+1 - ничем не хуже обычного спорта.
(Ответить) (Parent) (Thread)
[User Picture]From: gwadelup
2016-06-09 05:41 pm
Друг из ИТМО рассказывал, там под это дело действительно команда есть, которая только к соревнованиям и готовится в ущерб всему остальному. Нормальных карьер никто из этих ребят в будущем не делает как правило.
(Ответить) (Thread)
[User Picture]From: netp_npokon
2016-06-09 05:45 pm
Вы только про ребят из ИТМО говорите? Потому что из других мест вполне себе делают.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: anna_frid
2016-06-09 05:45 pm
Я оппонировала диссертацию Михаила Рубинчика по теории алгоритмов, он ее защитил меньше месяца назад. Чувак шарит. Раз соревнования дают умным людям мотивацию тусоваться и обсуждать алгоритмы, в них есть смысл для теории алгоритмов - и, подозреваю, смежных областей тоже.
(Ответить) (Thread)
[User Picture]From: avva
2016-06-09 10:29 pm
Интересная диссертация, спасибо! Понравились палиндромные названия структуры данных для подсчета палиндромов - "овердрево"/eertree.
(Ответить) (Parent) (Thread) (Развернуть)
From: glukanat
2016-06-09 05:46 pm
Насколько я знаю - сам из Екатеринбурга, участвовал оч давно на регион. уровне, но совсем не спортсмен - все что там решалось стандартно, лидеры сдадут минут за двадцать за задачу, ну или сорок если код длинный. В лоб задачи если и решаются то только в голове - есть ограничения по памяти, по времени и т. п. Насколько это жизненно - второй вопрос, не хуже матолимпиад наверное. В одной из фирм города Екатеринбурга есть подразделение которое состоит из таких спортсменов, вроде бы они как раз специализируются на потенциально узких местах...
(Ответить) (Thread)
From: migmit
2016-06-10 06:19 am
Математические олимпиады — такая дрянь, что быть "не хуже" очень просто.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: utnapishti
2016-06-09 05:46 pm
Я много раз слышал про ACM-ICPC - группы из Техниона несколько раз получали там какие-то награды. Это та же категория или чем-то отличается?
(Ответить) (Thread)
[User Picture]From: avva
2016-06-09 06:25 pm
Это оно и есть, но согласно этой странице, в первый раз из Техниона участвовали в 2006-м году.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: eterevsky
2016-06-09 05:48 pm
Да, это дествительно спорт имеющий лишь опосредованное отношение к обычному программированию. Но тем не менее, в том же Гугле огромное количество людей, которые в студенческие годы им занималось. И это относится далеко не только к выходцам из России. Мой директор, к примеру -- иранец, и в своё время он также ездил на ACM.
(Ответить) (Thread)
From: (Anonymous)
2016-06-10 07:33 am

А вот насчёт Гугла, кто объяснит?

Меня Гугл зачем-то принуждает к какому-то соглашению, и без этого не даёт пользоваться никакими сервисами. Мне это очень не нравится, я даже читать такое принудительное соглашение не хочу. Зачем это? Какой-то второй Майкрософт стал. Нехорошо, господа гуглисты, давайте все отношения только на добровольной основе строить.
(Ответить) (Parent) (Thread) (Развернуть)
Не верю. - (Анонимно) Развернуть
[User Picture]From: zveriozha
2016-06-09 05:51 pm
А что тут понимать? Это обычный интеллектуальный спорт/игра. Со скоростным нюансом.

ЧГК, блиц в шахматах, Старкрафт, мультитейблинг в покере. Все в ту ж копилку. 20 минут или 40 - огромная разница.

А программирование - тут просто площадка для применения этих навыков.

Вы не понимаете, потому что вам кажется, что оно тут главное. А оно тут второстепенное. Главное тут - спортивно-игровой драйв. Вы смотрите на это как программист, а нужно смотреть с точки зрения игрока.

Это игра.
(Ответить) (Thread)
[User Picture]From: k0t1
2016-06-09 05:54 pm
==В Facebook и Google мы не пойдем==
я думаю что это из разряда "зелен виноград".
(Ответить) (Thread)
From: (Anonymous)
2016-06-09 06:29 pm
Это потому, что вы вякаете понятия не имея о предмете. Ни об одном, ни о другом. Ignorance is a bless, не переживайте, всё будет у вас хорошо.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: Boris Sivko
2016-06-09 06:01 pm
> Какая разница, это заняло 20 минут или 40? Это просто какой-то неинтересный аспект.

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

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

> написать игру за два дня

Такая задача не формализуется должным образом.

> но на уровне нескольких дней и действительно сложных, интересных задач.

Это не формат олимпиады. Не припомню, чтобы на Олимпийских играх кто-то соревновался несколько дней. Если и есть, то это исключения.

> хитрое применение нескольких стандартных алгоритмов

По поводу алгоритмизации ACM как раз таки учит очень хорошо. И вопрос не в том чтобы выбрать алгоритм, а в том, что нужно понимать ограничения алгоритмов (т.к. решение ограничено по процессорному времени и по доступной памяти) и внимательно обработать крайние случаи (которые в алгоритмы не вписываются, а вытекают зачастую из задания).
(Ответить) (Thread)
[User Picture]From: spamsink
2016-06-09 08:26 pm
Не припомню, чтобы на Олимпийских играх кто-то соревновался несколько дней.

Десятиборье, а?
(Ответить) (Parent) (Thread)
[User Picture]From: whitelynx
2016-06-09 06:06 pm
Ну это действительно действительно интеллектуальная игра в какой-то мере, как и Олимпиады по математике. В России (и exUSSR) по-моему в принципе популярны интеллектуальные игры, то же ЧГК например. А так - ну, кому-то нравится, кому-то не интересно.
При этом по моим наблюдениям (я довольно долго варился в этой тусовке - закончил ведущую математическую школу Питера, а потом кафедру КТ в ИТМО, с которой как я понимаю и начиналась ACM в России) обычно ребята, которые добиваются успехов в математических Олимпиадах или ACM действительно очень толковые и у них получаются хорошие карьеры в науке или в бизнесе. Думаю в Яндексе таких довольно много, про то что в Google тоже много уже написано тут в комментах.

Edited at 2016-06-09 18:20 (UTC)
(Ответить) (Thread)
From: raymond_saint
2016-06-09 06:19 pm
Мертвечиной от этого попахивает.
Карго-культом.
(Ответить) (Thread)
From: bbb
2016-06-09 06:37 pm
Полностью поддерживаю тех, кто высказался в том смысле, что это не программировние, а спорт.

Разные виды деятельности.

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

То есть это, конечно, виды деятельности не совсем чтобы разные - понятно, что в соревнованиях по версификации любой поэт победит любого не-поэта (скажем, меня). Но победитель этих соревнований может в реальности быть более чем средним поэтом, а великий поэт на таких соревнованиях може выглядеть очень бледно.
(Ответить) (Thread)
[User Picture]From: mudasobwa
2016-06-09 06:55 pm
Безусловно.

Но совершенно очевидно, что, как говаривал Капитан Врунгель: «Каждый Мандельштам — поэт, но не каждый поэт — Мандельштам». Мне кажется, что если идет речь про уровень Мандельштама в программировании (ни у кого из здесь присутствующих, насколько могу судить, не идет), то, конечно, любая олимпиада — фигня.

А вот если говорить про середнячков, каковыми являются члены дискуссии — то вот именно тут довольно интересно поглядеть на олимпиадные результаты. Потому что техника, скорость и навык работать в условиях «вот тебе 8 минут и пол-компьютера» — это хорошее резюме. А «это все херня для выскочек» — плохое.

Тут как бы разные планки: одна для тех, кто соревнуется за Мандельштама. Вторая — за Светлова (все здешние :). Третья — за Хлебникова (но это про другое совсем, это про Столлмана скорее.)

И все эти три планки абсолютно перпендикулярны друг другу.
(Ответить) (Parent) (Thread) (Развернуть)
Страница 1 из 3
<<[1] [2] [3] >>