Курс на Stepik
Обложка курса «Go: антикурс без воды, до трудоустройства» на Stepik
13 500 ₽

Go: антикурс без воды, до трудоустройства 5.000

Открыть на
STEPIK.ORG

Практический набор действий для разработчиков, которые хотят профессионально освоить Go и получить работу. От базового синтаксиса до production-ready кода, включая подготовку к собеседованиям и широкий спектр технологий: MySQL, PostgreSQL, Redis, Protocol Buffers, gRPC, RabbitMQ, Docker Compose, Prometheus, Grafana, k6 и др.

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «Go: антикурс без воды, до трудоустройства»Учеников на курсе 123
Сертификаты, выданные на курсе «Go: антикурс без воды, до трудоустройства»Сертификатов выдано 3
Отзывы о курсе «Go: антикурс без воды, до трудоустройства»Отзывов получено 5
Рейтинг курса «Go: антикурс без воды, до трудоустройства»Рейтинг курса 5.000
Уроки в курсе «Go: антикурс без воды, до трудоустройства»Количество уроков 351
Тесты в курсе «Go: антикурс без воды, до трудоустройства»Количество квизов 264
Задачи с кодом в курсе «Go: антикурс без воды, до трудоустройства»Количество задач с кодом 48
Время прохождения курса «Go: антикурс без воды, до трудоустройства»Время прохождения курса
Стоимость курса «Go: антикурс без воды, до трудоустройства»Стоимость курса 13 500 ₽
Обновления курса «Go: антикурс без воды, до трудоустройства»Обновления курса
Дата публикации курса «Go: антикурс без воды, до трудоустройства»Дата публикации курса
Последнее обновление курса «Go: антикурс без воды, до трудоустройства»Последнее обновление
Сложность normal

Содержание курса

Разделы в курсе «Go: антикурс без воды, до трудоустройства» 41 раздел Уроки в курсе «Go: антикурс без воды, до трудоустройства» 351 урок Тесты в курсе «Go: антикурс без воды, до трудоустройства» 264 теста Задачи в курсе «Go: антикурс без воды, до трудоустройства» 48 задач Время прохождения курса «Go: антикурс без воды, до трудоустройства» 92 ч. Последнее обновление курса «Go: антикурс без воды, до трудоустройства» обн. 24 августа 2026

Первые шаги

1 урок
1. Старт

Настройка окружения

4 урока
1. VS Code: установка и первые шаги
2. Установка
3. Hello GO
4. Донастройка VS Code

Базовые типы и переменные

11 уроков
1. Структура Go-проекта: пакеты, модули и организация кода
2. Организация кода. Точка входа
3. Типы данных в Go: система числовых типов
4. Основа базовых типов данных в Go: bool, string, float
5. Объявление переменных и форматированный вывод в Go
6. Анатомия переменной: память, адреса и размеры в Go
7. Правила именования идентификаторов
8. Экспорт идентификаторов и соглашения об аббревиатурах
9. Комментарии: однострочные, многострочные и документирование
10. Статическая типизация и краткое объявление переменных
11. Нулевые значения (Zero Values)

Выражения и константы

7 уроков
1. Арифметические операции
2. Операторы инкремента/декремента и присваивания
3. Побитовые операции
4. Пакет fmt: форматированный вывод
5. Продвинутое форматирование
6. Константы
7. Техническое задание #1

Типы и пользовательский ввод

6 уроков
1. Пакет math
2. Псевдонимы типов
3. Приведение типов
4. Пользовательский ввод
5. Техническое задание #2
6. Практика кода

Память, указатели и продвинутый ввод данных

2 урока
1. Области видимости, указатели, продвинутый ввод
2. Продвинутый ввод и итоги

Принятие решений: условия и логика

7 уроков
1. Операции сравнения
2. Логические операторы
3. Условные конструкции
4. Инициализация переменных в условии
5. Техническое задание #3
6. Оператор switch
7. Практика кода

Повторение

