20 часов интерактивных вебинаров 100 задач на алгоритмы 50 написанных программ
Основы Go и Computer Science 1 блок 4,5 месяца
Вводный блок
• Ключевые понятия в 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-приложения
Выполнение проекта: разработка новостного агрегатора
Архитектура, DevOps, очереди 3 блок 4 недели
Основы архитектуры
• Архитектурные принципы
• Шаблоны проектирования
• Методы доставки приложений
• Очереди сообщений
Итоговый проект 3 недели
Разделение монолита на микросервисы
- Цель практики:
Научиться делить или «пилить» монолитное приложение — разработанный ранее агрегатор новостей — на три микросервиса с их доработкой.
- Результаты проекта для студентов:
Разработка трех микросервисов: агрегатор новостей, API Gateway и сервис модерации комментариев
Сравнение монолитной и микросервисной архитектуры на практике
Пополнение портфолио на GitHub полноценным проектом