Видеокурс по изучению языка Go!!!
Для кого:
- Администратор, который хочет автоматизировать процессы или начать программировать
- Разработчик, который выполняет функции инженера
- Хотите перейти на 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. Итоговый проект по блоку "Основы"
Время сдачи проекта – до 23 января
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. Итоговый проект
Время сдачи проекта – до 27 февраля