Мы используем cookie для стабильной работы сервиса. Подробнее

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

ФорматОнлайн
Объём20 занятий
О курсе

Подробнее

Это второй курс из серии "Твой Go". Серия создана для разработчиков, которые хотят получить глубокое понимание языка, изучая его внутреннее устройство. Почему этот курс: На рынке много материалов по основам Go, но почти нет курсов, которые разбирают углубленно нюансы языка, устройство интерфейсов и map в памяти или асинхронных паттернов с точки зрения рантайма. Этот курс заполняет этот пробел. Материал основан на опыте разработки production-систем и преподавания Go, а не на пересказе документации. Что внутри: Курс состоит из более чем 50 часов видео, в котором нет воды, исключительно разборы и практические задачи. Из основных тем: Внутреннее устройство слайсов, интерфейсов и мап (Swiss Tables). Работа со временем. Файловый I/O. JSON. Сериализация, потоковая обработка, оптимизация. Асинхронность, горутины, каналы, sync-пакеты на практике. Паттерны конкурентности, начиная с worker pool, заканчивая graceful shutdown. Разработка CLI-приложений - структура, флаги, конфигурация. HTTP, серверы, клиенты, middleware. Особенности: Каждая тема объясняется как в плане теории, внутренняя реализация, так и со стороны практического применения. Вы не просто учите API, вы начнете понимать, почему оно работает именно так. Формат работы: Видеолекции с демонстрацией кода, практические задания с автоматической проверкой, тесты и разбор типичных ошибок. Поддержка и обсуждения - в закрытом Telegram-сообществе. Подробная информация по курсам на сайте: https://progskill.ru/ 
Требования

Что нужно для старта

  • Для успешного освоения курса необходимо:
  • Знание синтаксиса Go и стандартной библиотеки.
  • Прохождение базового курса по Go (или эквивалентные знания).
  • Если сомневаетесь - начните с базового курса по Go.
Результат

Что вы получите

  • Принимать решения исходя из своих знаний устройства языка.
  • Анализировать поведение рантайма.
  • Лучше понимать реальную стоимость аллокаций.
  • Работать с внутренней структурой слайсов, интерфейсов и новых map (на Swiss Tables).
  • Проектировать эффективную асинхронность.
  • Применять паттерны конкурентности не по шаблонам из статей, а исходя из задач системы, чтобы не было в приложении никаких гонок данных и утечек горутин.
  • Строить HTTP-серверы и клиенты.
  • Создавать CLI-приложения и работать с JSON/файлами так, как это делается в реальных высоконагруженных проектах.
  • Работать со временем и данными корректно.
  • Осознанно выбирать абстракции, сравнивать подходы и понимать trade-offs между удобством кода и его эффективностью на уровне памяти и CPU.
  • Мыслить как инженер, не просто писать работающий код, а создавать системы, предсказуемые под нагрузкой и поддерживаемые в долгосрочной перспективе.
Аудитория

Для кого этот курс

  • Курс предназначен для начинающих Go-разработчиков, которые хотят расти и работать с серьезными приложениями, backend-системами.
  • Вам этот курс нужен,:
  • Вы только начали изучать Go, или пишете на Go 1+ год, но чувствуете, что не понимаете, что происходит "под капотом", и хотите устранить этот пробел.
  • Вы планируете переходить в команду, работающую с высоконагруженными сервисами, микросервисами или инфраструктурными инструментами.
  • Вы столкнулись с проблемами производительности, гонками данных или необъяснимым поведением кода и хотите научиться диагностировать их системно.
  • Вы прошли базовый курс по Go и ищете логичное продолжение без повторения основ.
  • Вы готовитесь к собеседованиям на позиции Go Developer и хотите уверенно отвечать на вопросы про runtime, память и конкурентность.
  • Курс подойдет и новичкам, которые ничего не понимают в программировании, но вам придется начать с базового курса, где будет вводный материал по синтаксису.
Содержание

Программа курса

20 занятий
№ТемаЧто внутри
01Слайсы

- Введение
- Структура слайса
- Как работает append()
- Нюансы append()
- Подслайсы
- Неожиданные мутации

02Big O

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

03Хеш-таблица

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

04map

- Введение
- Идея swiss tables
- hash
- Каталог и расширяемое хеширование
- Таблицы (Swiss tables)
- Группы
- Поиск элемента и пробирование
- CRUD в map
- Нюансы map
- Заключение

05Интерфейсы

- Устройство интерфейсов
- Таблицы методов (itab)
- Интерфейсы, nil и производительность
- Использование интерфейсов

06Время - time

- Основы времени
- Арифметика времени
- Форматирование и парсинг времени
- Временные зоны
- Monotonic и Wall Time
- Таймеры и задержки
- DST, високосные секунды и другие подводные камни

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

- Введение в работу с файлами
- Ручное управление файлом
- Операции с *os.File
- Пример: чтение конфигурации
- Работа с большими файлами
- bufio
- Реализуем логику head
- Пути и работа с директориями
- Directory (Path) Traversal
- Рекурсивный обход файловой системы
- Права доступа, метаданные и временные файлы
- Атомарная запись
- Практика: реализуем tail
- Стандартные операции над файлами

