Многие программисты хотели бы поучаствовать в открытой разработке. Но зачастую они сталкиваются с проблемой – непонятно, как сделать первый вклад в Open Source, какие для этого нужны навыки и какие практические шаги, чтобы созданный код был правильно оценен, принят в проект, и предложенное решение было полезно сообществу.

Чтобы помочь новичкам сделать первые шаги к личному коммиту, я и мои коллеги в Samsung R&D Institute Russia (SRR) провели онлайн-школу «Community of Open Source Newcomers» (COMMoN), совместно с партнерами – компаниями Arenadata и DeepPavlov.ai. Под катом – ссылки на видеозаписи всех занятий школы.

Лекция Алексея Мерзлякова, ведущего инженера Samsung R&D Institute Russia
Лекция Алексея Мерзлякова, ведущего инженера Samsung R&D Institute Russia

О школе

COMMoN - это образовательная программа, прошедшая с 16 августа по 10 сентября 2021 в рамках конференции Samsung Open Source Conference Russia 2021, цели которой:

  • познакомить начинающих разработчиков с основами Open Source

  • научить работать с инструментарием

  • дать возможность самостоятельно пройти путь с самого начала от участника и до контрибьютора проектов с собственным уникальным вкладом

В рамках школы прошли онлайн-лекции по основам Open Source, которыми мы с радостью делимся (ссылки ниже в тексте) и надеемся, что вас тоже заинтересует движение Open Source и вы захотите внести свой вклад в это общее дело.

Школа включала в себя три трека:

  • Трек "ROS - Samsung" был посвящен платформе Robot Operating System (ROS) – крупнейшему и наиболее известному Open Source проекту в области управления роботами. Тренеры трека – Алексей Мерзляков, ведущий инженер SRR, и Стив Масенски, руководитель отдела робототехники с открытым исходным кодом в Samsung Research America.

  • Трек "Arenadata DB" был посвящен проекту открытой базы данных, основанной на массивно параллельной СУБД Greenplum. Это решение используется для приложений Интернета вещей, машинного обучения и интеллектуального анализа данных. Тренер этого трека – Дмитрий Яценко, преподаватель ЮФУ и сотрудник компании-партнера Arenadata.

  • Трек "DeepPavlov - МФТИ" был посвящен созданию многофункциональных интеллектуальных помощников на основе открытой платформы для разработки голосовых помощников и чат-ботов DeepPavlov. Инструкторами трека были специалисты из DeepPavlov.ai и МФТИ - Федор Игнатов и Данила Корнев.

Анонс школы в интернете и соцсетях вызвал большой интерес, более 1000 кандидатов из России, СНГ и стран Европы (включая Испанию, Чехию и Польшу) подали заявки на участие. Конкурс составил 11 заявок на одно место. На вступительном тесте кандидаты выполняли задания по программированию, связанные с выбранным треком, и представили мотивационное эссе.

Лекции

Школа началась с общих для всех треков лекций по различным аспектам Open Source.

Расширенное использование GIT и Что такое Open Source? Взгляд контрибьютора. Эти лекции представили специалисты команды разработчиков системного программного обеспечения SRR с многолетним опытом работы с Open Source: руководитель Лаборатории платформ Иван Майданский и инженер-эксперт Вячеслав Баринов.

Лекция «Введение в Linux» в двух частях (Часть 1, Часть 2) была представлена опытным разработчиком Open Source, преподавателем ЮФУ и сотрудником компании Arenadata Дмитрием Яценко.

Лекцию о правовых аспектах Open Source, видах лицензий и лицензировании ПО прочитали Надежда Кащенко и Афанасий Шипунов, эксперты международной юридической консалтинговой компании ESPE, работающей на мировом рынке ПО и имеющей большой практический опыт в этой области.

После завершения общей части программы был проведен интенсивный курс лекций по каждому из выбранных треков, необходимый для выполнения практического задания школы.

В треке ROS-Samsung, тренер трека Алексей Мерзляков представил вводные лекции по робототехнике. После базовых лекций слушателям школы было предложено практическое задание трека, заключающееся в создании собственного решения на основе навигационного стека ROS/Navigation Stack 2. Первое задание – фильтр частиц в картах затрат, второе – поворотный контроллер.

Список лекций трека ROS-Samsung:

  1. Введение в робототехнику. Robot Operating System 2.0

  2. Создаем свой робо-проект

  3. Эксперименты и инструменты ROS 2

  4. Navigation stack: знакомство первый запуск

  5. Основные компоненты навигации

  6. Современные подходы в навигации. Работа в OpenSource

Трек Arenadata DB посвящен разработке инструментов в составе многофункциональной платформы данных Arenadata EDP. Тренер трека Дмитрий Яценко в своих лекциях представил среду разработки в Linux и дал введение в Greenplum / ArenadataDB а так же в OpenDistro, Ranger.

Практическая часть трека заключалась в решении актуальных задач Greenplum и OpenSearch, а именно в создании утилит для загрузки/выгрузки данных и реализации бэкапа, а также плагина для управления безопасностью.

Список лекций трека Arenadata DB:

  1. Среда разработки Linux

  2. Введение в Greenplum / ArenadataDB. Часть 1

  3. Введение в Greenplum / ArenadataDB. Часть 2

  4. Введение в OpenDistro, Ranger. Постановка задачи

