Учить Go - Курс Кода
Учить Go - Курс Кода — Учебник по Golang с компилятором, детектором гонок и ежедневными задачами на телефоне
Учить Go - Курс Кода — бесплатный учебник по Golang для начинающих и работающих разработчиков на iOS и Android, с компилятором и редактором Go, который запускает ваш код в настоящей цепочке инструментов Go (требуется подключение к интернету). Проверяйте код с помощью gofmt, go vet и детектора гонок и проходите 51 курс — от первого fmt.Println до горутин, REST API и gRPC, а AI Mentor поможет с тем, что не удаётся понять.
- Цена
- Бесплатно, обновление до Pro
- Платформы
- iOS и Android
- Языки
- 22
- Возрастной рейтинг
- 4+
- Требуется
- iOS 15.1 или новее


Удалите ключевое слово go и увидите, как та же работа займёт втрое больше времени.
Именно это приложение первым делом предлагает сделать с Go: запустить три задачи по 120 мс, увидеть, что общее время оказалось намного меньше 360 мс, а затем убрать единственное ключевое слово, благодаря которому они выполнялись параллельно. Вся идея языка заключена в одном слове, и приложение позволяет почувствовать это ещё до объяснения.
Что это
Учить Go - Курс Кода — бесплатное приложение для iOS и Android, с которым можно изучать Go — компилируемый язык, лежащий в основе значительной части современных облачных и серверных программ. В приложении 51 курс и 203 урока — от начального до продвинутого уровня, редактор кода, запускающий программы в настоящей цепочке инструментов Go, ежедневная задача, Concurrency Lab с настоящим детектором гонок и пошаговый трек, в котором вы создадите собственное HTTP-ядро. AI Mentor отвечает на вопросы по любому уроку.
В приложении
Как это выглядит





