Как мы запускали первый поток «CI/CD с Jenkins»: про домашки, активность 24/7 в чате и многое другое

В сентябре 2022 года Слёрм запустил первый поток «CI/CD с Jenkins», а уже 15 февраля стартует второй. В преддверии начала обучения мы провели интервью с автором курса и старшим инженером-программистом VK, Кириллом Борисовым. В статье все подробности: кому будет полезно и каких результатов удастся достичь, с какими вопросами можно приходить в учебный чат даже ночью и почему так важно пропускать лекции и домашние задания сквозь призму личного опыта. 

32457020ff2dc8cf541e82ab7d07b63b.jpg

Почему решил сделать курс по Jenkins

В каком-то смысле на создание курса меня вдохновила конференция DevOps Conf. Я не был в числе выступающих, но с интересом наблюдал за ними и вдруг подумал:»А почему бы не попробовать себя в роли спикера? ».

Слёрм тоже был на этой конференции. Я много слышал про его интенсивы и знал, что на них периодически требуются спикеры. Недолго думая, зашёл на сайт и написал в чате что-то вроде:»Привет! Как стать у вас спикером?». 

Со мной связались и назначили встречу в Zoom, чтобы познакомиться и узнать о моём опыте в IT. После этой встречи мне написал Женя Бутырин — руководитель одной из учебных команд. С ним мы уже предметно обсудили темы, в которых я мог бы выступить экспертом. Я рассказал, что давно работаю с Jenkins, и Женя такой:»О, класс! А мы как раз решили делать курс по нему». 

Про подготовку учебной программы 

У Жени был готов драфт учебной программы, с которым я продолжил работать. Изначально мы договорились, что это будет курс для людей, которые что-то слышали про Jenkins, но серьёзно с ним не работали. Соответственно, начинать нужно было с базовых вещей. Первые две-три лекции посвящены основам CI/CD и Jenkins, дальше сложность постепенно нарастает, и мы идём в более интересные темы. 

Поначалу проработка лекций казалась мне чем-то очень простым: берёшь и рассказываешь всё, что знаешь. Что в этом такого? Но в ходе работы с методистом я понял, насколько ошибался. Сейчас могу сказать, что создание курса — сложный и трудоемкий процесс, в котором нужно выкладываться на полную. Приходится постоянно структурировать информацию в голове и думать, как подать её максимально просто и понятно. Мало знать материал, его ещё нужно уметь объяснить, а это совсем другой скилл. 

Кому будет полезен курс 

В большей степени мы создавали этот курс для Junior DevOps-инженеров и системных администраторов. Однако во второй половине разбираем более хардовые темы, которые полезны не только джунам, но и мидлам. Например, рассказываем, как улучшить пайплайн или сделать процесс доставки приложения более прозрачным и автоматизированным, объясняем, как работать с Jenkins Shared Libraries и Templating Engine и др.

На первый поток пришли совершенно разные люди: и те, кто вообще не знал, что такое Jenkins, и те, кто уже использовал инструмент в работе. Последних интересовала возможность получить более глубокую экспертизу, пообщаться с единомышленниками и задать вопросы. Мы очень часто переписывались в чате, решая какие-то вопросы. Те, кто поопытнее, активно включались в обсуждения и делились своим видением. Вовлеченность была на максимальном уровне, и это здорово. 

Про подход: «Старался пропустить всё через призму опыта и ошибок»

Я тоже учился на разных курсах. И вот, что вынес из большинства: зачастую люди, читающие лекции, хорошо знают теорию, но практически не знакомят студентов с реальными сценариями использования. Условно, рассказывают, что есть инструмент, но не объясняют, что с ним делать. Как раз этого я хотел избежать в «CI/CD c Jenkins»

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

Из работы с методистом я понял, что при создании курса в первую очередь нужно установить учебную цель, а затем на основе неё прорабатывать программу. Примерно по такому алгоритму и двигался. Брал тему, например, основы Jenkins, спрашивал себя:»Какие знания должны остаться у студентов после прослушивания лекции? » и составлял план. 

Каждый урок «CI/CD c Jenkins» я дополнял конспектом — краткой выжимкой того, о чём я говорю на протяжении полутора часов. За счёт этого студент в любой момент может вернуться к нужной теме и освежить знания. Это особенно полезно при выполнении практики: не нужно переслушивать мою «говорящую голову», достаточно просто пробежаться по структурированному тексту. 

А что с домашними заданиями?

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

Как это работает? Представим, что мы ничего не знаем про Jenkins, и на нашем проекте появилась задача сделать CI/CD для микросервиса. Мы начинаем выполнять её. Сначала создаём простенький пайплайн в четыре строчки, который что-то делает, и по мере погружения в материал начинаем совершенствовать его. От урока к уроку пайплайн «обрастает мясом», в нём появляются новые фичи, добавляются интеграции. И в результате процесс доставки становится более надёжным.

В каждой домашке мы фактически работаем над одним и тем же репозиторием с кодом. А к концу обучения у нас получается сложный пайплайн, который не просто собирает проект, а отправляет нотификации, делает сканирование, выкладывает артефакты и т.д. 

Коротко о главном: какие проблемы решит курс

Курс даёт комплексное понимание, что такое Jenkins. Прослушав все лекции и выполнив домашние задания, вы:

  • поймёте, что Jenkins — не просто инструмент CI/CD-, а полноценный фреймворк;

  • научитесь настраивать CI/CD для любого приложения с помощью Jenkins;

  • разберётесь в сложных сценариях использования вроде настройки нотификаций, сканирования SonarQube и др.

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

Кстати о первом потоке: у нас был чат в Telegram, где мы общались практически 24/7. Что мне особенно понравилось — большая часть студентов приходили с конкретными запросами и задавали вопросы в духе:»А можно ли то, о чём ты рассказал, применить в нашем кейсе? ». 

На втором потоке хочется ещё больше интересного общения и сложных вопросов. Поэтому 15 февраля жду всех, кто хочет разобраться с Jenkins. 

c96e36fe14d21a0166da12d911cc8790.png

«CI/CD c Jenkins»

© Habrahabr.ru