Крупнейший российский чемпионат по спортивному программированию Russian Code Cup 2017 стартует 19 марта. Талантливые программисты со всего мира вновь будут соревноваться в правильности и скорости решения задач и поборются за призовой фонд в размере 750 тысяч рублей.
Основная программа Russian Code Cup (RCC) традиционно состоит из трех этапов: три квалификационных раунда (2 апреля, 16 апреля и 29 апреля), отборочный раунд (14 мая) и финал (10 сентября). На каждом этапе участникам предстоит решить от четырех до восьми разноплановых задач. Те, кому не повезло в первом квалификационном раунде, могут попытать удачи в следующих. В отборочный тур пройдут по 200 лучших участников с каждой квалификации, а в финале сойдутся 50 лучших программистов.
Победителю чемпионата достанется главный денежный приз в размере 150 000 рублей. За второе и третье место конкурсанты получат 100 и 65 тысяч рублей соответственно. Для мест с четвертого по десятое предусмотрен приз в 30 тысяч рублей, а с одиннадцатого по двадцать пятое — 15 тысяч. Кроме того, все участники отборочного раунда получат памятные призы — футболки с логотипом чемпионата.
«В прошлом году в Russian Code Cup впервые официально вышел на международную аудиторию. Из 4,5 тысяч участников соревнования более тысячи были англоговорящими: в финальном раунде за титул чемпиона боролись жители стран СНГ, Германии, Финляндии, Японии, Швейцарии, Китая и Южной Кореи, — говорит Ольга Августан, руководитель образовательного направления Mail.Ru Group. — Чемпионат проводится уже в седьмой раз, и с каждым годом конкуренция возрастает, а значит на вершину прорваться становится все сложнее и почетнее».
Задания и техническую часть соревнования обеспечивают специалисты Mail.Ru Group и эксперты университета ИТМО. Более подробные правила читайте на сайте чемпионата.
Зачем участвовать в чемпионате?
Споры о полезности спортивного программирования ведутся постоянно. С одной стороны, при создании реальных проектов программисты работают в командах и в первую очередь должны писать код так, чтобы в нем смогли разобраться остальные. На чемпионатах же приходится решать задачи далекие от промышленного использования языков программирования, и делать это необходимо очень быстро, а такие условия не способствуют написанию кода в хорошем стиле. С другой стороны, ради понятности кода программисты зачастую жертвуют его эффективностью, что на чемпионатах является непозволительной роскошью. Умение найти оптимальное решение и выжать максимум из каждой части программы может пригодится при создании высоконагруженных систем, где даже минимальное снижение производительности в одном модуле может привести к огромным потерям из-за того, что он будет использован миллионы раз. Вне зависимости от того, с какой стороны смотреть, спортивное программирование полезно — спорить довольно сложно.
Программистам
Для большинства участников чемпионаты — это возможность подучить алгоритмы и приучить свой мозг быстро выдавать решение в стрессовых ситуациях с ограниченным временем и ресурсами. Успешное выступление — показатель собственной крутости. Безусловно, победа на RCC многое может сказать об уровне человека: скорее всего, у него есть определенный талант и солидный опыт за плечами. Мы рады видеть всех победителей в рядах нашей компании, но активной «охоты за талантами» не устраиваем, как и организаторы других подобных чемпионатов. Цель таких мероприятий — создание и укрепление IT-культуры.
Студентам
Для студентов, у которых еще нет опыта работы, чемпионаты вроде Russian Code Cup — отличная возможность получить обратную связь на свой код, понять, чего они стоят в сравнении с другими и определить вектор дальнейшего развития. Занятия спортивным программированием, к сожалению, не научат работать в команде и писать понятный код, поэтому вряд ли это самый лучший способ найти работу. Однако строчка в резюме с описанием успехов на таких чемпионатах лучше всяких слов покажет живой интерес к программированию: такие мероприятия проводятся в выходные дни и, раз студент тратит на участие в них свое свободное время, значит, он действительно этим живет.
Регистрация на чемпионат
Для участия в чемпионате необходимо зарегистрироваться на сайте Russian Code Cup. Соревнования пройдут онлайн. С 19 марта стартует предварительный раунд: участники смогут ознакомиться с платформой и оценить свои силы в решении одной типичной задачи. Участие в этом раунде не обязательно, а его результаты не влияют на итоги следующих. Квалификационные раунды пройдут 2, 16 и 29 апреля.
Комментарии (29)
potan
17.03.2017 18:55Набор разрешенных языков жидковат.
sat2707
17.03.2017 19:48А какие еще языки вам хотелось бы видеть?
potan
17.03.2017 20:09Что-нибудь функциональное, а лучше два — строгий и ленивый (Haskell и OCaml/SML/F#), логическое (Prolog — остальное слишком маргинально), ориентированное на массивы (варианты APL, R/Julia), лиспоподобное (CL, Scheme/Racket, Clojure). Ну еще Elang/Elixir, Scala и Rust для разнообразия.
lotforlife
19.03.2017 12:22Уже занёс палец над кнопкой регистрации, но неожиданно не нашел JavaScript/Node.js в списке
ewgRa
18.03.2017 13:52Даже не смотря на отсутвие Go и неудобное время проведения раундов решил зарегистрироваться. Но после формы регистрации в XX полей решил, что я не настолько мотивирован.
iperov
19.03.2017 12:26В каких реальных сферах нуждаются в программировании на скорость?
Где скорость программирования ценится выше чем баги?sat2707
19.03.2017 12:40Вопрос о пользе олимпиадного программирования сам по себе достаточно холиварен :)
Программирование на скорость никому не нужно промышленно. Но подобные соревнования выявляют не способность быстро напечатать много кода, а хорошее знание классических (и не очень) алгоритмов и умение верно и максимально полно перекладывать задачу из предметной области в код. Кроме того, обычно в подобных контестах нужно уметь четко и ясно мыслить в довольно стрессовой ситуации. Как мне кажется, всё это необходимо любому айтишнику.
Хотя, последнее время от многих я слышу мнение, что «алгоритмы не нужны». Меня это расстраивает, но я терплю :)
lookid
19.03.2017 13:24У олимпидаников обычно в голове очень хороший мат-аппарат. А это нужно в гугле, майкрософке, фейсбуке, янлексе. И прочих компаниях, которые делают будущее и следят за производительностью. Посмотрите на код того же BulletPhysics или Unreal Engine. Для этих проектов вы должны писать код быстро и без багов. Да, " скорость программирования ценится выше чем баги", а кто сказал, что у олимпиадников в коде есть баги?
AndrewN
20.03.2017 14:55Принял участие в разогревочном раунде (попал в двухсотку :) )
Не понятны моменты:
Есть программа, которая решает задачу и проходит публичные тесты, потом после отправки выясняется, что, например, тест 22 был пройден неудачно (WA), за это решение начисляются какие-то баллы? Или программа должна пройти все тесты обязательно? Когда и где можно посмотреть непубличные тесты?MiXei4
20.03.2017 17:47Должна пройти все тесты. Баллов нет, есть только правильное решение и неправильное.
Тесты обычно публикуют через некоторое время после завершения там же где сами задачи…
sat2707
21.03.2017 16:24Здравствуйте, публичные тесты можно посмотреть тут http://www.russiancodecup.ru/ru/championship/ («скачать тесты»)
Поздравляю с топ200, ждем вас на квалификации ;)
Если программа не прошла все тесты — это считается неудачной попыткой и за нее начисляется 20 штрафных минут, посмотрите здесь http://www.russiancodecup.ru/ru/rules/
maniacscientist
Более 200 кусков «интересного кода» за 215 000 рублей. Молодцы, чо
lookid
А что тогда по-вашему "молодцы" без "чо"?
zzzmmtt
720 тысяч рублей, и чуть более чем 200 кусков интересного кода.
sat2707
Простите, а как, по вашему, нужно?
Labunsky
Да нормально все, люди добровольно ведь идут на это
Разве что фонд размазать бы — а то не обязательно «самый интересный код» окажется у победителя. А Васе Пупкину будет обидно, если его алгоритмы заиспользует крупная компания, наградив при этом тысячами 15ю (а то и вовсе ничем)
MiXei4
Никто этот код нигде использовать не будет.
Во-первых, на таких соревнованиях практически никто не пишет хороший код, который имеет смысл где-то использовать.
Во-вторых, все задачи изначально решаются организаторами несколько раз на разных языках.
Labunsky
а) Других причин приближенности задач к реальным у соответствующих компаний. Типа подбора музыки на основе плейлиста с реакциями на каждый трек у Яндекс.Алгоритма за полгода-год до запуска Яндекс.Радио или распределения нагрузки на сервера при отказах на VKCup
б) Смысла в проведении подобного (кроме подбора кадров, которым они сами написали, что не занимаются) в целом — разве что чсв потешить, но крупные компании подобным редко страдают
Но вообще, надо поинтересоваться у тех, кто это все проводит и не врет, а это просто мысли вслух
MiXei4
а) Человеку надо придумать задачу для контеста. По-моему самое простое это просто взять какое-то задание, которое ты или твои коллеги делают и адаптировать его для контеста. По крайней мере для людей без фантазии, как я :) Получается легенда задачи готова автоматически, может даже половина решения готова (а решать свою задачу надо в любом случае, чтобы составить тесты), задача имеет отношение к компании, такую задачу, приближенную к реальности, интереснее решать. Одни плюсы…
б) Смысла проведения я тоже не особо вижу, кроме подбора кадров и рекламы. Даже если напрямую кадров они не набирают, то студента, который прошёл в финал соревнования, я бы охотнее позвал на собеседование, чем студента без ничего.
sat2707
а) Так делается в более «инженерных» чемпионатах. К примеру, http://mlbootcamp.ru/championship/10/, http://russianaicup.ru/. Но олимпиадное программирование — в целом немного про другое
б) В первую очередь, это возможность немного пошевелить сообщество, дать подающим надежды ребятам возможность выделиться среди взрослых дядек :) Ну и конечно же есть некоторый PR с таких штук. Но это не основная причина, основная — целиком в предыдущем предложении
sat2707
Если вкратце, Russian Code Cup — не из тех чемпионатов, которые проводятся ради решения собственной реальной задачи :)
Мы проводим его для развития отрасли и сообщества в целом. Это некая социальная ответственность, которая, как мне кажется, лежит на всех крупных компаниях