Онлайн-курсы
17 курсов на платформах Stepik и Coursera. Ниже — ТОП 7 из них:
-
Погружение в Python
Лучший курс по программированию по версии международного конкурса открытых онлайн-курсов Edcrunch Award OOC 2018. На Хабре есть статья, посвященная этому курсу, а на странице курса на Coursera можно познакомиться с программой и прочесть отзывы участников. -
Go, часть 1
Подробнее о курсе — в статье на Хабре и на странице курса на портале Coursera. -
Go, часть 2
Продолжение погружения в язык Go. Подробнее — в статье на Хабре. -
Web-технологии
Курс по вебу на платформе Stepik. Отзывы есть на странице курса, а подробности — на Хабре. -
Анализ безопасности веб-проектов
С отзывами и программой можно ознакомиться на странице курса на Stepik. -
Hadoop. Система обработки больших данных
Отзывы и программа — на странице курса на Stepik. -
Разработка на Java
Подробная статья о курсе с комментариями преподавателей есть на Хабре.
Техноатом (МИФИ) и Технополис (СПбПУ)
В Техноатоме 234 выпускника и 235 студентов. В Технополисе, образовательном проекте социальной сети «Одноклассники» (Mail.Ru Group), — 96 выпускников и 121 студент. Оба проекта были запущены в 2016 году.
Основная программа Технополиса — «Проектирование высоконагруженных приложений», семестровые курсы — Java, Go и «Автоматизированное тестирование». В Техноатоме на данный момент основной программы нет; из семестровых курсов — Perl, Go, Python, «Нейросети», «Тестирование мобильных приложений» и IT-рекрутмент.
Самый популярный курс в обоих проектах — Разработка на Java (Илья Дронов, мобильный разработчик социальной сети «Одноклассники»).
Записи курсов Технополиса:
- Использование баз данных (Сергей Михалев, руководитель группы бизнес-аналитики социальной сети «Одноклассники»);
- HighLoad (Вадим Цесько, ведущий разработчик социальной сети «Одноклассники»);
- Проектирование интерфейсов (Виктор Иванов, менеджер социальной сети «ВКонтакте», и Михаил Фролов, менеджер социальной сети «Одноклассники»).
Известные соревнования
Существуют два типа форматов соревнований: краткосрочные и долгосрочный. Каждый раунд краткосрочных соревнований длится от 1 до 5 часов. Длительные соревнования могут длиться от нескольких дней до нескольких месяцев.
Краткосрочная
- Международная студенческая олимпиада по программированию (ICPC) — одно из старейших соревнований, для студентов вузов в группах по 3 человека в каждой
- Международная олимпиада по информатике ( IOI) — одно из старейших соревнований для учащихся средних школ
- American Computer Science League (ACSL) — соревнования по информатике с письменной и программной частью, для учащихся средних / старших классов
- CodeChef — соревнований, проводимых с 2009 года, ежемесячно проводятся два коротких конкурса и ежегодное соревнование под названием CodeChef SnackDown
- Codeforces Round — обычно двухчасовое соревнование, проводимое каждую неделю
- Facebook Hacker Cup — соревнование проводится с 2011, предоставлено и спонсировано
- HackerRank — несколько конкурсов
- Gridwars — четыре конкурса, проведенных с 2003 по 2004 год.
- Google Code Jam — конкурс проводится с 2003 года., проводится и спонсируется
- IEEEXtreme Programming Competition — ежегодно Конкурс для студентов-членов IEEE, проводимый с 2006 г. IEEE.
- Topcoder Open (TCO) — Конкурс алгоритмов, проводимый с 2001 г. Topcoder
В большинстве вышеуказанных конкурсов, поскольку количество участников достаточно большой, соревнования обычно проходят в несколько туров. Обычно они требуют онлайн-участия во всех раундах, кроме последнего, который требует участия на месте. Особым исключением из этого правила является IEEEXtreme, ежегодное 24-часовое соревнование по виртуальному программированию. Лучшие участники IOI и ACM-ICPC получают золотые, серебряные и бронзовые медали, а в других конкурсах денежные призы присуждаются лучшим финишерам. Также занятие первых мест в таблицах результатов таких конкурсов может заинтересовать рекрутеров из софтверных и интернет-компаний.
Долгосрочная
- Неделя кода HackerRank
- ICFP Programming Contest — ежегодное трехдневное соревнование, проводимое с 1998 года Международной конференцией по функциональному программированию
- Марафонские матчи Topcoder
Искусственный интеллект и машинное обучение
- Kaggle — соревнования по машинному обучению.
- CodeCup — соревнования по искусственному интеллекту для настольных игр, проводимые ежегодно с 2003 года. Правила игры публикуются в сентябре, а финальный турнир проводится в Январь.
- Google AI Challenge — соревнования, проводимые два раза в год для студентов, прошедших с 2009 по 2011 гг.
- Halite — соревнования по программированию искусственного интеллекта, спонсируемые Two Sigma, Cornell Tech и Google
- Russian AI Cup открытый конкурс по программированию с искусственным интеллектом
Название конкурса | Главный спонсор | Описание | Выполняется с | Обычное время | Следующий цикл приложения | Статус |
---|---|---|---|---|---|---|
Соревнование по программированию нескольких агентов | Клауст Hal University of Technology в сочетании с агентно-ориентированными семинарами | Ежегодные международные соревнования по программированию для стимулирования исследований в области разработки многоагентных систем и программирования. | 2005 | сентябрь | сентябрь 2011 | Активный |
Google Summer of Code | Google Inc. | Годовая программа, в рамках которой Google присуждает стипендии сотням студенты, успешно завершившие запрошенный проект бесплатного программного обеспечения / программирования с открытым исходным кодом в течение лета. | 2005 | март — август | 23 марта — 3 апреля | Активно |
Конкурс открытого участия Google | Google Inc. | Конкурс, проведенный Google в 2007–2008 годах для старшеклассников. Конкурс призван побудить старшеклассников участвовать в проектах с открытым кодом. | 2007 | ноябрь-февраль | Неизвестно | Неизвестно |
Обзор
Целью соревновательного программирования является написание исходного кода компьютерных программ, которые могут решить данные проблемы. Подавляющее большинство задач, возникающих на олимпиадах по программированию, имеют математический или логический характер. Типичные такие задачи относятся к одной из следующих категорий: комбинаторика, теория чисел, теория графов, теория алгоритмических игр, вычислительная геометрия, анализ строк и структуры данных. Задачи, связанные с искусственным интеллектом, также популярны на определенных соревнованиях.
Независимо от категории проблемы, процесс решения проблемы можно разделить на два основных этапа: построение эффективного алгоритма и реализация алгоритма на подходящем языке программирования (набор разрешенных языков программирования варьируется от конкурса к конкурсу). Это два наиболее часто проверяемых навыка на соревнованиях по программированию.
В большинстве соревнований судейство осуществляется автоматически хост-машинами, обычно известными как судьи. Каждое решение, представленное участником, оценивается судьей по набору (обычно секретных) тестовых примеров. Обычно задачи контеста имеют систему оценок «все или ничего», что означает, что решение считается «принятым» только в том случае, если оно дает удовлетворительные результаты по всем тестовым случаям, проведенным судьей, и отклоняется в противном случае. Однако некоторые задачи конкурса могут допускать частичную оценку, в зависимости от количества пройденных тестовых примеров, качества результатов или некоторых других заданных критериев. Некоторые другие конкурсы требуют только, чтобы участник представил выходные данные, соответствующие заданным входным данным, и в этом случае судье нужно только проанализировать предоставленные выходные данные.
Онлайн-судьи — это онлайн-среда, в которой происходит тестирование. У онлайн-судей есть рейтинговые списки, в которых показаны пользователи с наибольшим количеством принятых решений и / или самым коротким временем выполнения для конкретной проблемы.
Первый раунд Russian AI Cup 2019 позади
Турнир будет проходить в три этапа. Первый раунд прошел 14-15 декабря, второй – пройдет 21-22 декабря, а финал состоится 28-30 декабря. Организаторы рассказали, что в среднем в чемпионате участвует 2 тыс. человек.
Доступ к песочнице открыли еще 27 ноября. До 7 декабря система находилась в стадии бета-теста и могла работать нестабильно, но все же строить стратегии и опробовать их на реальных данных можно было вполне успешно.
В первом раунде участвовали 1080 лучших стратегий. Его проводили в два этапа длительностью 12 часов каждый. В течение 24-часового перерыва между этапами работала песочница, так что участники могли улучшать свои стратегии.
Во второй раунд попали 300 лучших стратегий. Если в первом раунде в поединках стратегий в команде каждого игрока было всего по одному юниту, то во втором юниты будут сражаться парами.
Наша команда
Алексей Малеев
Александр Кленин
Федорова Антонина
Роман Мартемьянов
Юлия Верина
Наталья Зуева
Ольга Димитрашко
Владимир Тарасов
Кирилл Тирских
Константин Макаров
Илья Обабков
Жахонгир Раджабов
Николай Борисов
Наталья Безрукова
Андрей Наумов
Евгений Серочудинов
Сергей Ткаченко
Наталья Казачек
Альберт Мальшаков
Олег Змеев
Ольга Деменева
Роман Ищенко
Андрей Созыкин
Анна Савельева
Андрей Шпилевой
Елена Ураева
Хумоюн Султонов
Дина Зянгараева
Захар Сафонов
Александр Тузиков
Екатерина Антиповская
Елена Сырцова
Сергей Даревский
Артем Волосков
Даниил Павлюченко
Ян Стройков
Екатерина Стыценко
Елена Артемьева
Ольга Солодянникова
Марина Захаренкова
Ия Пьянзина
Зачем участвовать в соревнованиях?
Известные компании не только проводят собственные соревнования, но и активно спонсируют независимые проекты. Их мотивы понятны: таким образом они не только двигают вперёд всю отрасль и помогают проявить себя талантливым ребятам, но и могут найти классных разработчиков. Поэтому тысячи людей занимаются спортивным программированием, чтобы заявить о себе и получить выгодный оффер.
Некоторые юные участники надеются уехать в Кремниевую долину, даже не поучившись в университете. Например, один из победителей IOI, Скотт Ву, уже в 17 лет получил предложения о работе от ряда известных компаний. В итоге он отложил учёбу в Гарварде на год и устроился в Addepar. По словам работодателя, Скотт за три месяца вошел в 10% лучших инженеров компании — да и другие победители соревнований зарекомендовали себя отлично, трудясь в Addepar.
Западные стартапы и крупнейшие корпорации мира не зря охотятся за победителями программистских чемпионатов — ведь они владеют довольно редкими и полезными навыками.
«Есть места, где нужно заниматься глубокой оптимизацией и решать сложные алгоритмические задачи, но это не массовая история. В основном такие люди нужны крупным компаниям. Например, в том же Яндексе или Google. И, конечно, конкурсы программирования могут стать неплохой развивалкой для разработчиков, если не превращать их в самоцель».
Михаил Корнеев, тимлид в BestDoctor и автор YouTube-канала «Хитрый питон»
В целом практика спортивного программирования полезна для ума и развивает насмотренность. А вот попытки выдать олимпиадные достижения за показатель профессионализма — свидетельство незрелого отношения к разработке.
«Программирование — замечательная практика в любом виде. Решать задачки и держать себя в тонусе — тоже хорошо. Плохо, когда этим начинают мериться, считать достижения, оценивать людей по олимпиадам и тащить олимпиадные подходы в продакшн. Но если не злоупотреблять, то спортивное программирование — это полезная штука».
Lead Software Engineer,автор Telegram-канала @topizza
А по мнению Алексея Некрасова, лидера направления Python в МТС и программного директора направления Python в Skillbox, спортивное программирование — отличный навык, который при грамотном подходе принесёт пользу.
«Олимпиадное программирование — как спорт. Если заниматься в разумных количествах, то эта практика тренирует мозг, позволяет узнавать разные алгоритмы, учит смотреть на сложные задачи свежим взглядом. Но если заниматься спортивным программированием по много часов в день, это приведёт к профдеформации, она будет мешать промышленному кодингу. Олимпиадники заточены на решение сложных задач, которые надо выполнить здесь и сейчас, но неспособны разрабатывать и развивать большие и сложные системы».
«Машинное обучение и анализ данных» от МФТИ совместно с «Яндексом»
Продолжительность курса: 7 месяцев = 8 часов в неделю.
Формат обучения: видеоуроки + текстовые материалы + тесты.
Обратная связь: нет.
Программа обучения:
- Математика и Python для анализа данных.
- Обучение на размеченных данных.
- Поиск структуры в данных.
- Построение выводов по данным.
- Прикладные задачи анализа данных.
- Анализ данных: финальный проект.
Что узнаете и чему научитесь:
- Программировать на Python
- Пользоваться современными аналитическими инструментами и адаптировать их под особенности конкретных задач
- Работать с большим массивом данных
- Строить рекомендательную систему, оценивать эмоциональную окраску текста, прогнозировать спрос на товар, оценивать вероятность клика по рекламе
- Как создать собственную систему, которая будет решать актуальные бизнес-задачи
Авторы курса
Евгений Рябенко
Facebook:
- Бывший доцент «Высшей школы экономики» и Московского физико-технического института
- Имеет 10-летний опыт работы в области науки о данных
- Преподавал прикладную статистику в МГУ, Школе анализа данных «Яндекса» и Harbour.Space University в Барселоне
Виктор Кантор
Instagram: instagram.com/victor.kantor
- Эксперт по машинному обучению
- Chief Data Scientist компании «МТС»
- Победитель рейтинга Forbes «30 до 30» (2020)
Эмили Драл
Facebook: Instagram: instagram.com/emeli.dral/Twitter:
- Главный специалист по обработке данных в Mechanica AI
- Руководила исследовательской группой Yandex Data Factory
- Обучила в Coursera более 140 тысяч человек
Константин Воронцов
- Профессор факультета компьютерных наук НИУ «ВШЭ»
- Разработал один из наиболее популярных в России курсов по машинному обучению, который сейчас читает в Школе анализа данных «Яндекса»
- Обучил в Coursera более 100 тысяч человек
Антон Слесарев
- Руководитель группы распознавания образов в «Яндексе»
- Обучил в Coursera более 10 тысяч человек
Онлайн-конкурсы и обучающие ресурсы
Сообщество программистов во всем мире создал и поддерживает несколько интернет-ресурсов, посвященных соревновательному программированию. Они предлагают отдельные конкурсы с небольшими призами или без них. Также прошлые архивы задач являются популярным ресурсом для обучения соревновательному программированию. К ним относятся:
Имя | Описание | Веб-сайт |
---|---|---|
CodeChef | Поддерживается unacademy, он ежемесячно проводит 10-дневный конкурс и пару коротких конкурсов (один в стиле IOI называется Luchtime и другие ACM ICPC в стиле Cook-Off), и предоставляет образовательным учреждениям платформу для проведения соревнований бесплатно. Два лучших победителя длительного конкурса выиграют денежные призы, а 10 лучших во всем мире получат футболку. | |
CodeCup | Ежегодный международный конкурс настольных игр AI по программированию, организуемый Голландской олимпиадой по информатике с 2003 года. | |
Codeforces | Российский ресурс, поддерживаемый Университетом ИТМО, который в основном предоставляет частые (до двух в неделю) короткие соревнования. Особенности: возможность проверять правильность решений других участников во время «фазы взлома», виртуальных конкурсов, тренировок и т. Д. | |
CodinGame | Пазлы (возрастающая сложность), код гольф. Проводит регулярные онлайн-соревнования (AI вызовы, задачи оптимизации ). | |
HackerEarth | Бангалор, Индия Компания со штаб-квартирой в Индии, предлагающая онлайн-конкурсы, подобные среде, с целью предоставления решений по оценке набора персонала. | |
HackerRank | HackerRank предлагает задачи программирования в различных областях компьютерных наук. На нем также размещаются ежегодные коды, которые помогают объединить программистов и стартапы Кремниевой долины. | |
Project Euler | Большой набор задач вычислительной математики (т.е. не связанных напрямую с программированием, но часто требующих навыков программирования для решения). | |
Topcoder | американский ресурс и компания, которая организует конкурсы, а также предоставляет производственные проблемы как своего рода внештатную работу; Он предлагает десятки коротких конкурсов и несколько длинных («марафонов») каждый год. Особенность — участники имеют возможность проверить правильность решений других участников после фазы кодирования и перед финальным автоматическим тестированием (так называемая «фаза вызова»). | |
UVa Online Judge | Содержит более 4500 задач для практики. Проводит регулярные онлайн-соревнования. Открытый в 1995 году, он является одним из старейших подобных сайтов. | |
SPOJ | Польская система онлайн-судьи, которая создает множество проблем для обучения и предоставляет платформу для других организаторов для проведения своих соревнований по программированию. | |
Open Kattis | Открытая версия системы управления контестами Kattis с архивом более 2600 задач. Kattis был разработан для обучения компьютерным наукам, но он также используется для проведения престижных соревнований, таких как ICPC World Finals. | |
AtCoder | Базируется в Японии, AtCoder еженедельно предлагает онлайн-конкурсы по программированию. Конкурсы проводятся на японском и английском языках.
По состоянию на 2020 год это одна из самых популярных платформ в своем роде. |
|
Caribbean Online Judge | Испанский ресурс, поддерживаемый University of Информатика. Содержит более 3000 задач для практики. Также проводятся регулярные онлайн-соревнования. |
Образовательные проекты
Двухгодичные и семестровые программы на базе 7 технических вузов: МГТУ им. Н. Э. Баумана, МГУ, МФТИ, МИФИ, СПбПУ, ПГУ и ВГУ. Все образовательные проекты имеют свою специализацию: разработка и архитектура приложений, системное проектирование, анализ данных и разработка игр.
Ежегодно около 150 студентов и выпускников образовательных проектов приходят на стажировку в Mail.Ru Group и в другие IT-компании — Яндекс, Сбертех, Касперский, Тинькофф. Вступительные экзамены, в зависимости от вуза, проходят один или два раза в год и состоят из онлайн-тестирования и очного собеседования. Конкурс достигает 10 человек на место. Преподаватели образовательных проектов — более 200 сотрудников компании.
Вопросы
Могу ли я выбирать этапы фестиваля, в которых буду участвовать?
Все зависит от направления, в котором ты хочешь участвовать
Если речь о программировании, то в чемпионате может участвовать кто-угодно, а, чтобы участвовать в интенсивах, нужно пройти отбор. А если речь об искусственном интеллекте, то тут необходимо пройти отбор для участия в любом из направлений, даже чемпионате. То же касается и 1С.
А онлайн-курсы доступны круглый год в любом из направлений
Могу ли участвовать в нескольких направлениях?
Конечно! Учиться можно в любом из направлений, соревноваться тоже.
Только имей в виду, что даты этапов фестиваля могут пересекаться и какие-то ивенты могут проходить в одно и то же время.
Обязательно ли мне создавать команду?
Все зависит от этапа:
Для интенсивов создавать команду не нужно: все участники обучаются единолично и в турнирной таблице показываются соответственно.
А вот чемпионат — командное состязание. В команде может быть 1, 2 или 3 человека. Отметим, что регистрировать команду необходимо, даже если ты планируешь участвовать соло — иначе ты просто не получишь логин и пароль от контеста чемпионата.
Как мне принять участие очно?
Информацию о ближайших к тебе очных точках можно посмотреть на страничке направления «алгоритмическое программирование». Там же ты найдешь контакты человека, который тебе подробно расскажет,как, где и когда можно принять участие
Что такое ДО и ДПО?
ДО — дополнительное образование. С помощью сертификата ДО студенты по согласованию со своим университетом смогут получить строчку «интенсивные алгоритмы» в дипломе.
ДПО — дополнительное профессиональное образование. Это удостоверение установленного образца МФТИ, которое идет как дополнение к диплому. Такое удостоверение могут получить только те участники, у которых есть высшее или среднее профессиональное образование. А студенты могут получить справку о повышении квалификации. Такую справку они смогут обменять на удостоверение, когда закончат университет
Как получить сертификат ДО/ удостоверение ДПО за участие в RuCode?
Сертификаты ДО мы выдаем тем ребятам, которые активно принимали участие в интенсивах, а затем закрепили успех в чемпионате, решив хотя бы одну задачку. Удостоверение ДПО получить сложнее.
1. Во-первых, данные удостоверения могут получить только люди с высшим и средним профессиональным образованием или студенты.
2. Во-вторых, необходимо приложить несколько документов (скан диплома и паспорта) к регистрационной анкете. Эти данные и документы мы отправляем в Федеральный реестр сведений о документах об образовании и (или) о квалификации.
3. В третьих, необходимо не только активно участвовать в обучении на интенсивах, но и достойно выступить на чемпионате, решив хотя бы 4 задачи.
Таким образом, участник получит удостоверение МФТИ установленного образца о повышении квалификации.
ACM/ICPC
Традиционно начинаем обзор с самой известной и самой древней студенческой олимпиады по программированию. Корни этого мероприятия уходят в семидесятые годы прошлого века. Современный облик оно приобрело в 1977 году, с тех пор проводится ежегодно. Раньше принять участие могли только студенты из США и Канады, но со временем олимпиада стала всемирной, и, что самое интересное, последние семь лет (с 2012 года) ее победителями становятся студенты из России. Всего с 2000 года чемпионский кубок ACM/ICPC побывал в России тринадцать раз. Кстати, с конца девяностых ни разу студенты из США не побеждали в олимпиаде. Основать основали, а вот программировать так и не научились.
Финал ACM/ICPC 2018, Пекин, Китай
ACM/ICPC — соревнование командное. Команда состоит из трех человек, участвовать могут студенты вузов и аспиранты первого года обучения — главное, чтобы возраст не превышал 25 лет. Не допускаются студенты, пятикратно принимавшие участие в олимпиаде или же дважды попадавшие в финальную стадию. Правила олимпиады неизменны: за пять часов программисты должны решить от восьми до двенадцати алгоритмических задач (условия написаны, естественно, на английском). Из года в год меняется только список допустимых языков программирования. В 2018 году в нем были C, C++, Java, Kotlin и Python. Ранее был доступен и Pascal, но теперь он закономерно ушел в прошлое.
Результаты отправляются на тестирующий сервер, где проверяются. Если еще есть время, а задача решена неправильно или не соблюдены ограничения по времени выполнения и используемой памяти, то об этом сообщается команде, и она может провести работу над ошибками. Побеждает команда, справившаяся с наибольшим числом задач. Если несколько команд решили одинаковое число задач, то побеждает та, которая сделала это быстрее.
В этом году впервые чемпионский кубок уехал в Москву — победителем стала команда из МГУ. В составе команды — Михаил Ипатов, Владислав Макеев и Григорий Резников. До этого кубок, как эстафетная палочка, переходил от Университета ИТМО к СПбГУ и обратно.
Поскольку олимпиада международная, то место ее проведения каждый год меняется. В этом году она проходила в Китае, в прошлом — в США, а в 2013-м и 2014-м — в Санкт-Петербурге и Екатеринбурге соответственно.
Теперь о профите. Команда-победитель в этом году получила 15 000 долларов, команды, завоевавшие золотые медали (первые четыре места), — по 7500 долларов, серебряные медали (5–8-е места) — по 6000 долларов. А утешительный приз (10–12-е места) составляет 3000 долларов — для обладателей бронзовых медалей. Впрочем, деньги здесь не главное. Участие в этой олимпиаде — шанс получить высокооплачиваемую работу и даже встретиться с президентом РФ.
Технострим (YouTube-канал)
Лекции для новичков и профи, записи мастер-классов и митапов, выпуски ток-шоу для айтишников и многое другое.
OH, MY CODE — ток-шоу для айтишников
Реальные кейсы, разбор резюме, онлайн код-ревью, блиц-опросы и истории успеха от экспертов индустрии. Например:
- Как работает сервис такси Ситимобил
- Разработчик и дизайнер — основы правильного взаимодействия
- Как создается главная страница Mail.Ru
- Android-разработка: команда, рынок, тестирование
Ток-шоу выходит регулярно, на канале уже 25 выпусков.
Мастер-классы по самым актуальным темам в IT. Например:
- Responsive Web-дизайн. Трюки и уловки
- Как не надо делать свой стартап
- Почему Стив Джобс любил шрифты
- Как начать свою карьеру в IT
- Архитектура растущего проекта на примере ВКонтакте
Записи лекций образовательных проектов: разработка на C++, Go, Perl, веб-разработка, нейронные сети и другие IT-дисциплины.
Записи митапов. Например:
- Переход web-api Почты Mail.Ru на Go
- Два разных опыта миграции на Go. На примере Lazada и Ozon.travel
- Pipeline поиска по Почте на Go
- Синхронизация данных в Go с помощью mysql binlog
За 7 лет образовательное направление Mail.Ru Group превратилось в целый комплекс проектов и продолжает развиваться. Планов много — оставайтесь на связи: в блоге на Хабре регулярно делимся полезными материалами, в группе Mail.Ru Group для образования анонсируем мероприятия и проводим трансляции, в группе чемпионатов публикуем информацию по соревнованиям, а на канале Технострим выкладываем свежие записи лекций и мастер-классов.
Турнир, доступный каждому
На сайте конкурса сделали раздел «Быстрый старт» с пошаговой инструкцией для участников. Помимо простой регистрации, с сайта Russian AI Cup 2019 нужно было скачать языковые пакеты и распаковать их на свой компьютер.
Разрабатывать стратегию и отлаживать её до турнира можно было локально. Тестовые игры предоставлялись, как и пример простой стратегии.
Готовую стратегию нужно было отослать организаторам в виде исходных кодов в zip-архиве. Перед приемкой ее компилировали и тестировали на нескольких коротких играх.
Стратегии, которые прошли приемку, принимали участие в регулярных квалификационных играх в песочнице. Варианты с ошибками отправляли на доработку. Если же стратегия внезапно завершала работу в ходе тестовой попытки, ее выполнение «замораживали» до следующей попытки, но очки все равно начисляли.
Полные правила Russian AI Cup 2019 и требования к стратегиям на сайте. В частности, стратегия не должна была использовать более 256 МБ оперативной памяти. Ограничивалось и процессорное время.
Организаторы разрешили участникам отправлять стратегии сколько угодно раз. Но специально спамить не стоило – за слишком частые отправки теоретически могли дисквалифицировать.
Техносфера (МГУ им. М. В. Ломоносова)
За 4 года Техносферу закончили более 300 студентов. Еще 400 учатся на основной программе «Анализ больших объемов данных» и открытых курсах:
- Разработка на Go;
- Машинное обучение;
- Разработка на Kotlin;
- Подготовительный курс «Алгоритмы и структуры данных».
Кроме того, в Техносфере есть лаборатория проекта Tarantool (opensource СУБД, разработанная в Mail.Ru Group), сотрудники которой преподают дисциплины «Базы данных» и «Системное программирование».
Записи лекций Техносферы:
- Информационный поиск (Алексей Воропаев, руководитель группы рекомендательных систем Поиска Mail.Ru);
- Нейронные сети (Даниил Полыковский, разработчик лаборатории Техносферы);
- Анализ данных (Евгений Завьялов, программист группы машинного обучения Поиска Mail.Ru);
- Разработка на Java (Сергей Рыбалкин и Александр Помосов, программисты игрового направления);
- Алгоритмы и структуры данных (Сергей Бабичев, преподаватель МФТИ);
- Качество и тестирование ПО (Алексей Петров, директор по качеству проекта Почта Mail.Ru).
Технотрек (МФТИ)
За 3 года более 100 студентов Технотрека получили специальность «Архитектор клиент-серверных приложений». На данный момент на проекте учатся более 260 студентов. Помимо основной программы Технотрек реализует следующие семестровые курсы:
- Промышленное программирование и структуры данных;
- Разработка под Android;
- Автоматизированное тестирование;
- Нейронные сети;
- Разработка игр на Unity.
Записи лекций Технотрека:
- Разработка под Android (Юрий Береза, старший программист разработки игровых сервисов, и Кирилл Филимонов, руководитель команды Android-разработки);
- Администрирование Linux (Сергей Клочков, системный администратор Unix);
- Веб-разработка (Илья Стыценко, руководитель образовательных проектов);
- Разработка на Java (Рустам Кильдиев, разработчик отдела E-Commerce);
- Проектирование СУБД (Данил Вагапов, программист группы внутренней информационной разработки).
Технопарк (МГТУ им. Н. Э. Баумана)
За 7 лет Технопарк выпустил более 600 студентов. Еще 500 бауманцев обучаются на двухгодичной программе по специальности «Системный архитектор», а также на семестровых курсах по C++, Python, Linux, iOS, Android, нейронным сетям и проектированию хранилищ данных.
Записи лекций Технопарка:
- Web-технологии (Дмитрий Смаль, разработчик игрового направления);
- Языки web-программирования (Роман Самарев, преподаватель МГТУ им. Н. Э. Баумана);
- Прикладной Python + скринкаст (Вячеслав Ксенз, разработчик игрового направления);
- Мобильная разработка (Евгений Мазуров, Android-разработчик проекта Почта Mail.Ru);
- Фронтенд-разработка (Анатолий Остапенко, фронтенд-разработчик Почты Mail.Ru).
Что в итоге
Программистов-олимпиадников любят хантить крупные компании вроде Google или Яндекса. Поэтому для студентов и школьников олимпиады запросто могут стать классной возможностью сделать карьеру в юном возрасте и даже без университетского образования попасть в Кремниевую долину на хорошую зарплату.
А вот в массовом продакшне подходы спортивного программирования могут даже мешать:
- Поиск компромисса между эффективностью кода и простотой его поддержки накладывает серьёзные ограничения, к которым не привыкли олимпиадники.
- Олимпиадное стремление решить всё максимально быстро и эффективно может привести к тому, что придётся переписывать большие блоки программы — просто чтобы сделать их подходящими для реальных условий.