5 уроков
1. Генерация псевдослучайных чисел
2. Циклы: базовые структуры управления
3. Цикл for
4. Дополнение
5. Практика кода

Массивы

5 уроков
1. Массивы: основы
2. Основы работы с массивами
3. Циклы и перебор массивов
4. Практические задачи с массивами
5. Алгоритмы поиска и обработки данных

Слайсы

5 уроков
1. Введение в слайсы
2. Устройство и базовые операции
3. Копирование, многомерность и специфика типа
4. Практика: числовые срезы
5. Практика: строки и «коллекции задач»

Строки

5 уроков
1. Основы строк и внутреннее устройство
2. Длина строк, байты и руны
3. Перебор строк и работа с символами
4. Пакет strings
5. Производительность

Применение строк и срезов

3 урока
1. Техническое задание #5
2. Техническое задание #4
3. Техническое задание #6

Коллекции (map и set)

2 урока
1. Ассоциативные массивы
2. Множества

Техническое задание #7

9 уроков
1. Постановка задачи
2. Базовый интерфейс и структура
3. Добавление книг
4. Просмотр книг
5. Удаление книг
6. Поиск
7. Добавление пользователей
8. Книги кользователя
9. Выдача книг

Функции

3 урока
1. Функции: принцип DRY
2. Основы функций
3. Резюме

Критические ситуации

3 урока
1. Ошибки
2. Паники
3. Выводы

Техническое задание #8

2 урока
1. Постановка задачи
2. Реализация

Про время

2 урока
1. Основа
2. Всё, что нужно знать

Про файлы и директории

2 урока
1. Основа
2. Всё, что нужно знать

Техническое задание #9

15 уроков
1. Постановка задачи
2. Начало
3. utils
4. parse-format
5. storage part 1
6. storage part 2
7. storage part 3
8. storage part 4
9. service 1
10. service 2
11. handler 1
12. handler 2
13. menu
14. preRun
15. Итоги

Структуры

5 уроков
1. Основы организации данных
2. Создание и инициализация
3. Инициализация структур и видимость
4. Создание структур
5. Резюме

Техническое задание #10

2 урока
1. Постановка задачи
2. Реализация

Про JSON

3 урока
1. Предназначение
2. Сериализация
3. Десериализация

Композиция — не наследование

5 уроков
1. Дополнение
2. Демонстрация
3. Техническое задание #11
4. Реализация
5. Итоги

Интерфейсы

3 урока
1. Основа
2. Замечание
3. Погружение

Практический проект: CRUD-приложение с персистентностью

25 уроков
1. Клонирование шаблона и инициализация проекта
2. Создание моделей Contact и ContactRelation
3. DTO для обновления контакта с указателями
4. Валидация полей и доменные ошибки
5. Фабричная функция NewContact
6. Методы управления тегами контакта
7. Управление связями между контактами
8. Структура ContactBook и конструктор
9. CRUD-операции: создание и чтение контактов
10. CRUD-операции: обновление и удаление
11. Реализация поиска по имени, телефону и тегам
12. Методы работы со связями в ContactBook
13. Методы сериализации и десериализации
14. Интерфейс Storage для персистентности
15. JSONStorage: реализация метода Load
16. JSONStorage: атомарная запись файлов
17. Тестирование ContactBook и JSONStorage
18. Структура CLI и внедрение зависимостей
19. Обработчик вывода списка контактов
20. Главный цикл и обработка команд CLI
21. Точка входа и инициализация приложения
22. CLI: создание контакта с вводом данных
23. Обработчик выхода с сохранением данных
24. Тестирование функции выхода
25. Техническое задание #12

Параллелизм и конкурентность

11 уроков
1. Горутины: первые шаги
2. Стек вызовов горутин и управление runtime
3. Каналы как основы синхронизации горутин
4. Буферизованные каналы
5. Обработка ошибок в горутинах
6. Альтернативная обработка ошибок
7. Примитив синхронизации горутин
8. Защита общих данных
9. Практика
10. Deadlock — взаимная блокировка горутин
11. Самостоятельная работа

