Чему вы научитесь
- Писать методы и осознанно выбирать receiver — value или pointer — под конкретную задачу
- Разбираться в наборах методов и адресуемости и точно отвечать, удовлетворяет ли тип интерфейсу
- Проектировать интерфейсы по-гошному: неявная реализация, маленькие интерфейсы, «принимай интерфейсы, возвращай структуры»
- Безопасно работать с any, type assertion и type switch через идиому v, ok
- Реализовывать интерфейсы стандартной библиотеки — Stringer, sort.Interface — и встраиваться в экосистему языка
- Обрабатывать ошибки идиоматично: обёртка через %w, errors.Is и errors.As, sentinel- и типизированные ошибки, errors.Join, panic/recover
- Не попадаться в ловушку nil-интерфейса против nil-значения — классический вопрос собеседования
- Писать дженерики 1.18+: параметры типов, constraints, comparable и ~, Map/Filter/Reduce, дженерик-контейнеры
- Собрать капстоун — дженерик-репозиторий Store[T] с типизированными ошибками — артефакт в портфолио
О курсе
Один и тот же код на Go можно написать «как на Java» — и получить на ревью десяток замечаний, — а можно идиоматично: через методы, неявные интерфейсы, ошибки-значения и дженерики. Этот курс учит второму способу.
Чем этот курс отличается
Мы не повторяем Курс 0: синтаксис, слайсы, мапы, структуры и функции считаются известными. Вместо этого — четыре темы, которые отделяют джуна от «пишет как гофер»: методы, интерфейсы, ошибки, дженерики. Дженерикам отведён отдельный модуль: на практике это то, чем сегодня пишут типобезопасные утилиты и контейнеры вместо копипасты и any. Задачи проверяются по поведению — ошибка ловится через errors.Is/errors.As, интерфейс через фактическое удовлетворение, дженерик через инстанцирование на нескольких типах, — а не сравнением строк вывода.
Ваш путь по курсу
Сначала вы пишете методы и разбираетесь с receiver: почему value-метод не меняет структуру и когда это ловушка. Затем интерфейсы: неявная реализация, композиция, type switch, Stringer и sort.Interface, nil-интерфейс. Дальше ошибки: error как значение, обёртка %w, errors.Is/As, sentinel- и типизированные ошибки, errors.Join и границы слоёв, panic/recover и где он уместен. Потом дженерики: параметры типов, constraints и ~-аппроксимация, Map/Filter/Reduce, Stack/Set/Queue, вывод типов — и отдельный урок про то, когда дженерики НЕ нужны. В финале вы собираете капстоун — репозиторий Store[T Entity] для сущностей shopdb: одно типобезопасное хранилище на товары, пользователей и заказы, с ErrNotFound и ErrDuplicate. Завершает курс модуль итогового разбора по всем четырём темам.
Сколько здесь практики
378 шагов, из них 73 % — активные: 190 задач на Go с автопроверкой и 84 интерактивных теста. Формат задач — «допиши тело по готовой сигнатуре»: лестница подсказок из 1–3 ступеней, эталонное решение открывается после сдачи, число попыток не ограничено. Каждый модуль заканчивается практикумом, капстоун — автопроверяемый артефакт.
С чего начать
Первый практический урок открыт бесплатно — напишите первый метод и получите зелёную галочку до покупки. Если базового Go ещё нет, начните с бесплатного курса «Go с нуля: основы и первые шаги».
Для кого этот курс
Курс — для тех, кто уже пишет на Go и хочет писать идиоматично.
- Джунам на Go, которые получают на код-ревью замечания «это не по-гошному» и хотят перестать их получать.
- Тем, кто перешёл в Go с Java, C#, Python или JavaScript и пишет на Go в стиле прежнего языка: наследование вместо композиции, исключения вместо ошибок-значений.
- Готовящимся к собеседованию: интерфейсы, method set, nil-интерфейс, errors.Is/As и дженерики — стандартная секция вопросов.
- Выпускникам курса «Go с нуля» и всем, кто знает синтаксис Go, но ни разу не писал дженерик и не заворачивал ошибку через %w.
Начальные требования
Что нужно:
- Базовый Go: переменные и типы, if/switch, слайсы и мапы, структуры, указатели, функции. Всё это даёт бесплатный курс линейки «Go с нуля: основы и первые шаги».
- Компьютер с браузером и интернетом. Заниматься можно с телефона.
Что НЕ нужно:
- Не нужен опыт коммерческой разработки: достаточно уметь писать и запускать небольшие программы.
- Не нужно ничего устанавливать: код пишется и проверяется на платформе, движок — Go 1.26.
- Не нужны знания других языков и теории типов: constraints и параметры типов вводятся с нуля, на примерах shopdb.
- Не нужно бояться дженериков: модуль про них начинается с задач в одну строку.
Как проходит обучение
- Формат: 7 модулей, 35 уроков, 378 коротких шагов. Текстовые лекции с примерами на сквозном домене shopdb и разбором типичных ошибок, без видео — читается с телефона.
- Практика: 73 % шагов — активные. 190 задач на Go с автопроверкой и 84 интерактивных теста (выбор ответа, сопоставление, свободный ответ, число, порядок шагов).
- Проверка: скрытые тесты на движке Go 1.26.1, вердикт мгновенно, попыток неограниченно. Ошибки проверяются через errors.Is/As, интерфейсы — по фактическому удовлетворению, дженерики — инстанцированием на нескольких типах.
- Темп: свой, без дедлайнов. Доступ к курсу бессрочный.
- Поддержка: комментарии под каждым шагом, разбор ошибок и вопросы к автору.
Ориентир нагрузки: при 6–8 часах в неделю курс проходится примерно за 4–5 недель; общий объём — около 30 часов.
Программа курса
В курс входят
- 35 уроков
- 84 теста
- 190 интерактивных задач
Наши преподаватели
Сертификат
Что вы получаете
- Навык писать код, который проходит ревью: правильный receiver, маленькие интерфейсы, ошибки-значения с контекстом, дженерики вместо копипасты.
- 190 решённых задач с автопроверкой и 84 теста на сквозном домене интернет-магазина.
- Капстоун-артефакт: дженерик-репозиторий Store[T] с типизированными ошибками — готовый кусок кода для портфолио и для разговора на собеседовании.
- Модуль итогового разбора по методам, интерфейсам, ошибкам и дженерикам — материал для повторения перед интервью.
- Бессрочный доступ к материалам и обновлениям курса, сертификат Stepik по итогам прохождения.
- Мост дальше: «Go: конкурентность от и до — горутины, каналы, sync, context» — https://stepik.org/course/296264.