Крупнейший российский чемпионат по спортивному программированию 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)


  1. maniacscientist
    17.03.2017 14:12
    -1

    Более 200 кусков «интересного кода» за 215 000 рублей. Молодцы, чо


    1. lookid
      17.03.2017 14:22

      А что тогда по-вашему "молодцы" без "чо"?


    1. zzzmmtt
      17.03.2017 16:58

      720 тысяч рублей, и чуть более чем 200 кусков интересного кода.


    1. sat2707
      17.03.2017 17:20

      Простите, а как, по вашему, нужно?


      1. Labunsky
        17.03.2017 21:01

        Да нормально все, люди добровольно ведь идут на это
        Разве что фонд размазать бы — а то не обязательно «самый интересный код» окажется у победителя. А Васе Пупкину будет обидно, если его алгоритмы заиспользует крупная компания, наградив при этом тысячами 15ю (а то и вовсе ничем)


        1. MiXei4
          17.03.2017 22:44
          +3

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


          1. Labunsky
            17.03.2017 23:05
            -1

            Никто этот код нигде использовать не будет.
            Возможно, но тогда я не вижу:
            а) Других причин приближенности задач к реальным у соответствующих компаний. Типа подбора музыки на основе плейлиста с реакциями на каждый трек у Яндекс.Алгоритма за полгода-год до запуска Яндекс.Радио или распределения нагрузки на сервера при отказах на VKCup
            б) Смысла в проведении подобного (кроме подбора кадров, которым они сами написали, что не занимаются) в целом — разве что чсв потешить, но крупные компании подобным редко страдают

            Но вообще, надо поинтересоваться у тех, кто это все проводит и не врет, а это просто мысли вслух


            1. MiXei4
              17.03.2017 23:49

              а) Человеку надо придумать задачу для контеста. По-моему самое простое это просто взять какое-то задание, которое ты или твои коллеги делают и адаптировать его для контеста. По крайней мере для людей без фантазии, как я :) Получается легенда задачи готова автоматически, может даже половина решения готова (а решать свою задачу надо в любом случае, чтобы составить тесты), задача имеет отношение к компании, такую задачу, приближенную к реальности, интереснее решать. Одни плюсы…
              б) Смысла проведения я тоже не особо вижу, кроме подбора кадров и рекламы. Даже если напрямую кадров они не набирают, то студента, который прошёл в финал соревнования, я бы охотнее позвал на собеседование, чем студента без ничего.


              1. sat2707
                18.03.2017 22:20

                а) Так делается в более «инженерных» чемпионатах. К примеру, http://mlbootcamp.ru/championship/10/, http://russianaicup.ru/. Но олимпиадное программирование — в целом немного про другое
                б) В первую очередь, это возможность немного пошевелить сообщество, дать подающим надежды ребятам возможность выделиться среди взрослых дядек :) Ну и конечно же есть некоторый PR с таких штук. Но это не основная причина, основная — целиком в предыдущем предложении


            1. sat2707
              18.03.2017 22:03

              Если вкратце, Russian Code Cup — не из тех чемпионатов, которые проводятся ради решения собственной реальной задачи :)
              Мы проводим его для развития отрасли и сообщества в целом. Это некая социальная ответственность, которая, как мне кажется, лежит на всех крупных компаниях


  1. DanilinS
    17.03.2017 14:32

    А почему Free Pascal убрали?


    1. VaalKIA
      17.03.2017 17:39

      Потому что редиски, mail.ru на мыло!


  1. potan
    17.03.2017 18:55

    Набор разрешенных языков жидковат.


    1. sat2707
      17.03.2017 19:48

      А какие еще языки вам хотелось бы видеть?


      1. potan
        17.03.2017 20:09

        Что-нибудь функциональное, а лучше два — строгий и ленивый (Haskell и OCaml/SML/F#), логическое (Prolog — остальное слишком маргинально), ориентированное на массивы (варианты APL, R/Julia), лиспоподобное (CL, Scheme/Racket, Clojure). Ну еще Elang/Elixir, Scala и Rust для разнообразия.


        1. sat2707
          18.03.2017 22:23

          Ого! Вы используете их все? :)


          1. potan
            19.03.2017 00:48

            Соревнования устраиваются для конкретного человека?
            Мне кажется, что больший выбор сделает их интереснее.


            1. sat2707
              19.03.2017 12:30

              Конечно сделает (хотя я не во всем согласен с вашим списком).
              А какой язык вам хотелось бы дополнительно видеть в списке лично для себя?


              1. potan
                19.03.2017 22:32

                Haskell и Prolog (не Visual).


      1. Kealon
        18.03.2017 21:51

        Паскаля нет — fpc как вариант, очень тяжело перестраиваться с рабочих сред


      1. lotforlife
        19.03.2017 12:22

        Уже занёс палец над кнопкой регистрации, но неожиданно не нашел JavaScript/Node.js в списке


        1. sat2707
          19.03.2017 12:24

          Попробуем добавить к одному из квалов. Но обещать такое, конечно, сложно


  1. ewgRa
    18.03.2017 13:52

    Даже не смотря на отсутвие Go и неудобное время проведения раундов решил зарегистрироваться. Но после формы регистрации в XX полей решил, что я не настолько мотивирован.


  1. iperov
    19.03.2017 12:26

    В каких реальных сферах нуждаются в программировании на скорость?
    Где скорость программирования ценится выше чем баги?


    1. sat2707
      19.03.2017 12:40

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


    1. lookid
      19.03.2017 13:24

      У олимпидаников обычно в голове очень хороший мат-аппарат. А это нужно в гугле, майкрософке, фейсбуке, янлексе. И прочих компаниях, которые делают будущее и следят за производительностью. Посмотрите на код того же BulletPhysics или Unreal Engine. Для этих проектов вы должны писать код быстро и без багов. Да, " скорость программирования ценится выше чем баги", а кто сказал, что у олимпиадников в коде есть баги?


  1. AndrewN
    20.03.2017 14:55

    Принял участие в разогревочном раунде (попал в двухсотку :) )
    Не понятны моменты:
    Есть программа, которая решает задачу и проходит публичные тесты, потом после отправки выясняется, что, например, тест 22 был пройден неудачно (WA), за это решение начисляются какие-то баллы? Или программа должна пройти все тесты обязательно? Когда и где можно посмотреть непубличные тесты?


    1. MiXei4
      20.03.2017 17:47

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


    1. sat2707
      21.03.2017 16:24

      Здравствуйте, публичные тесты можно посмотреть тут http://www.russiancodecup.ru/ru/championship/ («скачать тесты»)
      Поздравляю с топ200, ждем вас на квалификации ;)
      Если программа не прошла все тесты — это считается неудачной попыткой и за нее начисляется 20 штрафных минут, посмотрите здесь http://www.russiancodecup.ru/ru/rules/