Не SOLID

1 урок
1. Принципы, которые делают код лучше

Жизнь без ООП

6 уроков
1. Factory
2. Builder
3. Prototype
4. Singleton
5. Adapter
6. Дополнение

Управление зависимостями

1 урок
1. Подключение сторонних библиотек

RESTful API: обзор фундаментальных концепций

2 урока
1. Теория ключевых аспектов
2. Есть вопросик...

SQL и СУБД: SQLite, введение в теорию хранения данных

19 уроков
1. Зачем нужны базы данных
2. Установка и настройка окружения для работы с SQLite
3. Основные концепции структуры базы данных
4. Отношения в базе данных
5. Что такое SQL и система типов
6. Создание таблиц
7. Ограничения SQL
8. Добавление записей
9. Самостоятельная работа: наполнение данными
10. Выборка данных
11. Фильтрация данных
12. Оператор обновления данных
13. Самостоятельная работа на обновление данных
14. Оператор удаления данных
15. Самостоятельная работа: создание и наполнение базы данных
16. Сложные концепции
17. Самостоятельная работа на сложные запросы
18. Сложные запросы
19. Самостоятельная работа на объединение

Полноценный REST API с JWT‑аутентификацией

28 уроков
1. Базовый HTTP-сервер
2. Модель Contact
3. Инициализация SQLite и миграции
4. Репозиторий контактов
5. Сервис контактов
6. HTTP-обработчик создания контакта
7. Интеграция слоя контактов
8. Рефакторинг
9. Валидация и уникальность
10. Валидация по-взрослому
11. GET-запрос получения всех контактов
12. GET-запрос получение контакта по ID
13. Мягкое удаление контакта (Soft Delete)
14. Техническое задание
15. Модель пользователя и структура аутентификации
16. Таблица в базе данных
17. Заготовка слоя регистрации
18. Регистрация пользователя
19. Хеширование паролей
20. Аутентификация и проверка пароля
21. JWT-токены: Claims и JWTService
22. Генерация JWT при успешной авторизации
23. Окружение
24. JWT Middleware для защиты эндпоинтов
25. Поддержка Bearer-токенов
26. Проверка владельца при удалении
27. Проверка владельца при обновлении
28. Перспективы развития

Описание проекта

1 урок
1. Что будем делать

Что нас ждёт на собеседовани

1 урок
1. Практические рекомендации

Каталог товаров

43 урока
1. 🗃️ 001 Введение в проект
2. 🗃️ 002 Инициализация Go-модуля и Gin-сервер
3. 🗃️ 003 Доменные сущности: BaseEntity, Brand, Category, CatalogI
4. 🗃️ 004 Docker Compose и PostgreSQL
5. 🗃️ 005 SQL-миграции и seed-данные
6. 🗃️ 006 Репозиторий брендов (PostgreSQL)
7. 🗃️ 007 Query handler: получение брендов
8. 🗃️ 008 HTTP handler: эндпоинт брендов
9. 🗃️ 009 Маршрутизация API v1: /brands
10. 🗃️ 010 Конфигурация через .env и godotenv
11. 🗃️ 011.1 [ТЗ] Самостоятельная работа
12. 🗃️ 011.2 Эндпоинт /categories: полный цикл
13. 🗃️ 012 Репозиторий товаров с JOIN
14. 🗃️ 013 Query handler: список товаров
15. 🗃️ 014 HTTP handler: список товаров
16. 🗃️ 015 Маршрут /catalog-items
17. 🗃️ 016 Рефакторинг SQL-запросов
18. 🗃️ 017 Репозиторий: получение товара по ID
19. 🗃️ 018 Query handler: товар по ID
20. 🗃️ 019 HTTP handler: товар по ID
21. 🗃️ 020 Маршрут /catalog-items/
22. 🗃️ 021 Поиск по названию (ILIKE)
23. 🗃️ 022 Query handler: поиск по названию
24. 🗃️ 023 HTTP handler: поиск по названию
25. 🗃️ 024 Маршрут /catalog-items/title/:title
26. 🗃️ 025 Репозиторий: создание товара (INSERT)
27. 🗃️ 026 Command handler: создание товара
28. 🗃️ 027 HTTP handler: POST-запрос
29. 🗃️ 028 Маршрут POST /catalog-items
30. 🗃️ 029 Репозиторий: обновление товара (UPDATE)
31. 🗃️ 030 Command handler: обновление товара
32. 🗃️ 031 HTTP handler: PUT-запрос
33. 🗃️ 032 Маршрут PUT /catalog-items
34. 🗃️ 033 [ТЗ] Удаление товара
35. 🗃️ 034 [ТЗ] Поиск по бренду
36. 🗃️ 035 Пагинация: Pagination и QueryArgs
37. 🗃️ 036 Фильтрация и сортировка: введение
38. 🗃️ 037 Query handler: пагинация (V2)
39. 🗃️ 038 HTTP handler: пагинация (V2)
40. 🗃️ 039 Маршрут GET /v2/catalog-items, тестирование пагинации
41. 🗃️ 040 Автомиграции при старте (golang-migrate)
42. 🗃️ 041 Финал каталога и итоговые правки
43. 🗃️ Саморефлексия