08JSON

- Что такое JSON
- Основы JSON
- omitempty и omitzero
- MarshalJSON и UnmarshalJSON
- Вложенные структуры, слайсы, мапы
- Динамический JSON
- Валидация в UnmarshalJSON
- Streaming и работа с большими данными
- Циклические ссылки
- encoding/json/v2
- stepik

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

- Горутины и GMP
- Как устроен GMP
- Горутины
- Каналы
- Нюансы каналов
- Практика с каналами
- select
- Таймеры и таймауты

10Контекст

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

11Сигналы

- Работа с сигналами
- Graceful shutdown

12Пакет sync

- Введение в пакет sync
- sync.Mutex
- sync.RWMutex
- sync.WaitGroup
- sync.Once
- sync.Cond
- sync.Map
- sync.Pool
- errgroup
- Что выбрать?

13Пакет atomic

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

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

- Graceful shutdown
- Pipeline
- Worker Pool
- Fan-Out/Fan-In
- Resource Pool
- Circuit Breaker
- Rate Limiting
- Pub/Sub
- Prioritized Select

15Задачи по конкурентности

- Семафор
- Идемпотентный закрыватель каналов
- Паттерны And и Or
- Неблокирующая передача данных
- Window Buffer
- Паттерн Мост (Bridge)
- Динамический Fan-In
- Паттерн First-Of
- Singleflight
- Собственный errgroup
- Паттерн Барьер
- Мини-оркестратор с откатом
- Worker Pool с динамическим масштабированием
- Диспетчер нетраннера

16CLI

- Введение в CLI-приложения
- Цветной вывод и индикаторы прогресса
- Стандартный пакет flag
- Пакет pflag
- Библиотека urfave/cli
- Библиотека Cobra и Viper
- Интерактивные режимы (REPL)

17Теория HTTP

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

18HTTP-сервер

- Основы HTTP-сервера
- Регистрация обработчиков
- Запуск сервера
- Заполнение обработчиков
- Добавляем log/slog
- Роутер
- Роутинг в http.ServeMux
- Убираем глобальный логгер
- Middleware
- Context и цепочки middleware
- Настройка HTTP-сервера
- Чтение данных из HTTP-запроса
- Раздача статических файлов
- Загрузка файлов
- Множественная загрузка файлов
- Заключение

19HTTP-клиент

- Простые запросы HTTP
- http.Client
- http.Transport
- Диагностика сетевых ошибок
- http.Request

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

- Что дальше?

01Слайсы

- Введение
- Структура слайса
- Как работает append()
- Нюансы append()
- Подслайсы
- Неожиданные мутации

02Big O

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

03Хеш-таблица

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

04map

- Введение
- Идея swiss tables
- hash
- Каталог и расширяемое хеширование
- Таблицы (Swiss tables)
- Группы
- Поиск элемента и пробирование
- CRUD в map
- Нюансы map
- Заключение

05Интерфейсы

- Устройство интерфейсов
- Таблицы методов (itab)
- Интерфейсы, nil и производительность
- Использование интерфейсов

06Время - time

- Основы времени
- Арифметика времени
- Форматирование и парсинг времени
- Временные зоны
- Monotonic и Wall Time
- Таймеры и задержки
- DST, високосные секунды и другие подводные камни

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

- Введение в работу с файлами
- Ручное управление файлом
- Операции с *os.File
- Пример: чтение конфигурации
- Работа с большими файлами
- bufio
- Реализуем логику head
- Пути и работа с директориями
- Directory (Path) Traversal
- Рекурсивный обход файловой системы
- Права доступа, метаданные и временные файлы
- Атомарная запись
- Практика: реализуем tail
- Стандартные операции над файлами

08JSON

- Что такое JSON
- Основы JSON
- omitempty и omitzero
- MarshalJSON и UnmarshalJSON
- Вложенные структуры, слайсы, мапы
- Динамический JSON
- Валидация в UnmarshalJSON
- Streaming и работа с большими данными
- Циклические ссылки
- encoding/json/v2
- stepik

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

- Горутины и GMP
- Как устроен GMP
- Горутины
- Каналы
- Нюансы каналов
- Практика с каналами
- select
- Таймеры и таймауты

10Контекст

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

11Сигналы

- Работа с сигналами
- Graceful shutdown

12Пакет sync

- Введение в пакет sync
- sync.Mutex
- sync.RWMutex
- sync.WaitGroup
- sync.Once
- sync.Cond
- sync.Map
- sync.Pool
- errgroup
- Что выбрать?

13Пакет atomic

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

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

- Graceful shutdown
- Pipeline
- Worker Pool
- Fan-Out/Fan-In
- Resource Pool
- Circuit Breaker
- Rate Limiting
- Pub/Sub
- Prioritized Select

15Задачи по конкурентности

