Основы программирования
Программа, переменные и типы данных
• Блок-схемы и ветвления
• Циклы
• Функции
• Массивы
HTML/CSS. Интерактивный курс
- Познакомитесь с веб-технологиями и создадите простой сайт.
Основные понятия в веб-разработке
• Основы языка разметки документов HTML
• Основы языка оформления стилей документа CSS
• Псевдоклассы и псевдоэлементы, табличная верстка
• Формирование блочной модели, блочная верстка
• Работа с макетом дизайна в формате PSD
• Разметка сайта и знакомство с Bootstrap
• Стандарты web и вспомогательные инструменты
Базовый видеокурс по Git
- Познакомитесь с Git — системой контроля версий, которую программисты активно используют в учебных и коммерческих проектах.
Введение в Git
• Установка и настройка Git
• Основные команды терминала
• Работа с репозиториями
• Управление файлами репозитория
• История изменений
• Работа с ветками репозитория
• Публикация репозитория
• Слияния веток
• Управление версиями
• Создание pull-request
• Сложные операции
• Работа с Fork-репозиториями
Базовый курс Javascript
- Познакомитесь с программированием на JavaScript, чтобы создавать простые веб-страницы.
Основы языка JavaScript
• Основные операторы
• Циклы, массивы, структуры данных
• Объекты
• Введение в DOM
• Обработка событий
• Урок-практикум
• Анонимные функции, замыкания
Linux. Рабочая станция
- Бэкенд-приложения на Go часто разворачивают на Linux. Вы познакомитесь с особенностями Linux и сможете эффективнее вести разработку.
Установка операционной системы Linux
• Настройка интерфейса командной строки
• Управление пользователями и группами
• Процессы, загрузка операционной системы
• Устройство файловой системы. Файл и каталог
• Введение в скрипты bash. Планировщики задач crontab и at
• Управление пакетами и репозиториями. Основы сетевой безопасности
• Введение в docker
Go. Уровень 1
- Познакомитесь с основными инструментами и главными типами данных Go и научитесь создавать простые консольные приложения.
Особенности и история появления языка Go. Работа с плейграундом и основы тулчейна.
• Базовые типы данных. Основы работы с подсистемой ввода-вывода операционной системы. Основы структурирования Go-приложений
• Операторы и управляющие конструкции, базовые функции
• Сложные типы данных: массивы, слайсы и мапы
• Сложные типы данных: структуры, функции и методы
• Сложные типы данных: указатели
• Интерфейсы. Ошибки. Основы обработки ошибок
• Основы конфигурирования приложений
• Работа с файловой системой
• Основы тестирования Go-приложений
• Финальная консультация по курсу. Ответы на вопросы
Go. Уровень 2
- Познакомитесь с вариантами реализации параллельных вычислений в конкурентной модели, научитесь управлять зависимостями и писать простые асинхронные приложения.
Продвинутая генерация и обработка ошибок и работа с panic. Отложенный вызов функций
• Кросс-компиляция в Go и более глубокое погружение в тулчейн
• Работа с внешними зависимостями
• Concurrency, часть 1. Горутины и каналы
• Concurrency, часть 2. Основы типов данных из пакета sync
• Concurrency, часть 3. Планировщик горутин, race condition и проверка на его наличие
• Рефлексия и кодогенерация в языке Go.
• Основы работы со стандартной библиотекой Go. Подготовка к курсовому проекту
Лучшие практики разработки Go-приложений
- Познакомитесь с современными практиками разработки на Go и научитесь их внедрять в свои проекты. Они пригодятся в разработке любых приложений: от простых утилит до высоконагруженных сервисов.
Обработка ошибок сторонних сервисов и сигналов операционной системы
• Логирование
• Продвинутые практики тестирования
• Консультация
• Принципы структурирования Go-приложений
• Линтеры: продвинутый уровень
• Сборка приложений и автоматизация повторяющихся действий
Backend-разработка. Уровень 1
- Научитесь разрабатывать приложения на Go, проектировать и поддерживать их бэкенд. В конце курса создадите проект — сокращатель ссылок.
Основы сетевого взаимодействия
• HTTP и проектирование RESTful API
• Реализация и тестирование HTTP-хендлеров
• Выбор роутера и библиотек. Middleware. Контекст запроса.
• Практика, часть 1. Реализация сервера
• Практика, часть 2. Реализация веб-приложения
• Особенности докеризации Go-приложений.
• Сборка и развёртывание приложения. CI/CD
Базы данных
- Узнаете, как работают реляционные базы данных, сможете создавать свои, модифицировать их структуру и управлять данными с помощью SQL.
Введение в теорию реляционных баз данных
• Базовые понятия структуры базы данных
• Определение данных, базовые операции с данными
• Выборка данных, агрегация данных
• Вложенные запросы и объединение UNION
• Объединение JOIN
• Расширенные возможности SQL
• Оконные функции, индексы, работа в графическом клиенте
Postgres для Go-разработчиков
- Попробуете себя в роли администратора баз данных, научитесь работать с системой управления PostgreSQL и внедрять её в свои проекты.
Начало работы с PostgreSQL: базовые инструменты, сравнение с другими СУБД
• Работа со структурой базы, CTE, анализ требований при поиске данных
• Анализ выполнения запросов и индексация данных
• Использование PostgreSQL из Go-приложения
• Структура приложения, тестирование, миграции, ORM
• Уровни изоляции, конкурентный доступ, очистка, репликация
Наблюдаемость (observability) и оптимизация
- Узнаете, как анализировать производительность программ и оптимизировать их с помощью профилирования, трейсинга и кеширования.
Monitoring + alerting
• Logging + Error handling
• Профилирование и трейсинг
• Оптимизация и кэширование
Backend-разработка. Уровень 2
- Научитесь разворачивать приложения в Kubernetes и управлять ими, познакомитесь с различными API-протоколами и принципами проектирования микросервисов.
Принципы взаимодействия микросервисов
• JSON-RPC и gRPC
• GraphQL
• Запуск Go-приложений в Kubernetes. Конфигурирование. Мониторинг. Отладка.
• Kubernetes-кластер
• Очереди
• Функциональное тестирование/BDD
• Основы безопасности Go-приложений
Подготовка к собеседованию Go-разработчика
- Создадите привлекательное резюме и подготовитесь к техническому собеседованию. Сможете собрать собственное GitHub-портфолио из своих проектов.
Создание GitHub-портфолио
• Гибкие навыки Go-разработчика
• Прохождение технического собеседования
• Консультация по портфолио
Командная разработка микросервисного проекта
- Узнаете, как вести разработку в быстро изменяющейся среде: научитесь работать с большими задачами от заказчиков, разбирать их на части правильно приоритизировать. Реализуете собственные микросервисы в командной работе.
Совместная работа по проектированию сервисов. RFC и дизайн-документы
• Практики совместной работы с Git. Код-ревью
• Совместное тестирование и развёртывание сервисов
• Ответственность разработчика. Чек-листы готовности к продакшену
• Практика oncall-дежурств. Инциденты и постмортемы
• Три консультации по вашему проекту