Международная конференция разработчиков
и пользователей свободного программного обеспечения

Обучение Linux в корпоративном секторе

Денис Пынькин (EPAM Systems ), Владимир Шахов (SaM Solutions)

LVEE Winter 2013

Article describes gaps and problems of Linux in high school education and initiatives of commercial companies Epam and SaM Solutions in this area. Different approaches and different local targets but common understanding of problem and cooperation in the spirit of Free Software.

Кризис в отрасли

ОС Linux устойчиво набирает популярность в качестве платформы для разработки. Соответственно растет и количество коммерческих проектов с использованием этой операционной системы. Примерно в 2010-12 годах стало заметно невооруженным взглядом, что людей, знакомых с полным циклом разработки
для Linux-платформы, в особенности для встраиваемых и серверных ее применений, не так уж много. Хотя более правильным было бы сказать, что таких людей катастрофически не хватает для покрытия нужд белорусских IT компаний.

Основные проблемы обучения в ВУЗах РБ:

  • существует направленность на изучение закрытого стека технологий на основе ОС Windows, при этом применение Linux зависит исключительно от отдельных лиц, работающих в учебном заведении 1;
  • еще одна проблема прямо заложена в учебных планах, направленных на изучение теории, что приводит к самостоятельному освоению инструментальных средств программирования учащимися, которое, как правило, заканчивается на минимальном уровне владения выбранным (или навязанным) IDE;
  • “классическое” обучение практически не затрагивает практики командной разработки с выделением в отдельные процессы собственно самой разработки, тестирования и развертывания ПО;
  • преподавателями, в основной своей массе, совершенно игнорируются подходы, принятые в мире, связанном со Свободным ПО 2.

Кроме того отдельно хотелось бы отметить проблему закрытости и кастовости, распространенной в сообществе пользователей и разработчиков Linux, что никак не способствует привлечению новых членов.

Все эти проблемы приводят к тому, что разработчики, тестировщики и, в меньшей степени, администраторы, умеющие работать и знающие ОС Linux “самозарождаются”, что является сравнительно медленным процессом и совершенно не подходит для коммерческих компаний.

По сути, на данный момент можно говорить, что экосистема вокруг ОС Linux в РБ отсутствует, а небольшие очаги притяжения акцентируются в первую очередь на вопросах администрирования и веб-разработки. Заметным исключением здесь является ежемесячная линуксовка, организованная в рамках Minsk Linux User Group при поддержке SaM Solutions, в рамках которой встречаются и обмениваются опытом наиболее активные представители разработчиков под ОС Linux.

EPAM, Embedded Solutions Department

Принципиальное решение о необходимости дополнительного привлечения молодых разработчиков к ОС Linux было принято в рамках департамента в начале 2012 года. Учитывая большой опыт компании по работе с учебными заведениями в РБ и острую необходимость в увеличении количества разработчиков для встраиваемых и серверных применений, уже осенью была оборудована совместная лаборатория Epam и БГУИР на базе кафедры ЭВМ КСиС и прошел первый набор слушателей на курсы по изучению ОС Linux для разработчиков.

Учитывая, что основная целевая аудитория курса — студенты технических специальностей, была разработана программа, рассчитанная на людей, уже умеющих программировать на каком-либо языке, но желающих получить навыки разработки в среде ОС Linux. В программу курса вошли технологии и знания, помогающие адаптироваться к целевой платформе обучения.
В связи с ориентацией департамента на разработку серверных и встраиваемых решений, было принято решение не затрагивать работу и разработку в графическом окружении, а сконцентрироваться на работе в командной строке.
Сама программа разделена на 3 отдельных модуля:

  • введение в GNU/Linux — минимальный набор знаний об архитектуре и особенностях работы в среде ОС Linux;
  • программирование на bash — разработчики рано или поздно сталкиваются с необходимостью разбираться в чужих скриптах, создавать свои, а также автоматизировать свою работу;
  • инструментарий разработчика — в этот модуль входят принципы разработки в ОС Linux, методы и навыки работы с классическими инструментами, такими как: компилятор, управление сборкой, установкой и распространением приложения, совместная работа с исходным кодом, анализ исполняемого файла и его работы, а также другие средства и подходы применяющиеся при разработке.