- Семафор
- Идемпотентный закрыватель каналов
- Паттерны And и Or
- Неблокирующая передача данных
- Window Buffer
- Паттерн Мост (Bridge)
- Динамический Fan-In
- Паттерн First-Of
- Singleflight
- Собственный errgroup
- Паттерн Барьер
- Мини-оркестратор с откатом
- Worker Pool с динамическим масштабированием
- Диспетчер нетраннера

16CLI

- Введение в CLI-приложения
- Цветной вывод и индикаторы прогресса
- Стандартный пакет flag
- Пакет pflag
- Библиотека urfave/cli
- Библиотека Cobra и Viper
- Интерактивные режимы (REPL)

17Теория HTTP

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

18HTTP-сервер

- Основы HTTP-сервера
- Регистрация обработчиков
- Запуск сервера
- Заполнение обработчиков
- Добавляем log/slog
- Роутер
- Роутинг в http.ServeMux
- Убираем глобальный логгер
- Middleware
- Context и цепочки middleware
- Настройка HTTP-сервера
- Чтение данных из HTTP-запроса
- Раздача статических файлов
- Загрузка файлов
- Множественная загрузка файлов
- Заключение

19HTTP-клиент

- Простые запросы HTTP
- http.Client
- http.Transport
- Диагностика сетевых ошибок
- http.Request

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

- Что дальше?

Организатор

Автор курса

StepikStepik
Stepik — образовательная платформа и конструктор онлайн-курсов. Мы разрабатываем алгоритмы адаптивного обучения, сотрудничаем с авторами MOOC, помогаем в проведении олимпиад и программ переподготовки. Наша цель — сделать образование открытым и удобным. Stepik — широко известная российская образовательная платформа, основанная в 2013 году. На Stepik зарегистрировано более миллиона пользователей из России и стран СНГ. В настоящее время на Stepik представлены несколько тысяч учебных курсов на самые разные темы.
Подробнее об авторе
Мнения учеников

Отзывы о курсе

Оставьте отзыв

Расскажите о качестве обучения, поддержке и результате. Это поможет другим выбрать организацию осознанно.

Напишите ваш коментарий, не менее 30 символов

Нажимая кнопку, вы даете согласие на обработку персональных данных

Оставьте заявку

Консультант ответит на вопросы о курсе «Твой Golang - Продвинутый» и поможет разобраться в деталях обучения.

Комментарий ...

Нажимая кнопку, вы даете согласие на обработку персональных данных

Информация обновлена 14 сентября 2026 г.

Продолжить выбор

Похожие курсы

GOLANG NINJA. Искусство работы с ошибками
Курс не имеет дедлайнов, можно проходить в удобном для вас темпе
GOLANG NINJA. Искусство работы с ошибками

Данный курс является первой частью специализации "Искусство работы с ошибками и безмолвной паники в Go". Что такого особенного можно рассказать про ошибки? Мы считаем, что грамотн…

Онлайн9 занятийПродвинутый
22 529 ₽
Программа: Твой JavaScript
Программа: Твой JavaScript

Цель курса - дать вам исчерпывающее понимание JavaScript. Мы не обещаем сделать из вас сеньора за две недели, это сказки. Наша задача - предоставить самую подробную и глубокую баз…

Онлайн21 занятий
4 250 ₽
Основы C#
Основы C#

Курс несомненно подойдёт начинающим разработчикам, который хотят освоить современный и востребованный язык программирования. Курс мы начнём с изучения основ - встроенных в язык ти…

Онлайн10 занятий
3 999 ₽
Профессиональная переподготовка «Инженер-программист станков ЧПУ»
−8%256 часов
Профессиональная переподготовка «Инженер-программист станков ЧПУ»

▶️ Профессиональная переподготовка «Инженер-программист станков ЧПУ» с выдачей диплома. Дистанционное (онлайн) обучение в учебном центре «НЦПО». 🔥Обучение в рассрочку от 1320 руб.…

Онлайн3 занятий
Домашние заданияИнтерактивные тренажёры+3
17 250 ₽−8%
15 850 ₽от 1 320 ₽/мес на 12 мес.
Начать без затрат

Бесплатные курсы

Python для решения практических задач
Бесплатно
Python для решения практических задач

Научились решать простые задачи на питоне, но не можете понять, как сделать что-то полезное? Наш курс научит вас правильно гуглить! На примерах задач сбора данных (Data Scraping)…

Онлайн5 занятий
Бесплатно
Python для геймеров: базовый курс на игровых примерах
Бесплатно4 часа в неделю
Python для геймеров: базовый курс на игровых примерах

Здесь не будет сложных задач «про шахматы»! Здесь не будет абстрактных задач и сложных математических вычислений. Зато есть: теория простым и понятным языком игровые механики логи…

Онлайн12 занятий
Бесплатно
Claude Code с нуля до реальных задач
Бесплатно1 месяц
Claude Code с нуля до реальных задач

Вы разовьёте аналитическое мышление, научитесь искать уязвимости и обеспечивать безопасность IT-систем. Освоите востребованную профессию даже с нулевым опытом в IT. Программа курс…

Онлайн
Бесплатноот 11 647 ₽/мес