Курс на Stepik
Обложка курса «Твой Golang - Продвинутый» на Stepik
5 000 ₽

Твой Golang - Продвинутый ★ 5.000

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

Углубленный курс по Go для тех, кто хочет понимать язык на уровне runtime и компилятора. Разбираем внутреннее устройство слайсов, мап (Swiss Tables), интерфейсов и асинхронности. Учимся писать эффективный backend, CLI и HTTP-серверы, опираясь на знание того, как код работает в памяти. Только Hard skills и архитектура production-систем. Это второй уровень после базового курса от Павла Тарасова.

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «Твой Golang - Продвинутый»Учеников на курсе 564
Сертификаты, выданные на курсе «Твой Golang - Продвинутый»Сертификатов выдано 17
Отзывы о курсе «Твой Golang - Продвинутый»Отзывов получено 6
Рейтинг курса «Твой Golang - Продвинутый»Рейтинг курса 5.000
Уроки в курсе «Твой Golang - Продвинутый»Количество уроков 146
Тесты в курсе «Твой Golang - Продвинутый»Количество квизов 449
Задачи с кодом в курсе «Твой Golang - Продвинутый»Количество задач с кодом 86
Время прохождения курса «Твой Golang - Продвинутый»Время прохождения курса —
Стоимость курса «Твой Golang - Продвинутый»Стоимость курса 5 000 ₽ —
Обновления курса «Твой Golang - Продвинутый»Обновления курса — —
Дата публикации курса «Твой Golang - Продвинутый»Дата публикации курса — ———
Последнее обновление курса «Твой Golang - Продвинутый»Последнее обновление — ———
Сложность normal — ———

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

Разделы в курсе «Твой Golang - Продвинутый» 20 разделов Уроки в курсе «Твой Golang - Продвинутый» 146 уроков Тесты в курсе «Твой Golang - Продвинутый» 449 тестов Задачи в курсе «Твой Golang - Продвинутый» 86 задач Время прохождения курса «Твой Golang - Продвинутый» 125 ч. Последнее обновление курса «Твой Golang - Продвинутый» обн. 8 октября 2026

Слайсы

6 уроков
1. Введение ↗
2. Структура слайса ↗
3. Как работает append() ↗
4. Нюансы append() ↗
5. Подслайсы ↗
6. Неожиданные мутации ↗

Big O

3 урока
1. Сложность операций: Big O ↗
2. Как данные хранятся в памяти? ↗
3. Практика: Угадай сложность ↗

Хеш-таблица

5 уроков
1. Проблема поиска ↗
2. Придумываем хеш-таблицу ↗
3. Коллизии ↗
4. Создаем свою хеш-таблицу ↗
5. Заключение ↗

map

10 уроков
1. Введение ↗
2. Идея swiss tables ↗
3. hash ↗
4. Каталог и расширяемое хеширование ↗
5. Таблицы (Swiss tables) ↗
6. Группы ↗
7. Поиск элемента и пробирование ↗
8. CRUD в map ↗
9. Нюансы map ↗
10. Заключение ↗

Интерфейсы

4 урока
1. Устройство интерфейсов ↗
2. Таблицы методов (itab) ↗
3. Интерфейсы, nil и производительность ↗
4. Использование интерфейсов ↗

Время - time

7 уроков
1. Основы времени ↗
2. Арифметика времени ↗
3. Форматирование и парсинг времени ↗
4. Временные зоны ↗
5. Monotonic и Wall Time ↗
6. Таймеры и задержки ↗
7. DST, високосные секунды и другие подводные камни ↗

Работа с файловой системой

14 уроков
1. Введение в работу с файлами ↗
2. Ручное управление файлом ↗
3. Операции с *os.File ↗
4. Пример: чтение конфигурации ↗
5. Работа с большими файлами ↗
6. bufio ↗
7. Реализуем логику head ↗
8. Пути и работа с директориями ↗
9. Directory (Path) Traversal ↗
10. Рекурсивный обход файловой системы ↗
11. Права доступа, метаданные и временные файлы ↗
12. Атомарная запись ↗
13. Практика: реализуем tail ↗
14. Стандартные операции над файлами ↗

JSON

11 уроков
1. Что такое JSON ↗
2. Основы JSON ↗
3. omitempty и omitzero ↗
4. MarshalJSON и UnmarshalJSON ↗
5. Вложенные структуры, слайсы, мапы ↗
6. Динамический JSON ↗
7. Валидация в UnmarshalJSON ↗
8. Streaming и работа с большими данными ↗
9. Циклические ссылки ↗
10. encoding/json/v2 ↗
11. stepik ↗

Конкурентность

8 уроков
1. Горутины и GMP ↗
2. Как устроен GMP ↗
3. Горутины ↗
4. Каналы ↗
5. Нюансы каналов ↗
6. Практика с каналами ↗
7. select ↗
8. Таймеры и таймауты ↗

Контекст

5 уроков
1. Введение в контекст ↗
2. Отмена контекста ↗
3. Передача контекста вниз по стеку ↗
4. Причина - context.Cause ↗
5. Пример: длинные вычисления с проверкой контекста ↗

Сигналы

2 урока
1. Работа с сигналами ↗
2. Graceful shutdown ↗

Пакет sync

10 уроков
1. Введение в пакет sync ↗
2. sync.Mutex ↗
3. sync.RWMutex ↗
4. sync.WaitGroup ↗
5. sync.Once ↗
6. sync.Cond ↗
7. sync.Map ↗
8. sync.Pool ↗
9. errgroup ↗
10. Что выбрать? ↗

Пакет atomic

5 уроков
1. Атомарные операции ↗
2. Пример: Флаг отмены для воркеров ↗
3. Атомарное обновление структуры - atomic.Pointer ↗
4. Когда нельзя использовать атомарные операции ↗
5. Заключение ↗

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

1 урок
1. Graceful shutdown ↗

Паттерны конкурентности

7 уроков
1. Pipeline ↗
2. Worker Pool ↗
3. Fan-Out/Fan-In ↗
4. Resource Pool ↗
5. Circuit Breaker ↗
6. Rate Limiting ↗
7. Pub/Sub ↗

CLI

7 уроков
1. Введение в CLI-приложения ↗
2. Цветной вывод и индикаторы прогресса ↗
3. Стандартный пакет flag ↗
4. Пакет pflag ↗
5. Библиотека urfave/cli ↗
6. Библиотека Cobra и Viper ↗
7. Интерактивные режимы (REPL) ↗

Теория HTTP

4 урока
1. Введение в HTTP как протокол ↗
2. Уровни сетевого взаимодействия: OSI ↗
3. Эволюция HTTP ↗
4. Stateless-природа HTTP ↗

HTTP-сервер

16 уроков
1. Основы HTTP-сервера ↗
2. Регистрация обработчиков ↗
3. Запуск сервера ↗
4. Заполнение обработчиков ↗
5. Добавляем log/slog ↗
6. Роутер ↗
7. Роутинг в http.ServeMux ↗
8. Убираем глобальный логгер ↗
9. Middleware ↗
10. Context и цепочки middleware ↗
11. Настройка HTTP-сервера ↗
12. Чтение данных из HTTP-запроса ↗
13. Раздача статических файлов ↗
14. Загрузка файлов ↗
15. Множественная загрузка файлов ↗
16. Заключение ↗

HTTP-клиент

5 уроков
1. Простые запросы HTTP ↗
2. http.Client ↗
3. http.Transport ↗
4. Диагностика сетевых ошибок ↗
5. http.Request ↗

Конец второй части курса "Твой Go"

1 урок
1. Что дальше? ↗