1 блок Основы Go и Computer Science
4,5 месяца
- 20 часов интерактивных вебинаров
- 100 задач на алгоритмы
- 50 написанных программ
Вводный блок
• Ключевые понятия в IT области.
• Классификация языков программирования.
• Современные технологии и работа интернета.
• Архитектура компьютера и операционных систем.
Основы языка Go
• Установка окружения, компиляция и запуск программ на Go, основные синтаксические конструкции (пакеты, переменные и типы данных, константы, введение в строки).
• Ветвления, циклы.
• Функции и методы, структуры.
• Обработка ошибок и паник, интерфейсы, рекурсия.
• Массивы, словари, слайсы, строки, руны и слайсы байт.
• + 1 неделя практики.
Алгоритмы и структуры данных на Go
• Введение, сложность алгоритмов и О-нотации.
• Массив, список, очередь, стек. Представление в памяти.
• Алгоритмы сортировки.
• Деревья, графы, алгоритмы поиска.
• Хэш-таблицы, Хэш-мапы, Хэш-функции.
Основы многопоточности
• Понятие процесса и потока в операционной системе.
• Горутины и базовая синхронизация.
• Синхронизация с использованием атомиков и каналов.
• Wait group, основные шаблоны использования горутин.
Выполнение проекта: собрать пайплайн обработки данных.
2 блок Инструменты разработчика
4,5 месяца
Основы Linux
• Установка Linux, работа с графической оболочкой.
• Управление пользователями, работа с файлами, процессы.
• Сетевые интерфейсы Linux.
Знакомство с Git
• Основы систем контроля версий, инициализация репозитория, синхронизация изменений, запись изменений в репозиторий.
• Ветвление, Git Flow.
Docker
• Основы Docker, Запуск приложений в контейнере.
• + 1 неделя практики по GIT, Docker и Linux
Базы данных и SQL
• Реляционные базы данных, проектирование базы данных.
• Язык SQL, Транзакции.
• Индексы, триггеры, представления, хранимые процедуры.
• Работа с SQL базой данных в Go.
Базы данных и NoSQL
• Документные базы данных, отличие от SQL.
• Введение в Mongo DB и Redis.
• + 1 неделя практики по работе с базами данных
Углубленное изучение Go
• Модули, профилирование, отладка.
• Тестирование.
• Ввод/вывод. Регулярные выражения.
• Сетевые приложения.
• Web-приложения.
Выполнение проекта: разработка новостного агрегатора.
3 блок Архитектура, DevOps, очереди
4 недели
Основы архитектуры
• Архитектурные принципы.
• Шаблоны проектирования.
• Очереди сообщений.
• Методы доставки приложений.
Итоговый проект
3 недели
Разделение монолита на микросервисы.
Цель практики:
Научиться делить или «пилить» монолитное приложение — разработанный ранее агрегатор новостей — на три микросервиса с их доработкой.
Результаты проекта для студентов:
- Разработка трех микросервисов: агрегатор новостей, API Gateway и сервис модерации комментариев.
- Сравнение монолитной и микросервисной архитектуры на практике.
- Пополнение портфолио на GitHub полноценным проектом.