Программирование на GO
Темы:
Практика:
— 5 учебных программ на GO
— 10 тренировочных задач для собеседований
— Проект: реализация калькулятора различными способами
• Основы разработки и веб-технологий
• Установка окружения, компиляция и запуск программ на GO
• Основные синтаксические конструкции
• Ветвления, циклы
• Функции и методы
• Обработка ошибок
• Массивы, словари, слайсы
Алгоритмы и структуры данных на GO
Темы:
• Сложность алгоритмов и О-нотации
• Массив, список, очередь, стек
• Алгоритмы сортировки
• Деревья, графы
• Хеш-функции
Практика:
— 10 написанных программ
— 6 тренировочных задач на алгоритмы
Основы многопоточности
Темы:
• Понятие процесса и потока в операционной системе
• Горутины и базовая синхронизация
• Синхронизация с использованием атомиков и каналов
• Основные шаблоны использования горутин
Практика:
— Задачи с горутинами
— Проект: пайплайн для обработки данных
Инструменты разработчика
Темы:
• Виртуальная машина, установка Linux
• Управление пользователями, работа с файлами, процессы
• Сетевые интерфейсы Linux
• Работа в Git, Git Flow
• Основы контейнеризации, Docker
Практика:
— Задачи по работе с версиями и ветками в Git
— Проект: упаковка проекта пайплайна в Docker
Работа с базами данных
Темы:
• Реляционные базы данных, проектирование базы данных
• Язык SQL, транзакции
• Работа GO с реляционными базами данных (MySQL и PostgreSQL) и с нереляционными (MongoDB)
Практика:
— Задания на проектирование баз данных
— Проект: сервер для агрегатора новостей
Продвинутое изучение GO
Темы:
• Модули, профилирование, отладка
• Тестирование
• Ввод/вывод. Регулярные выражения
• Сетевые приложения
• REST API
Практика:
— 7 написанных программ на GO
— Проект: новостной агрегатор
Архитектура и основы DevOps
Темы:
• Архитектурные принципы
• Шаблоны проектирования
• Методы доставки приложений
• Очереди сообщений
Практика:
— 3 написанных программ на GO
— Финальный проект: разделить новостной агрегатор на микросервисы