Курс читается не профессиональными лекторами, а разработчиками департамента, постоянно применяющими многие из изучаемых технологий на практике.

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

SaM Solutions, Linux & Embedded department

Внутренняя обучающая программа опирается на бизнес-план развития отдела Linux & Embedded компании SaM Solutions, разработанный и принятый в 2011 году. Анализ рынка труда дал очень печальную картину крайней нехватки готовых специалистов с одной стороны и увеличения количества заказов с другой стороны. В качестве одной из мер по преодолению кадрового голода была предложена долговременная стратегия подготовки собственных кадров.

В декабре 2012 года был набран первый поток стажёров из 10 человек на специализацию Linux QA. Конкурс составил 3 человека на место. Учебная программа сформирована с учётом задач, решаемых на коммерческих проектах компании и направлена на максимально быстрый старт стажёров в качестве Junior QA Engineer.

Целевая аудитория – взрослые люди любого возраста. Имеющие как профильное, так и непрофильное образование, желающие далее заниматься Linux в профессиональной сфере.

Как показал наш предшествующий опыт, успешный вход новых сострудников на эту специализацию прямо зависит от владения инструментарием Linux-систем. Никакие предшествующие курсы абстрактного QA в этом не помогают.

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

Акцент сделан на инструментальной среде Linux в проекции на наши задачи по разработке коммерческих продуктов в части тестирования качества. А именно:

  • краткое введение в архитектуру
  • работа в Shell: интерактивная и скриптование
  • организация файловой системы
  • подсистема управления процессами
  • обработка текста (включая регулярные выражения)
  • инструменты виртуализации
  • базовые сведения об администрировании
  • кратко об отладке приложений

Помимо стажёров к занятиям привлекаются вольнопосещающие из числа сотрудников компании. Занятия проводятся профильными специалистами отдела.

Есть планы подготовки подобных курсов по Linux Kernel Programming и Linux User-space Programming.

Сертификаты о прохождении пока не вручаются. От сотрудничества с официозными образовательными учреждениями мы отказались, в основном в силу организационных сложностей.

Совместная работа

На данный момент существует общая стратегическая задача, как Linux сообщества, так и корпоративного сектора — это создание широкой и устойчивой экосистемы, связанной с ОС Linux в среде IT-специалистов и желающих стать таковыми.

В процессе роста сообщества, увеличивается не просто количество технических специалистов, кроме того, увеличивается количество людей знающих и разделяющих ценности, заложенные в принципах Свободного ПО.
Интерес компаний очевиден, ведь именно из этого сообщества приходят так необходимые для коммерческой разработки профессионалы.

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

В первую очередь это привело в неформальной договоренности о создании совместных материалов с открытым доступом для обучения.

Таким образом на github появился открытый проект, содержащий на первом этапе лекционные слайды, которые добавляются по мере создания: https://github.com/d4s/linux_courses/network/members или https://github.com/SaM-Solutions/linux_courses/network/members/. Отдельно хотелось бы отметить, что благодаря такому подходу у любого заинтересованного лица — будь то представитель другой компании, либо студент, есть возможность участвовать в процессе обучения, корректировать материалы и создавать новые, а также проводить свои собственные курсы, используя уже созданные материалы.

В своем роде — это уникальный для просторов РБ проект с открытым исходным кодом.

Что дальше?

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

Кроме того, авторы очень надеются, что кроме каталогов “epam” и “sam-solutions” в репозитории с исходниками появятся каталоги с названиями других компаний, заинтересованных в развитии экосистемы вокруг ОС Linux.

Список литературы

1 Derechennik S.S., Kostiuk D.A., Pynkin D.A. Free/libre software usage in the belarusian system of higher educational institutions // Друга міжнародна науково-практична конференція FOSS Lviv-2012: Збірник наукових праць/ Львів, 26-28 квітня 2012 р.

2 Д.А. Пынькин, И.И. Глецевич. Открытый подход к обучению студентов технической
специальности ВУЗа // 7-я конференция «СПО в высшей школе»: Тезисы докладов. http://freeschool.altlinux.ru/wp-content/uploads/2012/01/pereslavl-winter-2012.pdf

Abstract licensed under Creative Commons Attribution-ShareAlike 3.0 license

Назад