Трек DeepPavlov – МФТИ был посвящен AI-ассистенту DeepPavlov Dream, использующему фреймворк DeepPavlov Agent, компоненты библиотеки DeepPavlov и результаты разработки диалогового агента для поддержания разговора в ходе конкурса Amazon Alexa Prize Socialbot Grand Challenge 3 и 4. В рамках трека лекции читали тренеры Данила Корнев и Фёдор Игнатов, а также специалисты DeepPavlov.ai Диляра Баймурзина и Денис Кузнецов. В процессе работы участники занимались улучшением отдельных сервисов DeepPavlov Dream.

Список лекций трека DeepPavlov – МФТИ:

  1. DeepPavlov Dream и Multiskill AI Assistants

  2. Об опыте создания и развития ботов на базеDeepPavlov и DeepPavlov Agent для Alexa Prize

  3. Постановка задачи

  4. DeepPavlov Library и DeepPavlov Agent и Deepy

  5. Устройство DeepPavlov Dream

  6. Прототип DialogFlow Framework

  7. Docker

Итоги школы

10 сентября, в завершающий день работы школы, слушатели представили полученные результаты тренерам треков и экспертам компаний-партнеров, которые изучили предложенные решения и выбрали лучшие из них. Не все, начавшие школу, дошли до финала и показали выполненные проекты, однако показанные результаты были реальными и, по-настоящему, ценными. Результаты проектов были высоко оценены тренерами и компаниями-партнерами. Победители каждого трека значительно превысили ожидания тренеров и организаторов школы от новичков в сообществе с открытым исходным кодом и внесли существенный вклад в проекты.

Победители трека «ROS -Samsung»:

•         1 место — Андрей Рыжиков;

•         2 место — Алексей Мелкобродов;

•         3 место – Алексей Будяков.

•         4 место – Николай Панов (за оригинальный подход)

Победители трека «Arenadata DB»:

•         • 1 место — Антон Пичугин;

•         • 2 место — Гинзбург Георгий, Бессонов Максим, Шевцов Юрий;

•         • 3 место — Софья Михайлова, Алексей Назаров, Владимир Белов.

Победители трека «DeepPavlov»:

•         1 место — Машкин Анатолий;

•         2 место — Сергеенко Егор;

•         3 место — Скиба Глеб.

•         Специальный приз — Бабадеев Дмитрий.

Нам было особенно приятно узнать, что победитель трека DeepPavlov Анатолий Машкин - выпускник IT Школы Samsung 2020 года!

Алексей Мерзляков, тренер “ROS-Samsung“, прокомментировал результаты трека: "Алексей Рыжиков, победитель трека с проектом "Фильтр частиц Costmap", провел небольшое научное исследование и заменил существующий алгоритм OpenCV своим собственным подходом, который показал эффективность на 20% лучше, чем стандартный. В то же время, он подготовил тестовые покрытия для возможных сценариев использования своего плагина с почти 100% покрытием кода. Особенно, нужно отметить высокое качество комментариев к разработанному коду. 4 финалиста были награждены сертификатами Samsung”.

Тренер трека Arenadata DB Дмитрий Яценко сказал на объявлении победителей: “Все финалисты Arenadata выполнили поставленную задачу по созданию инструментов для БД. Победитель Антон Пичугин самостоятельно выполнил все три задачи трека: 1. Улучшил резервное копирование GP с помощью нового архиватора 2. Создал пользовательский GPFdisk для различных ОС 3. Подключил ApacheRanger и OpenSearch. Практические задания трека были серьезным вызовом для студентов. 7 финалистов трека Arenadata показали очень хорошие результаты проектов. Мы были впечатлены результатами и готовы обсудить с ними потенциальное сотрудничество, как штатных сотрудников компании”

Даниил Корнев, тренер трека DeepPavlov, на объявлении результатов школы сказал: “Достигнутые результаты на треке были действительно выдающимися. Победитель, Анатолий Машкин, подготовил отличный pull request, который впечатлил нас своей аккуратностью и точностью. Также компания решила открыть новый проект - среду для развития навыков диалога в VS Code, это оказалось возможным с помощью Дмитрия Бабадеева, который получает специальный приз за неожиданный, но важный вклад. Проект находился на альфа-стадии, и Дмитрий значительно продвинул его.

Подводя итоги школы, можно без ложной скромности сказать - школа превзошла даже самые смелые ожидания организаторов! Главное - мы смогли привлечь заинтересованных и мотивированных участников, причем не только студентов ВУЗов, на которых ориентировались вначале, но и опытных профессионалов. Среди финалистов оказалось лишь около 25% студентов. В своих отзывах слушатели отмечали “неожиданно высокий и серьезный уровень квалификации” коллег по школе. Это же подтвердили и отмеченные тренерами проекты.

Мы надеемся, что этот опыт онлайн школы COMMoN оказался полезным для слушателей, невзирая, дошли они до финала или нет. Организаторы школы также получили ценный опыт и инсайты, и в дальнейшем учтут их при подготовке следующих школ и образовательных программ в Open Source! 

Андрей Пересадько

к.т.н.
Старший менеджер управления развития технологических проектов
Исследовательский центр Samsung в Москве

Комментарии (0)