Многие программисты хотели бы поучаствовать в открытой разработке. Но зачастую они сталкиваются с проблемой – непонятно, как сделать первый вклад в Open Source, какие для этого нужны навыки и какие практические шаги, чтобы созданный код был правильно оценен, принят в проект, и предложенное решение было полезно сообществу.
Чтобы помочь новичкам сделать первые шаги к личному коммиту, я и мои коллеги в Samsung R&D Institute Russia (SRR) провели онлайн-школу «Community of Open Source Newcomers» (COMMoN), совместно с партнерами – компаниями Arenadata и DeepPavlov.ai. Под катом – ссылки на видеозаписи всех занятий школы.
О школе
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:
Трек Arenadata DB посвящен разработке инструментов в составе многофункциональной платформы данных Arenadata EDP. Тренер трека Дмитрий Яценко в своих лекциях представил среду разработки в Linux и дал введение в Greenplum / ArenadataDB а так же в OpenDistro, Ranger.
Практическая часть трека заключалась в решении актуальных задач Greenplum и OpenSearch, а именно в создании утилит для загрузки/выгрузки данных и реализации бэкапа, а также плагина для управления безопасностью.
Список лекций трека Arenadata DB:
Трек DeepPavlov – МФТИ был посвящен AI-ассистенту DeepPavlov Dream, использующему фреймворк DeepPavlov Agent, компоненты библиотеки DeepPavlov и результаты разработки диалогового агента для поддержания разговора в ходе конкурса Amazon Alexa Prize Socialbot Grand Challenge 3 и 4. В рамках трека лекции читали тренеры Данила Корнев и Фёдор Игнатов, а также специалисты DeepPavlov.ai Диляра Баймурзина и Денис Кузнецов. В процессе работы участники занимались улучшением отдельных сервисов DeepPavlov Dream.
Список лекций трека DeepPavlov – МФТИ:
Итоги школы
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 в Москве