Всем привет! Меня зовут Лида, и я провожу соревнования по программированию уже 12 лет. (Привет, Лида!) В этом году я присоединилась к Команде ВКонтакте и теперь курирую VK Cup. Целых 5 сезонов это был чемпионат только по спортивному программированию. Но настала пора серьёзных изменений.  Мы убрали большую часть ограничений, отменили парный формат и добавили три новых направления. VK Cup 2019 — это онлайн-соревнования для олимпиадных программистов, мобильных разработчиков, дизайнеров и специалистов по машинному обучению с грандиозным офлайн-финалом в Санкт-Петербурге.  В этой статье я расскажу, что нового мы придумали, а мои коллеги дадут рекомендации для участников. Регистрация на VK Cup открыта по ссылке vk.cc/cup до 4 декабря — осталась всего неделя! Все подробности о треках и этапах — под катом.   Свои соревнования проводят многие IT-компании — это способ рассказать про интересные задачи, с которыми они сталкиваются. Команда ВКонтакте одной из первых в 2012 году стала устраивать собственные турниры. Инициировали их сами разработчики — в VK всегда работали победители международных соревнований по программированию. Четыре чемпиона мира в Команде и сейчас.  Движки, которые создают разработчики, — фундамент ВКонтакте. Именно в них особенно важна эффективность, на счету — каждая миллисекунда. Как достичь максимальной производительности? Глубоко знать алгоритмы и структуры данных, а ещё укладываться в заданные ограничения по памяти. Именно такие высокие требования и предъявляются к коду участников VK Cup.  С 2012 года формат немного менялся, но суть оставалась прежней: в олимпиадном программировании соревновались участники от 14 до 23 лет, в одиночку или командами из двух человек. Если дважды прошёл в финал, то снова участвовать не можешь. Пришло время меняться. VK Cup 2019 пройдёт в соло-формате. Убираем верхнюю планку по возрасту и ограничение на количество финалов — так что в этом году вернуться в чемпионат смогут лучшие участники прошлых лет и опытные специалисты. Но главное — кроме спортивного программирования можно будет посоревноваться в машинном обучении, мобильной разработке и дизайне. Участвовать можно в нескольких треках одновременно — если, конечно, хватит времени. Каждый трек будет состоять из трёх раундов: Квалификация. Участники будут решать задачи на платформе Codeforces на любом удобном языке программирования. Можно даже решать задачи руками, разбирая каждый отдельный тест.
Отборочный этап. Важно будет решить каждую задачу как можно скорее, чтобы набрать больше баллов и получить приглашение в финал.
Финал. Участники будут соревноваться по стандартным правилам Codeforces: смогут получить дополнительные баллы, если найдут ошибки в решениях других участников.  Боря — чемпион мира по программированию ICPC 2015, 2 место VK Cup 2015, руководитель Команды баз данных ВКонтакте. Квалификация. Будем проверять знания простых алгоритмов, которые часто нужны для реализации стандартных экранов мобильных приложений, а также теоретические знания своей мобильной платформы. В следующий тур пройдут по 128 участников от каждой платформы.
Отборочный этап. Нужно будет грамотно расставить приоритеты. Что лучше — успеть как можно больше или проработать каждое задание максимально тщательно? В финал пройдут по 20 лучших разработчиков.
Финал. Каждый участник должен будет продемонстрировать свои продуктовые навыки: придумать, реализовать и представить новый проект, используя только экраны, разработанные в предыдущем раунде. Олег руководит Командой Android ВКонтакте и составил задания для трека по мобильной разработке VK Cup. Квалификация. Убедимся, что участники умеют не только разрабатывать отдельные элементы дизайна, но и замечать ошибки.
Отборочный этап. Предложим разработать интерфейсы отдельных элементов ВКонтакте или самостоятельных сервисов. Важно будет найти компромисс между масштабностью идеи и временем на разработку.
Финал. Участники должны будут рассказать о своей идее и представить дизайн. Лёша — старший дизайнер ВКонтакте и победитель конкурса VK Designers в 2015 и 2017 годах. Квалификация. В качестве ответа нужно будет загрузить обработанные данные, причём каждое решение будет оцениваться с помощью заранее определённой метрики. Данные из задания можно обработать в офлайне или даже вручную.
Отборочный этап. Код для подхода, который разработают участники, будет загружен в тестирующую систему — все решения проверятся на одинаковой инфраструктуре, в условиях ограниченных вычислительных ресурсов.
Финал. Участники будут решать сложную практическую задачу. Даня вошёл в топ участников конкурса от «Мерседес» на kaggle. А ещё он старший программист-разработчик ВКонтакте. Если у вас остались вопросы о VK Cup, пишите в личные сообщения сообщества ВКонтакте: vk.com/cup. Там же можно найти правила и следить за ходом чемпионата.  Надеюсь, вам понравится новый VK Cup и с некоторыми читателями мы встретимся на финале в Санкт-Петербурге. Всем удачи! Продакт и организатор