Чему вы научитесь
- Писать методы и осознанно выбирать 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» к «я пишу как гофер»: методы и receiver, неявные интерфейсы, ошибки через errors.Is/As и дженерики 1.18+. 190 задач с автопроверкой в браузере на Go 1.26 и капстоун — дженерик-репозиторий Store[T] для интернет-магазина shopdb. Для тех, кто уже освоил базовый 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 часов.
Что вы получите
- Навык писать код, который проходит ревью: правильный receiver, маленькие интерфейсы, ошибки-значения с контекстом, дженерики вместо копипасты.
- 190 решённых задач с автопроверкой и 84 теста на сквозном домене интернет-магазина.
- Капстоун-артефакт: дженерик-репозиторий Store[T] с типизированными ошибками — готовый кусок кода для портфолио и для разговора на собеседовании.
- Модуль итогового разбора по методам, интерфейсам, ошибкам и дженерикам — материал для повторения перед интервью.
- Бессрочный доступ к материалам и обновлениям курса, сертификат Stepik по итогам прохождения.
- Мост дальше: «Go: конкурентность от и до — горутины, каналы, sync, context» — https://stepik.org/course/296264.
Нагрузка
6–8 часов в неделю, 4–5 недель на курс (общий объём ~30 часов)