Чему вы научитесь
- Определять, уйдёт значение на стек или в кучу, и читать вывод escape-анализа go build -gcflags=-m
- Называть причины ухода в кучу и убирать лишние аллокации осознанно, а не наугад
- Объяснять модель планировщика GMP: work-stealing, sysmon и сетевой поллер, вытеснение, роль GOMAXPROCS
- Разбираться в работе сборщика мусора: трёхцветная маркировка, барьер записи, паузы STW, настройка GOGC и GOMEMLIMIT
- Видеть внутреннее устройство слайсов, мап и интерфейсов: заголовок слайса, реаллокация append, утечка backing array, itab
- Профилировать программы: четыре профиля pprof, чтение top с flat и cum, флеймграфы, net/http/pprof и трассировка
- Писать бенчмарки и измерять эффект оптимизации в аллокациях и наносекундах, а не на глаз
- Собрать капстоун: превратить «прожорливый» обработчик заказов в экономный и оформить разницу «было/стало» как кейс в портфолио
- Отвечать на вопросы собеседования по рантайму: отдельный модуль mock-интервью по памяти, GMP, GC, слайсам, мапам и интерфейсам
О курсе
Разберитесь, что делает Go, пока вы пишете код: escape-анализ и стек против кучи, планировщик GMP, сборщик мусора, устройство слайсов, мап и интерфейсов, профилирование через pprof. 292 задачи с автопроверкой в браузере на Go 1.26 — включая оптимизацию аллокаций с замером — и капстоун «было/стало» для портфолио. Для тех, кто идёт на middle+ и устал отвечать «не знаю» на вопросы про рантайм.
Для кого этот курс
Курс — для тех, кто пишет на Go и хочет понимать его рантайм.
- Мидлам и крепким джунам, которые готовятся к собеседованию, где будет секция про рантайм: escape, GMP, GC, слайсы и интерфейсы.
- Разработчикам, у которых сервис ест память и упирается в GC, а профилировать они не пробовали и не знают, с чего начать.
- Тем, кто пишет на Go давно, но принимает решения «указатель или значение», «слайс или мапа» по привычке, а не по устройству языка.
- Выпускникам курса «Go: конкурентность от и до», которым конкурентность уже понятна, а планировщик под ней — ещё нет.
Начальные требования
Что нужно:
- Уверенный Go: структуры, указатели, слайсы и мапы, интерфейсы, ошибки. Это курсы «Go с нуля» и «Go: идиоматичный код».
- Понимание горутин и каналов хотя бы на базовом уровне — курс «Go: конкурентность от и до» закрывает это полностью.
- Компьютер с браузером и интернетом.
Что НЕ нужно:
- Не нужно знать C или ассемблер: устройство рантайма объясняется на уровне модели, а не исходников runtime.
- Не нужно ставить профилировщик: задачи на чтение профилей и escape-анализа используют реальные выводы, приведённые прямо в условии.
- Не нужен опыт оптимизации: курс как раз учит измерять до и после, а не гадать.
- Не нужен курс по алгоритмам: речь про устройство языка, а не про сложность.
Преподаватели курса
Как проходит обучение
- Формат: 8 модулей, 40 уроков, 588 коротких шагов. Текстовые лекции с примерами на домене shopdb и разбором реальных артефактов рантайма, без видео.
- Практика: 74 % шагов — активные. 292 задачи на Go с автопроверкой и 142 интерактивных теста: предсказание «стек или куча», сокращение аллокаций, чтение pprof top и флеймграфов, сопоставление симптома и причины, числовые ответы по размеру и выравниванию структур.
- Проверка: скрытые тесты на движке Go 1.26.1. Корректность оптимизированного кода проверяется тестами, число аллокаций — через testing.AllocsPerRun: недостаточная оптимизация не проходит.
- Темп: свой, без дедлайнов. Доступ бессрочный, попыток неограниченно.
- Поддержка: комментарии под каждым шагом.
Ориентир нагрузки: при 7–9 часах в неделю курс проходится примерно за 6–7 недель; общий объём — около 47 часов.
Что вы получите
- Понимание рантайма Go на уровне, с которого можно объяснять решения: почему это в куче, почему тут пауза, почему append скопировал массив.
- Навык профилирования: снять профиль, прочитать top и флеймграф, найти узкое место и подтвердить улучшение бенчмарком.
- 292 решённые задачи с автопроверкой и 142 теста, включая работу с настоящими выводами escape-анализа и pprof.
- Капстоун-кейс «было/стало»: обработчик заказов с измеренным падением аллокаций — сильный артефакт в портфолио и готовая история для собеседования.
- Отдельный модуль mock-интервью по памяти, планировщику, GC, слайсам, мапам и интерфейсам.
- Бессрочный доступ и обновления, сертификат Stepik. Следующая ступень — «Go: gRPC, микросервисы и production» — https://stepik.org/course/297086.
Нагрузка
7–9 часов в неделю, 6–7 недель (общий объём ~47 часов)