Корзина покупок

23 урока
1. 🗑️ 042 PostgreSQL для Basket в Docker Compose
2. 🗑️ 043 Gin-сервер и health-check для Basket
3. 🗑️ 044 Миграции Basket и автозапуск
4. 🗑️ 045 Доменные модели: ShoppingCart, ShoppingCartItem
5. 🗑️ 046 Репозиторий: сохранение корзины (транзакция)
6. 🗑️ 047 Command handler: сохранение корзины
7. 🗑️ 048 HTTP handler: POST /cart
8. 🗑️ 049 Маршрутизация API v1: /cart
9. 🗑️ 050 Инициализация слоёв и DI
10. 🗑️ 051 Валидация моделей (go-playground/validator)
11. 🗑️ 052 Middleware: централизованная обработка ошибок
12. 🗑️ 053 Интеграция ErrorHandlerMiddleware
13. 🗑️ 054 Репозиторий: получение корзины
14. 🗑️ 055 Query handler: получение корзины
15. 🗑️ 056 HTTP handler: GET /cart/:accountName
16. 🗑️ 057 Маршрут GET /cart/:accountName
17. 🗑️ 058 Кастомный тип NotFoundError
18. 🗑️ 059 [ТЗ] Удаление корзины
19. 🗑️ 060 Redis-контейнер для кэширования
20. 🗑️ 061 RedisCartRepository
21. 🗑️ 062 Интеграция Redis
22. 🗑️ 063 Dockerfile и compose-prod для Basket
23. 🗑️ Саморефлексия

Окончание

1 урок
1. Итоги

Промоакции