Курс
Что входит в курс Go
51 курс и 203 урока из собственного списка курсов приложения: уровни от A1 до C1, а содержание — от первой программы до профилирования и сборщика мусора.
Знакомство с Go и основы
Что такое Go и зачем Google создала этот язык, затем переменные, типы и нулевые значения, константы и управление потоком выполнения с помощью if, for и switch.
Функции, срезы и maps
Функции с несколькими возвращаемыми значениями, defer и variadic-параметры, массивы, срезы и maps, а также строки, форматирование с помощью fmt и пакет time.
Structs, pointers и interfaces
Structs и методы, value- и pointer-получатели, pointers, неявные interfaces и duck typing, а также embedding для композиции.
Ошибки, пакеты и стандартная библиотека
Явная обработка ошибок с errors.Is и errors.As, пакеты и модули, работа с файлами и JSON, регулярные выражения, сортировка и буферизованный ввод-вывод.
Goroutines, channels и sync
Основы goroutine и channel, select и паттерны работы с channels, mutex и пакет sync, context для отмены, а также пулы workers и pipelines.
HTTP, REST и базы данных
HTTP-серверы и клиенты с net/http, REST API с Gin, паттерны middleware, database/sql с sqlx и pgx, GORM и WebSockets.
Тестирование, инструменты и развёртывание
Тесты в формате таблиц и подтесты, приложения командной строки с Cobra, конфигурация с Viper, структурированное логирование с slog и многоэтапные сборки Docker.
Продвинутый Go
Generics с type parameters и constraints, бенчмаркинг и профилирование с pprof, gRPC с Protocol Buffers, reflection и memory model.
Как это работает
Как проходит занятие
Каждый урок — это короткий текст, за которым следует запуск кода, поэтому идея и практика осваиваются за один подход.
Прочитайте короткий урок
Откройте курс и пройдите один урок за несколько минут: теория изложена простым языком и сопровождается небольшим примером, например программой package main и fmt.Println из самого первого урока.
Запустите код в настоящей цепочке инструментов Go
Редактор отправляет вашу программу в Go runner и показывает результат. gofmt, go vet и детектор гонок работают так же, поэтому при нажатии кнопки запуска приложению требуется подключение, а при сбое программы вы увидите понятное объяснение ошибки.
Закрепите материал с другой стороны
После изучения темы пройдите тест, решите ежедневную задачу, разберите задачу на конкурентность по шагам или попросите AI Mentor устроить вам проверку. Каждый формат рассматривает ту же идею по-разному — именно поэтому она запоминается.
Что внутри
Что входит в приложение
51
Курсы, от A1 до C1
203 урока в 51 курсе: от основ Go, срезов и map до интерфейсов, обработки ошибок, горутин, net/http, Gin, работы с базами данных, развёртывания в Docker, gRPC и сборщика мусора.
-race
Concurrency Lab с детектором гонок
Шесть интерактивных задач охватывают две горутины в одном канале, рукопожатие без буферизации, распределение работы через WaitGroup, счётчик с потерей обновлений, map с двумя записывающими горутинами и взаимную блокировку. Вы также можете запускать собственный код с детектором гонок — бесплатно и без дневного лимита.
Ежедневно
Новая задача каждый день
Задача на Go, проверяемая по таблице тестовых случаев, включая скрытые, с эталонным объяснением после выполнения. Ежедневная задача бесплатна для всех; Pro открывает полную библиотеку, эталонные решения и объяснения.
Доктор
Go Doctor
Проверьте, переписал бы gofmt ваш файл, и примените форматирование, запустите go vet для поиска проблем, а с Pro спросите у escape analysis компилятора, почему значение размещается в памяти. Форматирование не ограничено, а в бесплатном плане go vet можно запускать не более трёх раз в день.
7 шагов
Создайте собственное HTTP-ядро
Пошаговый трек, в котором вы самостоятельно напишете запрос, ответ, обработчики в виде функций, маршрутизацию, параметры пути, middleware и JSON с обёрнутыми ошибками — по одному проверяемому шагу за раз.
AI
AI Mentor и пробное собеседование
Попросите AI Mentor объяснить концепцию, составить для вас план обучения или устроить проверку. На пробном собеседовании вам зададут пять вопросов по Go для уровня junior, middle или senior и оценят ответы; одно оценочное собеседование в неделю доступно бесплатно.
Повторение
Go Recall и Go by Example
Короткие карточки «что это выведет?» о классических тонкостях, таких как порядок defer, nil map и совместное использование памяти при append, а также интерактивные фрагменты стандартной библиотеки, которые можно запускать и редактировать.
Обзор
Зачем изучать Go для backend-разработки и чем он отличается?
Go — статически типизированный компилируемый язык, созданный в Google и широко используемый для веб-сервисов, инструментов командной строки и облачной инфраструктуры. Для backend-разработки он привлекателен тем, что многое уже встроено: конкурентность — часть языка, стандартная библиотека покрывает большинство потребностей небольшого сервиса, а программа компилируется в единый бинарный файл, рядом с которым ничего не нужно устанавливать. Язык намеренно сделан небольшим: его легко читать, но новичкам приходится с самого начала привыкать к нескольким непривычным подходам.
Горутины и каналыконкурентность без необходимости управлять потоками
Горутина — это функция, запущенная с ключевым словом go, а канал — это канал, через который горутины передают значения. Вместе они заменяют большую часть написанного вручную кода для работы с потоками, поэтому конкурентность изучается на раннем этапе, а не откладывается до продвинутого уровня.
Ошибки — это значениябез исключений
Функция Go, которая может завершиться ошибкой, возвращает error как обычное второе значение, а вызывающий код сразу его проверяет. Это требует больше кода, чем блок try, зато каждый путь возникновения ошибки виден в читаемом вами коде.
Неявные интерфейсыутиная типизация с проверкой во время компиляции
Тип удовлетворяет интерфейсу, просто имея нужные методы — ничего объявлять не нужно. Это позволяет слабо связывать пакеты, но именно здесь скрывается один из классических сюрпризов Go: интерфейс, содержащий nil-указатель, сам nil не является.
Один бинарный файл и большая стандартная библиотекапочему развёртывание простое
Скомпилированная программа на Go превращается в один исполняемый файл, а такие пакеты, как net/http, encoding/json и database/sql, поставляются вместе с языком. Небольшому сервису часто не нужен сторонний фреймворк, поэтому Docker-образы программ на Go могут быть небольшими.
Подходит
Кому это подходит — а кому нет
Подойдёт, если вы
- Ищете курс Golang, который можно проходить короткими занятиями на телефоне
- Уже пишете на другом языке и хотите увидеть goroutines и channels в работе
- Стремитесь к роли в backend или cloud и хотите решать вопросы на собеседовании по Go с оценкой ответов
- Лучше учитесь на небольших упражнениях и карточках с каверзными моментами, чем по длинным видео
- Хотите проверять форматирование, результаты vet и data races в коде, который написали сами
Это не тот инструмент, если вы
- Вам нужно запускать программы с импортом net/http или использовать generics во встроенном runner, который работает в песочнице Go 1.13
- Хотите запускать код без подключения к интернету, потому что runner работает онлайн
- Ожидаете, что всё будет бесплатным: первый курс, ежедневная kata и ежедневный лимит AI Mentor бесплатны, а Pro открывает остальное
- Вам нужно создавать и выпускать большой сервис из множества packages, а для этого по-прежнему нужны ноутбук и полный toolchain
Вопросы
Часто задаваемые вопросы
Как лучше всего учить Golang на телефоне?
Короткие уроки в сочетании с запуском настоящего кода эффективнее одного чтения, а Go особенно хорошо осваивается на практике, потому что его лучшие возможности — goroutines и race detector — проявляются в поведении программы. Учить Go - Курс Кода объединяет уроки по несколько минут с редактором, ежедневной kata и Concurrency Lab. Начать можно бесплатно на iOS и Android; всего доступен 51 курс — от начального до продвинутого уровня.
Можно ли компилировать и запускать код Go на телефоне?
Да, при наличии подключения к интернету. Учить Go - Курс Кода отправляет вашу программу в Go runner и показывает результат, а тот же runner предоставляет gofmt, go vet и race detector. Код выполняется не на самом телефоне, поэтому при нажатии кнопки запуска нужно быть онлайн; кроме того, у runner есть ограничения, например небольшой объём доступной памяти и максимальный размер бинарного файла.
Поддерживает ли встроенный runner generics?
Пока нет. Runner в Учить Go - Курс Кода работает на Go 1.13, а generics появились в Go 1.18, поэтому программа с type parameters или ключевым словом any там не скомпилируется. Когда это происходит, приложение объясняет причину простым языком и предлагает старый вариант записи. Сам курс по generics всё равно доступен для чтения.
Что такое Go race detector и как приложение его использует?
Race detector сообщает, когда две goroutines обращаются к одной и той же памяти без блокировки между ними — об ошибке, которая проявляется лишь иногда. В Учить Go - Курс Кода Concurrency Lab запускает под контролем detector такие задачи, как обновление счётчика 200 goroutines, и позволяет добавить mutex и запустить проверку снова. Вы также можете вставить собственный код с goroutines и запустить его под detector.
Что такое kata в Go?
Kata — это небольшое целенаправленное упражнение, которое вы решаете с помощью кода, например корректное обращение со строкой, содержащей символы не ASCII, или оборачивание ошибки так, чтобы errors.Is по-прежнему мог её найти. Учить Go - Курс Кода предлагает новую ежедневную kata, проверяет вашу функцию на таблице случаев, включая скрытые, а затем объясняет идиому. Ежедневная kata бесплатна для всех.
Нужен ли опыт программирования, чтобы начать?
Нет. Учить Go - Курс Кода начинается с объяснения, что такое Go и зачем он был создан, затем переходя к переменным, типам и управлению потоком выполнения; каждая концепция сначала объясняется простым языком, а потом отрабатывается на практике. Опыт работы с другим языком поможет быстрее пройти начальные курсы, но первый курс рассчитан на тех, кто начинает с нуля.
Learn Go бесплатен?
Приложение можно бесплатно скачать. Бесплатными также являются первый курс, ежедневная kata, ежедневный лимит AI Mentor, неограниченные проверки gofmt, неограниченный запуск под race detector и несколько запусков go vet в день. Pro открывает все курсы, убирает рекламу, даёт неограниченный доступ к AI Mentor, а также открывает библиотеку kata и escape analysis.
Выдаётся ли сертификат в конце?
Да. После сдачи финального экзамена вы получаете сертификат о завершении курса. Он подтверждает проделанную работу и хорошо дополняет небольшой проект, о котором можно рассказать на собеседовании, но не является аккредитованной академической квалификацией.
Помогает ли Learn Go подготовиться к собеседованию по Golang?
Да. В пробном собеседовании задаются пять вопросов уровня junior, mid или senior — от различий между slices и arrays до того, что хранит значение interface во время выполнения, — а ваши ответы оцениваются с обратной связью. Карточки Go Recall помогают отработать типичные каверзные моменты, а слабые темы из собеседования добавляются в вашу колоду для повторения. Одно оцениваемое собеседование в неделю бесплатно.
Какие платформы и языки он поддерживает?
Учить Go - Курс Кода работает на iOS через App Store и на Android через Google Play, а интерфейс доступен на 22 языках. Приложение имеет рейтинг 4+, поэтому материалы не содержат возрастных ограничений.
Другие приложения CoddyKit
Доступно на iOS и Android.