Для кого:
- Администратор, который хочет автоматизировать процессы или начать программировать
- Разработчик, который выполняет функции инженера
- Хотите перейти на DevOps или обучаете команду и хотите повысить уровень администрирования
На курсе вас ждет:
- Теория
- открывается постепенно, предоставляется время на комфортное изучение в удобном режиме
- Практика
- задания для самостоятельной работы с большими сроками сдачи
- Итоговый проект
- по окончании курса у вас будет итоговый проект, который можно приложить к резюме
Учиться проще, если вы:
- Знаете основы программирования и понимаете основные конструкции и подходы
- Владеете базовыми навыками администрирования Linux, умеете взаимодействовать с процессами, файлами и использовать прикладные протоколы передачи данных
- Имеете опыт работы с git
- Понимаете предназначения Ansible и модулей Ansible
- Желателен опыт работы с GitLab и GitLab CI
- Желательны базовые навыки автоматизации на Bash
- Нескончаемо стремитесь автоматизировать ручной труд!
Программа обучения
1. Введение
2. Что из себя представляет Go?
- Знакомство с курсом
- Знакомство со спикером
- Цели курса
- Как учиться онлайн?
- Какова философия Go?
- Для каких проектов он годится, а для каких – нет и почему?
- Зачем Go нужен инженерам?
- ЗАЧЕМ: Вы узнаете, зачем нужен язык Go, где его лучше применять. Рассмотрим основные недостатки, поймем, какие рабочие процессы можно упростить с помощью Go.
3. Основы Go
- Переменные и их типы
- Функции
- Циклы, switch-case, if
- ЗАЧЕМ: Научитесь группировать, агрегировать и работать с данными. Освоите разбивку кодов программы из большой функции на несколько маленьких, а также научитесь передавать данные из функции в функцию.
4. Погружаемся глубже в основы
- Структуры
- Интерфейсы
- Обобщенное программирование и ООП в Golang
- Garbage collector
- ЗАЧЕМ: Подробно разберем, как Go подходит к реализации по объектно-ориентированному программированию (ООП).
5. Concurrency
- Параллелизм и конкурентность. Что это такое и чем отличаются?
- Треды vs горутины
- Обработка ошибок
- Базовые принципы синхронизации
- WaitGroup
- Каналы
- Select
- Разбор пакета context
- ЗАЧЕМ: Научитесь отличать конкурентности от параллелизма, освоите правильную работу с конкурентностью в Go, стандартные подходы и концепции для работы с конкурентностью.
6. Go на практике
- Go modules и структура проекта
- Как работать с операционной системой?
- Как работать с файлами и файловой системой?
- Как работать с сетью в Golang?
- Обзор протоколов и форматов
- Как работать с базой данных?
- Пакеты для http
- Как писать тесты?
- Как проверить качество кода?
- Кросскомпиляция и build теги
- ЗАЧЕМ: Научитесь оперировать стандартной библиотекой языка, создавать сложные программы на Go. Узнаете, что такое тесты, как именно они организованы и структурно работают. Научитесь запускать внешний процесс из Go.
7. Итоговый проект по блоку «Основы»
8. Работа с Docker из Go
- Docker SDK для Go
- Работаем с докером из Go
- Практические советы для применения
- Практика — пишем приложение, которое деплоит контейнер и тестируем его
- ЗАЧЕМ: Поймёте, что такое API и как с ним работать, научитесь взаимодействовать с Docker из Go. Научитесь запускать контейнер и присоединяться к рабочему контейнеру. Определите характер взаимодействия в зависимости от рабочих задач.
9. Паттерны Kubernetes
- Health probe/Liveness probe
- Periodic job
- Daemon service
- Stateful service
- Service discovery/Service mesh
- Sidecar/Adapter
- Controller/Operator
10. Операторы Kubernetes
- Что такое оператор Kubernetes?
- Как писать кастомные операторы?
- Пишем кастомный оператор на Go
- ЗАЧЕМ: Научитесь работать с кастомными операторами. Поймёте, зачем нужны паттерны Kubernetes.
11. Итоговый проект