31 урок
1. 🏷️ 064 MySQL-контейнер для Promotion
2. 🏷️ 065 Подключение к MySQL и автомиграции
3. 🏷️ 066 Миграция: таблица promos и seed-данные
4. 🏷️ 067 Protocol Buffers: greet.proto и кодогенерация
5. 🏷️ 068 Реализация GreeterService (gRPC)
6. 🏷️ 069 gRPC-сервер с graceful shutdown
7. 🏷️ 070 gRPC Reflection и тестирование
8. 🏷️ 071.1 gRPC метод Add (практика)
9. 🏷️ 071.2 Proto-контракт
10. 🏷️ 072 Доменная модель
11. 🏷️ 073 Интерфейс PromotionRepository
12. 🏷️ 074 Реализация FindByCatalogItem
13. 🏷️ 075 Реализация обработчика promotion/queries
14. 🏷️ 076 gRPC-сервис PromoService: заглушка
15. 🏷️ 077 Реализация GetPromoByCatalogItem
16. 🏷️ 078 Интеграция PromoService в main
17. 🏷️ 079 Proto: CreatePromo RPC
18. 🏷️ 080 Репозиторий: вставка промоакции
19. 🏷️ 081 Command handler: создание промоакции
20. 🏷️ 082 gRPC эндпоинт CreatePromo
21. 🏷️ 083 Интеграция CreatePromoHandler и DI
22. 🏷️ 084 Unique-ограничение и обработка дубликатов
23. 🏷️ 085 UpdatePromo: полный цикл
24. 🏷️ 086 [ТЗ] Удаление промоакции
25. 🏷️ 087 gRPC-клиент в SaveCartHandler: применение скидок
26. 🏷️ 088 Интеграция gRPC-клиента в Basket
27. 🏷️ 089 Dockerfile и compose-prod для Promotion
28. 🏷️ 090.1 Проблема: БД не готова при старте
29. 🏷️ 090.2 Утилита WaitForDB с retry-логикой
30. 🏷️ 091 Интеграция WaitForDB во все сервисы
31. 🏷️ Саморефлексия

Оформление заказов

25 уроков
1. 🚚 092 PostgreSQL для Checkout и миграции
2. 🚚 093 Конфигурация и запуск миграций
3. 🚚 094 Gin-сервер и health-check для Checkout
4. 🚚 095 Доменная модель: Order, Value Objects, Enums
5. 🚚 096 Интерфейс и реализация OrderRepository
6. 🚚 097 Репозиторий: получение заказа с позициями
7. 🚚 098 Репозиторий: поиск заказов по аккаунту
8. 🚚 099 Репозиторий: создание заказа (транзакция)
9. 🚚 100 Query handler: заказ по ID
10. 🚚 101 HTTP handler: GET /orders/:id
11. 🚚 102 Маршрут и DI для Checkout
12. 🚚 103 [ТЗ] Заказы по аккаунту
13. 🚚 104 RabbitMQ-контейнер в Docker Compose
14. 🚚 105 Структура messaging: заготовки
15. 🚚 106 BaseIntegrationEvent и OrderSubmittedEvent
16. 🚚 107 RabbitMQ Publisher: exchange, queue, publish
17. 🚚 108 Command handler: CheckoutCart и публикация события
18. 🚚 109 HTTP handler: POST /cart/checkout
19. 🚚 110 Маршрут checkout и интеграция RabbitMQ
20. 🚚 111 RabbitMQ Consumer: подключение и обработка
21. 🚚 112 ProcessOrderSubmissionHandler: создание заказа
22. 🚚 113 OrderSubmittedConsumer: маппинг события в команду
23. 🚚 114 Интеграция consumer в Checkout с graceful shutdown
24. 🚚 115 Dockerfile и compose-prod для Checkout
25. 🚚 Саморефлексия

Мониторинг и инфраструктура

16 уроков
1. 📊 116.1 Введение в Prometheus и Grafana
2. 📊 116.2 Пакет metrics: HTTP, gRPC, DB, RabbitMQ
3. 📊 117 Gin Middleware для Prometheus-метрик
4. 📊 118 gRPC-интерцепторы метрик
5. 📊 119 Метрики в Catalog-сервисе
6. 📊 120 Метрики в Promotion-сервисе
7. 📊 121 Конфигурация Prometheus (prometheus.yml)
8. 📊 122 Datasource Grafana для Prometheus
9. 📊 123 Prometheus и Grafana в compose-prod
10. 📊 124.1 Демо: дашборды Prometheus и Grafana
11. 📊 124.2 Grafana-дашборды: Catalog и Promotion
12. 📊 125 Нагрузочное тестирование с k6 (HTTP)
13. 📊 126 Тюнинг пула соединений PostgreSQL
14. 📊 127 k6: нагрузочный тест gRPC
15. 📊 128 Portainer: управление контейнерами
16. 📊 Саморефлексия