Значок приложения Учить Go - Курс Кода

Учить Go - Курс Кода

Образование · Бесплатно · iOS & Android · CoddyKit

Учить Go - Курс Кода — Учебник по Golang с компилятором, детектором гонок и ежедневными задачами на телефоне

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

App Store — Скачать бесплатноGoogle Play — Скачать бесплатно
Цена
Бесплатно, обновление до Pro
Платформы
iOS и Android
Языки
22
Возрастной рейтинг
4+
Требуется
iOS 15.1 или новее
Главный экран траектории обучения Go с кнопкой «Начать первый урок», кольцом ежедневной цели и карточкой для запроса функцийОбзор курса Go Kickoff Concepts and Setup с индикатором прогресса, бесплатной группой первых уроков и кнопкой «Изменить курс»
51Курсы, от A1 до C1
-raceConcurrency Lab с детектором гонок
ЕжедневноНовая задача каждый день
Удалите ключевое слово go и увидите, как та же работа займёт втрое больше времени.

Именно это приложение первым делом предлагает сделать с Go: запустить три задачи по 120 мс, увидеть, что общее время оказалось намного меньше 360 мс, а затем убрать единственное ключевое слово, благодаря которому они выполнялись параллельно. Вся идея языка заключена в одном слове, и приложение позволяет почувствовать это ещё до объяснения.

Что это

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

В приложении

Как это выглядит

Главный экран траектории обучения Go с кнопкой «Начать первый урок», кольцом ежедневной цели и карточкой для запроса функций
Траектория обученияНа главном экране открывается траектория обучения с кнопкой запуска, ежедневной целью и ссылкой на Skill Hub.
Обзор курса Go Kickoff Concepts and Setup с индикатором прогресса, бесплатной группой первых уроков и кнопкой «Изменить курс»
Обзор курсаПервый курс, Go Kickoff: Concepts & Setup, отмечен как бесплатный и состоит из трёх коротких уроков.
Редактор кода с программой на Go: package main, import fmt и вызовы fmt.Println рядом с уроком о первой программе
Редактор кодаУрок «Ваша первая программа» с открытым редактором кода и файлом package main, а также кнопкой запуска.
Экран чата с AI и готовыми запросами: объяснить ключевые концепции, дать советы, устроить проверку знаний и создать план обучения
AI MentorЧат начинается с четырёх готовых запросов: объяснить ключевые концепции, дать советы, устроить проверку знаний или составить план обучения.
Главный экран в светлой теме с траекторией обучения, ежедневной целью и Skill Hub
Главный экранТот же главный экран в светлой теме: под активным курсом находятся ежедневная цель и Skill Hub.

Курс

Что входит в курс Go

51 курс и 203 урока из собственного списка курсов приложения: уровни от A1 до C1, а содержание — от первой программы до профилирования и сборщика мусора.

  1. Знакомство с Go и основы

    Что такое Go и зачем Google создала этот язык, затем переменные, типы и нулевые значения, константы и управление потоком выполнения с помощью if, for и switch.

  2. Функции, срезы и maps

    Функции с несколькими возвращаемыми значениями, defer и variadic-параметры, массивы, срезы и maps, а также строки, форматирование с помощью fmt и пакет time.

  3. Structs, pointers и interfaces

    Structs и методы, value- и pointer-получатели, pointers, неявные interfaces и duck typing, а также embedding для композиции.

  4. Ошибки, пакеты и стандартная библиотека

    Явная обработка ошибок с errors.Is и errors.As, пакеты и модули, работа с файлами и JSON, регулярные выражения, сортировка и буферизованный ввод-вывод.

  5. Goroutines, channels и sync

    Основы goroutine и channel, select и паттерны работы с channels, mutex и пакет sync, context для отмены, а также пулы workers и pipelines.

  6. HTTP, REST и базы данных

    HTTP-серверы и клиенты с net/http, REST API с Gin, паттерны middleware, database/sql с sqlx и pgx, GORM и WebSockets.

  7. Тестирование, инструменты и развёртывание

    Тесты в формате таблиц и подтесты, приложения командной строки с Cobra, конфигурация с Viper, структурированное логирование с slog и многоэтапные сборки Docker.

  8. Продвинутый Go

    Generics с type parameters и constraints, бенчмаркинг и профилирование с pprof, gRPC с Protocol Buffers, reflection и memory model.

Как это работает

Как проходит занятие

Каждый урок — это короткий текст, за которым следует запуск кода, поэтому идея и практика осваиваются за один подход.

  1. Прочитайте короткий урок

    Откройте курс и пройдите один урок за несколько минут: теория изложена простым языком и сопровождается небольшим примером, например программой package main и fmt.Println из самого первого урока.

  2. Запустите код в настоящей цепочке инструментов Go

    Редактор отправляет вашу программу в Go runner и показывает результат. gofmt, go vet и детектор гонок работают так же, поэтому при нажатии кнопки запуска приложению требуется подключение, а при сбое программы вы увидите понятное объяснение ошибки.

  3. Закрепите материал с другой стороны

    После изучения темы пройдите тест, решите ежедневную задачу, разберите задачу на конкурентность по шагам или попросите 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+, поэтому материалы не содержат возрастных ограничений.

Начать

Напишите свою первую горутину уже сегодня

Начните бесплатно на iOS и Android — на 22 языках.

App Store — Скачать бесплатноGoogle Play — Скачать бесплатно
Последняя проверка · Опубликовано CoddyKit · Политика конфиденциальности
Доступно на iOS и Android.