Отзыв по курсу «DevOps практики и инструменты»

Мы в OTUS постоянно интересуемся мнением наших студентов о том, насколько им интересно учиться, что именно они узнают, чем запоминаются занятия, с какими проблемами сталкиваются. Специально для этого была внедрена опросная система, цель которой — улучшить качество образования и оперативно устранять возникающие проблемы. И конечно, мы всегда радуемся, когда студенты готовы дать фидбек не только в формате опроса, но и ответить на конкретные вопросы лично. Так мы связались с Иваном Борискиным, выпускником курса «DevOps практики и инструменты».

Мой предыдущий опыт работы не столь разнообразен: я работал системным администратором (читай эникейщиком), а затем инженером технической поддержки (LAMP, SIP, VOIP). На момент выбора курса я лишь отдалённо и очень поверхностно понимал термин DevOps. Всё понимание сводилось к тому, что это стык системного администрирования, разработки, тестирования, развёртывания и технической поддержки программного продукта.

Первое чувство после ознакомления с программой курса было связано с неуверенностью — осилю или нет этот кур (стоит не дёшево и названия всех инструментов были для меня пустым звуком). Но курс очень заинтересовал охватом инструментария и возможностью получить представление и практический опыт для вхождения в отрасль.

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

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

Мои предложения

Параллельное выполнение домашних заданий и курсового проекта

Каждое домашние задание — это этап для выполнения проекта. Сделал и сдал задание — попробуй сделать то же в проекте. Мы дали вам инструмент — попробуйте применить его в другой задаче. Студент не ждёт пока закончится курс, знает, что требуется в проекте с самого начала, и уже думает, как это сделать в проекте, а не «обезьянничает» по инструкции в домашке.

Даже к концу курса, когда забудется часть материала, взаимосвязи инструментов и прочие детали, будет почти готовый поэтапно сложенный проект. Достаточно будет воссоздать ретроспективу по changelog-у. Конечно, если всё делать согласно требованиям к проекту, о чём тоже необходимо сообщить на первых занятиях, а не на последнем при выдаче задания на проект.

В период выполнения проектного задания останется общая доработка: дополнение проекта другими инструментами или вариантами реализации и как альтернатива — выполнение собственного проекта.

Требования к проекту

Их необходимо описать в соответствующем разделе ЛК, сопроводив образцом проекта на Git-e (как это должно быть хотя бы в первом приближении, оставляя место для творчества).

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

Вход в рабочий кабинет/ЛК курса должен быть контекстным

Следующие пункты будут разными для разработчиков, менеджеров, DevOps, т.е. состав меню ЛК должно зависеть от тематики курса:

— Добавить раздел по организации рабочего пространства/места (рекомендательный характер, выполняется до начала курса). Т.е. рекомендации о том, что надо установить и какие настройки должны быть в утилитах, какие плагины к редакторам необходимы, как настраивается оболочка, те же алиасы, подсветка командной строки, tmux, zsh и т.п.

Каждый определится сам, стоит ли ему что-то изменять в своём окружении. Здесь было бы неплохо сопроводить роликом, демонстрирующим работу в таком окружении ретроспективно, взяв за основу курс или повседневную работу: с чем придётся столкнуться в процессе выполнения заданий, как это позволяет оптимизировать труд инженера (тот же tmux). Аналогично вебинару «Один день из жизни DevOps» — отличная идея, на мой взгляд, очень зажигает и на практике объясняет, для чего и что такое DevOps.

— Добавить отдельный раздел со списком ресурсов для закрепления материала (как пример: Play with Kubernetes or Learn Kubernetes using Interactive Browser-Based Scenarios), рекомендуемых утилит (Terraform switcher... ), инструментов для построения схем, проверки синтаксиса скриптов ShellCheck, MarkDown YamlLint и т.п. Поскольку выкладывать в чат ссылки на полезные ресурсы и инструменты не эффективно - теряется вместе с историей да и не удобно искать. А так, все в одном месте, всегда под рукой, классифицировано и контекстно распределено (исходный список для каждого обший с возможностью редактиврования каждым студентом под себя, тогда можно будет анализировать списки студентов и формировать/обновлять, после ревью, общий список в качестве исходного).

По лекциям:

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