Вдохновлялись продакшеном и баскетболом: как Яндекс готовит чемпионат по программированию |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2019-04-26 11:44 В конце мая начнётся наш чемпионат по программированию. Он будет проходить в онлайне и позволит проверить себя в одной из четырёх сфер: бэкенд- или фронтенд-разработке, машинном обучении или аналитике данных. Задачи для секций разработали в управлении машинного интеллекта и исследований, Поиске и геосервисах. Всем участникам сначала предстоит преодолеть квалификационный раунд. После подачи заявки вы сами выберете, когда его проходить. Квалификация 4-часовая и включает в себя от 4 до 6 задач. Самых лучших мы пригласим к участию в финале, который пройдёт 1 июня, тоже в онлайне. Результаты станут известны 5 июня. Победители в каждом направлении получат по 300 тысяч рублей, второе место — 150 тысяч рублей, третье — 100 тысяч. Регистрация открыта и продлится до последнего дня квалификационного раунда — 26 мая, но лучше отправить заявку пораньше. В этом посте мы поделимся опытом проведения подобных конкурсов — в части аудитории и составления сложных алгоритмических задач.
* * * Чемпионат является развитием идеи, которую мы реализовали в 2017–2018 годах в серии Яндекс.Блиц. Отличие в том, что Блиц был именно серией из отдельных конкурсов по разным направлениям. Их объединял только формат, а проходили они в совершенно разное время. Обязательно почитайте хабрастатьи с разборами задач к каждому конкурсу: по машинному обучению, бэкенду, фронтенду и мобильной разработке. При подготовке чемпионата и этого поста мы много общались с теми, кто занял высокое место в Блице и затем устроился в Яндекс. Было важно учесть реальный опыт ребят, взгляд со стороны участника, чтобы сделать соревнование ещё более прозрачным и интересным. Почему стоит участвовать Чемпионат, как и прошедший Блиц, — это короткий путь в компанию: участники из топа смогут выйти к нам на работу по упрощённой схеме собеседований. Но мы ждём далеко не только тех, кто ищет работу и рассматривает Яндекс. Мы рассчитываем, что к конкурсам присоединятся представители ещё двух категорий разработчиков. Первая категория — те, кто интересуется алгоритмами, занимается спортивным программированием, а также много участвует (или участвовал) в олимпиадах и других конкурсах. Таким людям мы предложим достойные их уровня задачи и интересный опыт в копилку. Production-like Итак, главная идея остаётся неизменной: предложить участникам задачи, приближенные к боевым — тем, с которыми действительно сталкиваются разработчики и аналитики Яндекса. Так вы можете понять уровень и специфику этих задач, посмотреть, с какими вопросами вам придётся столкнуться в работе, если вы устроитесь в компанию. Кроме того, задачи, которые мы составили для конкурса, помогут участникам оценить, насколько они хорошо прокачались в конкретных сферах, есть ли у них идеи, которые действительно можно конвертировать в улучшение сервисов и приложений. Идеи задач Когда задачи для конкурса по спортивному программированию составляются не сами по себе, а на основе задач, реально возникающих в сервисах, то процесс их составления совсем другой. Причина в том, что в сервисах руководитель или коллега приносит разработчику задачу в иной формулировке, в ином контексте, чем когда условие поступает от организаторов конкурса к их участникам. Штатный программист или даже стажёр, особенно если он проработал в компании какое-то время, гораздо глубже погружён в процессы своего отдела, чем внешний (даже очень талантливый) разработчик. Нельзя формулировать им проблему одинаково, тем более что от участника конкурса требуется придумать решение за гораздо меньшее время. Среда разработки у него тоже другая: есть только входной и выходной файл, а сотрудник работает в репозитории, во внутреннем интерфейсе, со всеми инструментами и т. п. «Чистка» условий Так что задачи мы брали из боевого окружения, но затем всегда спрашивали себя — поймут ли их участники? Иногда выяснялось: чтобы для широкой аудитории разработчиков сделать условие понятным, нужно написать к нему большую преамбулу, ввести терминологию, с которой специалист в компании давно знаком, и т. п. Такой подход сработал бы не всегда: в конкурсе важно, чтобы условие было ёмким, чтобы его можно было быстро прочесть и перейти к самому главному — к разработке решения. Поэтому в случаях, когда вместе с преамбулой условие стало бы слишком громоздким, мы старались переформулировать его и снять необходимость в преамбуле. Другая формулировка часто требовалась ещё и потому, что исходная задача содержала внутреннюю информацию Яндекса, которую нельзя разглашать за пределами компании. В результате задача могла стать более абстрактной, уже не такой похожей на аналоги в боевом продакшене. Что мы проверяем Возникает вопрос — делая задачу абстрактной по сравнению с продакшеном, не упрощаем ли мы её? В некотором роде да, упрощаем — для её решения уже не требуется опыт работы с внутренней инфраструктурой Яндекса, как и предварительное общение с коллегами. Не нужно быть знакомым с процессом код-ревью, не нужно делать код красивым и т. д. Но самую содержательную часть каждой задачи, требующую алгоритмического мышления, мы сохраняем. И если вы её решите, пусть даже в несколько упрощённом виде, это всё равно будет означать, что вы отличный программист. А отличный программист быстро познакомится с внутренней инфраструктурой, вникнет в процесс код-ревью и перестроится со спортивного режима написания кода на промышленный. Это как в баскетболе: главное для игрока — габариты и хорошее понимание игры, а броску можно научить. Соревнования по аналитике Рассказывая про задачи чемпионата в этом посте, мы часто вспоминаем Яндекс.Блиц. Но теперь участники могут выбрать направление аналитики данных, по которому мы Блиц не проводили. Это новый трек со своей спецификой. Если вы его выберете, то знание алгоритмов тоже будет плюсом, но в меньшей степени, чем в треках по машинному обучению или бэкенд-разработке. Источник: habr.com Комментарии: |
|