О чём курс

О курсе

Язык Go раскрывает путь от синтаксиса и внутреннего устройства среды выполнения до проектирования клиент-серверных систем и создания микросервисов, переводя от базового написания кода к инженерным подходам в разработке.

Практическая часть включает создание серии прикладных решений (от утилит до сервиса «Календарь») и разработку полноценного итогового проекта для портфолио.

Для кого

Обучение рассчитано на специалистов с опытом разработки серверных приложений от 1 года, знанием Git и общим пониманием процессов CI:

  • бэкенд-разработчиков, планирующих перейти на Golang, освоить профильные библиотеки и архитектурные практики;
  • разработчиков, уже освоивших основы Go или прошедших базовую подготовку, которым необходимо углубить знания;
  • фронтенд- и фулстек-разработчиков, стремящихся охватить весь цикл создания продукта от интерфейса до инфраструктуры;
  • DevOps-инженеров, желающих научиться профилировать сервисы и настраивать мониторинг на уровне кода.

Плюсом для освоения материала будут знание синтаксиса Go, опыт работы с C/C++ и навыки администрирования Linux.

Что внутри

Программа охватывает внутренние механизмы платформы: работу планировщика, сборщика мусора и эскейп-анализа. Студенты учатся избегать типовых ошибок при работе с памятью, слайсами, мапами и nil-интерфейсами, а также профилировать код через pprof и писать бенчмарки.

В блоке сетевого взаимодействия рассматриваются протоколы TCP/UDP, базы данных SQL/NoSQL, построение HTTP- и gRPC-сервисов с транзакциями и TLS. Отдельное внимание уделено конкурентному программированию с использованием горутин и каналов, реализации прикладных алгоритмов (LRU-кэш, конвейеры обработки данных), а также контейнеризации и оркестрации приложений с помощью Docker и K8s.

Формат обучения

Курс длится 5 месяцев и проходит в виде живых интерактивных вебинаров (два занятия по 2 академических часа в неделю). Предусмотрен постоянный доступ к учебным материалам, выполнение 16 практических домашних заданий и защита выпускного проекта перед экспертами.

Программа обучения

  1. Начало работы с Go В первом модуле мы посмотрим на Go как на язык программирования. Рассмотрим основные синтаксические конструкции и их выполнение в runtime. Основное внимание уделим конструкциям, уникальным для языка Go, которых нет в другом языке.
  • Тема 1: Знакомство с курсом / ДЗ
  • Тема 2: Синтаксис языка
  • Тема 3: Типы данных
  • Тема 4: Особенности языка и типовые ошибки / ДЗ
  • Тема 5: Лучшие практики работы с ошибками / ДЗ
  • Тема 6: Тестирование в Go
  • Тема 7: Продвинутое тестирование в Go
  • Тема 8: Интерфейсы изнутри / ДЗ
  1. Concurrency в Go Второй модуль мы посвятим одной из самых главных тем Go — конкурентности. Познакомимся с горутинами и каналами, с тем, как устроена память и сборка мусора в Go. Научимся писать конкурентно-безопасные программы.
  • Тема 1: Горутины и каналы
  • Тема 2: Примитивы синхронизации в деталях / ДЗ
  • Тема 3: Дополнительные примитивы синхронизации
  • Тема 4: Concurrency patterns / ДЗ
  • Тема 5: Go внутри. Планировщик
  • Тема 6: Go внутри. Память и сборка мусора
  1. Стандартные библиотеки и практики В третьем модуле мы познакомимся с основными функциями стандартной библиотеки Golang, а также наиболее популярными open-source библиотеками. Научимся взаимодействовать с операционной и файловой системами из Go, поговорим о понятиях рефлексии и кодогенерации, а также рассмотрим инструменты профилирования программ, написанных на Go.
  • Тема 1: Работа с вводом/выводом в Go / ДЗ
  • Тема 2: Конфигурация и логирование
  • Тема 3: CLI / ДЗ
  • Тема 4: Рефлексия
  • Тема 5: Кодогенерация и AST
  • Тема 6: Дженерики в Go / ДЗ
  • Тема 7: Профилирование и оптимизация Go программ / ДЗ
  1. Работа с сетью и БД Go чаще всего используется для написания сетевых сервисов. В четвертом модуле мы изучим, как работать с сетью в языке Go. Рассмотрим стандартные протоколы и форматы, а также напишем простой web-сервер. Отдельное внимание будет уделено обработке ошибок, возникающих при работе с сетью. Дополнительно в данном модуле мы поговорим о работе с SQL и gRPC.
  • Тема 1: Контекст и низкоуровневые сетевые протоколы / ДЗ
  • Тема 2: Работа с SQL / ДЗ
  • Тема 3: Работа с NoSQL
  • Тема 4: Работа с HTTP
  • Тема 5: Работа с gRPC
  • Тема 6: Работа с gRPC ч.2 / ДЗ
  1. Микросервисы В пятом модуле мы рассмотрим вопросы архитектуры web-сервисов, в частности популярную на данный момент микросервисную архитектуру. Рассмотрим вопросы интеграционного тестирования, развертывания и эксплуатации приложений.
  • Тема 1: Монолит и микросервисы
  • Тема 2: Кэширование
  • Тема 3: Очереди сообщений / ДЗ
  • Тема 4: Docker
  • Тема 5: K8s / ДЗ
  • Тема 6: Helm
  • Тема 7: Мониторинг / ДЗ
  • Тема 8: Тестирование микросервисов
  1. Проект Проект, разрабатываемый студентами, будет представлять собой реализацию микросервиса с полным набором компонентов, таких как: ядро, работа с хранилищем, конфигурация и логгирование, работа с очередями сообщений, liveness-пробы, Makefile, юнит- и интеграционные тесты, статический анализ кода, файлы для деплоя, Dockerfile'ы и пр.
  • Тема 1: Проектная работа. Вводное
  • Тема 2: Консультация по проектам
  • Тема 3: Итоговое занятие
Складчина создана 10 августа 2026 г.

Теги курса

Навыки
Инструменты
0 ₽