Путь
Изучайте Go (Golang)
Изучайте Go (Golang) с нуля в бесплатном интерактивном онлайн-курсе. Освойте переменные, условия, циклы, функции, структуры данных и организацию проектов через практические задания, реальные проекты, подсказки ИИ и сертификат по завершении.
20,350+ codders записались
Этот путь включает
Помощь ИИ при написании кода
Практические интерактивные уроки
Аудио-озвучка к каждому уроку
Тесты для проверки знаний
Бесплатный сертификат о прохождении
Программа
3 разделов284 уроков256 задачи1,839 вопросов квиза01Раздел 1
Основы
Создайте прочную основу с основными понятиями и базовыми навыкамиНАЧАТЬ ОБУЧЕНИЕВведение в Go
4 уроков423- 01Что такое Go?Задача
- 02Hello WorldЗадачаКвизАудио
- 03PrintlnЗадачаКвизАудио
- 04Комментарии в GoЗадачаКвизАудио
Переменные и базовые типы данных
10 уроков1069- 01Что такое переменнаяЗадачаКвизАудио
- 02Вывод типов с помощью `:=`ЗадачаКвизАудио
- 03Целые числа (int)ЗадачаКвизАудио
- 04Числа с плавающей точкойЗадачаКвизАудио
- 05Логический тип (Booleans)ЗадачаКвизАудио
- 06СтрокиЗадачаКвизАудио
- 07Нулевые значения (Zero Values)ЗадачаКвизАудио
- 08КонстантыЗадачаКвизАудио
- 09Правила именованияЗадачаКвизАудио
- 10Итоги: переменные и типыЗадача
Базовые операторы
7 уроков744- 01Арифметические операторыЗадачаКвизАудио
- 02Оператор деленияЗадачаКвизАудио
- 03Оператор остатка от деленияЗадачаКвизАудио
- 04Оператор присваиванияЗадачаКвизАудио
- 05Комбинированные операторы присваиванияЗадачаКвизАудио
- 06Инкремент и декрементЗадачаКвизАудио
- 07Повторение — ВычисленияЗадача
Операторы сравнения и логические операторы
7 уроков742- 01Операторы сравнения — Часть 1ЗадачаКвизАудио
- 02Операторы сравнения — Часть 2ЗадачаКвизАудио
- 03Логический оператор ANDЗадачаКвизАудио
- 04Логический оператор ORЗадачаКвизАудио
- 05Логический оператор NOTЗадачаКвизАудио
- 06Основы приоритета операторовЗадачаКвизАудио
- 07Итоги: выполнение сравненийЗадача
Основы ввода-вывода
5 уроков532- 01Форматированный выводЗадачаКвизАудио
- 02Спецификаторы форматаЗадачаКвизАудио
- 03Вывод типовЗадачаКвизАудио
- 04Базовый ввод данных пользователемЗадачаКвизАудио
- 05Итоги: ввод и выводЗадача
Управление потоком: Условные конструкции
10 уроков1069- 01Оператор `if`ЗадачаКвизАудио
- 02Ключевое слово `else`ЗадачаКвизАудио
- 03Ключевое слово `else if`ЗадачаКвизАудио
- 04Затенение переменных в `if`ЗадачаКвизАудио
- 05Инициализация переменныхЗадачаКвизАудио
- 06Оператор `switch`ЗадачаКвизАудио
- 07Switch с выражениямиЗадачаКвизАудио
- 08Switch без выраженийЗадачаКвизАудио
- 09Ключевое слово `fallthrough`ЗадачаКвизАудио
- 10Итоги — Принятие решенийЗадача
Управляющие конструкции: Циклы
7 уроков743- 01Что такое цикл `for`ЗадачаКвизАудио
- 02Цикл `for` — основыЗадачаКвизАудио
- 03Цикл `for` — только условиеЗадачаКвизАудио
- 04Ключевое слово `break`ЗадачаКвизАудио
- 05Ключевое слово `continue`ЗадачаКвизАудио
- 06Вложенные циклыЗадачаКвизАудио
- 07Итоги — повторение действийЗадача
Функции
9 уроков962- 01Понимание функцийЗадачаКвизАудио
- 02Объявление функцииЗадачаКвизАудио
- 03Вызов функцийЗадачаКвизАудио
- 04Параметры функцииЗадачаКвизАудио
- 05Возврат одного значенияЗадачаКвизАудио
- 06Возврат нескольких значенийЗадачаКвизАудио
- 07Именованные возвращаемые значенияЗадачаКвизАудио
- 08Основы области видимости функцийЗадачаКвизАудио
- 09Итоги — создание переиспользуемого кодаЗадача
Указатели
7 уроков644- 01Что такое указатель?КвизАудио
- 02Объявление переменных-указателейЗадачаКвизАудио
- 03Оператор взятия адресаЗадачаКвизАудио
- 04Разыменование указателейЗадачаКвизАудио
- 05Использование указателей в функцияхЗадачаКвизАудио
- 06Нулевые указателиЗадачаКвизАудио
- 07Итоги: Понимание указателейЗадача
Составные типы: Массивы
7 уроков650- 01Введение в массивыКвизАудио
- 02Объявление массивовЗадачаКвизАудио
- 03Инициализация массивовЗадачаКвизАудио
- 04Доступ к элементам массиваЗадачаКвизАудио
- 05Длина массива с `len`ЗадачаКвизАудио
- 06Итерация по массивамЗадачаКвизАудио
- 07Многомерные массивыЗадачаКвизАудио
Составные типы: Срезы
10 уроков965- 01Введение в срезыКвизАудио
- 02Объявление литералов срезовЗадачаКвизАудио
- 03Создание срезов с помощью `make`ЗадачаКвизАудио
- 04Длина и емкость срезаЗадачаКвизАудио
- 05Доступ к элементам срезаЗадачаКвизАудио
- 06Добавление элементовЗадачаКвизАудио
- 07Получение срезов из существующих срезов/массивовЗадачаКвизАудио
- 08Итерация по срезамЗадачаКвизАудио
- 09Копирование срезовЗадачаКвизАудио
- 10Итоги: Динамические спискиЗадача
Составные типы: Карты (Maps)
10 уроков965- 01Введение в картыКвизАудио
- 02Объявление литералов картЗадачаКвизАудио
- 03Создание карт с помощью `make`ЗадачаКвизАудио
- 04Добавление и обновление пар ключ-значениеЗадачаКвизАудио
- 05Доступ к значениям картыЗадачаКвизАудио
- 06Проверка существования ключаЗадачаКвизАудио
- 07Удаление элементов картыЗадачаКвизАудио
- 08Длина картыЗадачаКвизАудио
- 09Итерация по картамЗадачаКвизАудио
- 10Итоги: хранилище ключ-значениеЗадача
Составные типы: Структуры
8 уроков854- 01Определение пользовательских типовЗадачаКвизАудио
- 02Создание экземпляров структурЗадачаКвизАудио
- 03Доступ к полям структурЗадачаКвизАудио
- 04Указатели на структурыЗадачаКвизАудио
- 05Инициализация структурЗадачаКвизАудио
- 06Вложенные структурыЗадачаКвизАудио
- 07Анонимные структурыЗадачаКвизАудио
- 08Итоги: Пользовательские структуры данныхЗадача
Основы обработки ошибок
8 уроков858- 01Концепция ошибокЗадачаКвизАудио
- 02Интерфейс `error`ЗадачаКвизАудио
- 03Функции, возвращающие ошибкиЗадачаКвизАудио
- 04Проверка ошибокЗадачаКвизАудио
- 05Создание простых ошибокЗадачаКвизАудио
- 06Создание форматированных ошибокЗадачаКвизАудио
- 07Основы обработки ошибокЗадачаКвизАудио
- 08Итоги — решение проблемЗадача
02Раздел 2
Логика и управление потоком
Освойте продвинутое программирование на Go с акцентом на структуры данных и управление потоком. Научитесь работать со сложными массивами, коллекциями, обработкой ошибок и управлением временем.НАЧАТЬ ОБУЧЕНИЕПродвинутое управление потоком выполнения
5 уроков528- 01Switch с использованием `fallthrough`ЗадачаКвиз
- 02Выход из вложенных цикловЗадачаКвиз
- 03Продолжение конкретного циклаЗадачаКвиз
- 04Оператор `goto`ЗадачаКвиз
- 05Итоги: Продвинутое управление цикламиЗадача
Структуры и методы
6 уроков439- 01Определение методов для структурЗадачаКвиз
- 02Получатели по значениюЗадачаКвиз
- 03Получатели по указателюЗадачаКвиз
- 04Выбор типа получателяКвиз
- 05Методы против функцийКвиз
- 06Итоги: поведение структурЗадача
Интерфейсы (Основы)
8 уроков757- 01Что такое интерфейс?Квиз
- 02Определение интерфейсаЗадачаКвиз
- 03Реализация интерфейсаЗадачаКвиз
- 04Использование интерфейсных типовЗадачаКвиз
- 05Пустой интерфейсЗадачаКвиз
- 06Утверждение типаЗадачаКвиз
- 07Переключатель типовЗадачаКвиз
- 08Итоги: Фигуры и поведениеЗадача
Проект: Простой список задач
Проект6 уроков1- 01Настройка проектаЗадача
- 02Добавление задачиПроект
- 03Просмотр всех задачПроект
- 04Завершение задачиПроект
- 05Удаление задачиПроект
- 06Собираем всё вместеПроект
Карты: подробный разбор
5 уроков432- 01Карты структурЗадачаКвиз
- 02Указатели как значения картЗадачаКвиз
- 03Проверка карт на nilЗадачаКвиз
- 04Сравнение картКвиз
- 05Итоги: счетчик частоты словЗадача
Идиоматичный Go: Множества
7 уроков648- 01Идиома множества в GoКвиз
- 02Создание множестваЗадачаКвиз
- 03Добавление в множествоЗадачаКвиз
- 04Проверка наличия элементаЗадачаКвиз
- 05Удаление из множестваЗадачаКвиз
- 06Итерация по множествуЗадачаКвиз
- 07Итоги — Уникальные имена пользователейЗадача
Углубленная обработка ошибок
7 уроков650- 01Пользовательские типы ошибокЗадачаКвиз
- 02Обертывание ошибок с помощью `%w`ЗадачаКвиз
- 03Распаковка с помощью `errors.Is`ЗадачаКвиз
- 04Распаковка с помощью `errors.As`ЗадачаКвиз
- 05Понимание `panic`Квиз
- 06Использование `recover`ЗадачаКвиз
- 07Итоги: Безопасное делениеЗадача
Проект: Простой учет товаров
Проект6 уроков1- 01Обзор проектаЗадача
- 02Проверка остатковПроект
- 03Добавление нового товараПроект
- 04Обновление количества товараПроект
- 05Создание отчетаПроект
- 06Объединение всех частейПроект
Пакеты и область видимости
7 уроков550- 01Что такое пакет?Квиз
- 02Экспортируемые и неэкспортируемые элементыЗадачаКвиз
- 03Создание простого пакетаЗадачаКвиз
- 04Псевдонимы пакетовЗадачаКвиз
- 05Пустой идентификатор `_`Квиз
- 06Функция `init`ЗадачаКвиз
- 07Итоги: создание утилитыЗадача
Работа со временем
8 уроков857- 01Получение текущего времениЗадачаКвиз
- 02Создание конкретного времениЗадачаКвиз
- 03Форматирование времениЗадачаКвиз
- 04Парсинг строк времениЗадачаКвиз
- 05Длительность времениЗадачаКвиз
- 06Арифметика времениЗадачаКвиз
- 07Ожидание и тикерыЗадачаКвиз
- 08Итоги — Простой таймерЗадача
Финальные испытания
3 уроков3- 01Базовый список контактовЗадача
- 02Простой валидатор чиселЗадача
- 03Сборщик уникальных элементовЗадача
03Раздел 3
Объектно-ориентированное программирование
Узнайте, как организовывать код с помощью классов, объектов и повторно используемых структурНАЧАТЬ ОБУЧЕНИЕОсновы ООП в Go
11 уроков1189- 01Внешние файлыЗадачаКвиз
- 02Рабочее пространство и модули GoЗадачаКвиз
- 03Пакеты и импортыЗадачаКвиз
- 04Экспортируемые и неэкспортируемые именаЗадачаКвиз
- 05Введение в ООП в GoЗадачаКвиз
- 06Структуры как классыЗадачаКвиз
- 07Определение методов структурЗадачаКвиз
- 08Получатели-указатели и получатели-значенияЗадачаКвиз
- 09Инициализация структурЗадачаКвиз
- 10Функции-конструкторыЗадачаКвиз
- 11Итоги — Простой калькуляторЗадача
Глубокое погружение в типы и структуры
7 уроков752- 01Базовые и составные типыЗадачаКвиз
- 02Определение пользовательских типовЗадачаКвиз
- 03Теги структурЗадачаКвиз
- 04Анонимные структурыЗадачаКвиз
- 05Вложенные структурыЗадачаКвиз
- 06Нулевые значения и значения по умолчаниюЗадачаКвиз
- 07Повторение — Контактная книгаЗадача
Указатели и память
6 уроков644- 01Основы указателей в GoЗадачаКвиз
- 02Указатели на структурыЗадачаКвиз
- 03Передача по значению и по ссылкеЗадачаКвиз
- 04Функция new()ЗадачаКвиз
- 05Сборка мусора в GoЗадачаКвиз
- 06Повторение: Конструктор связного спискаЗадача
Интерфейсы
9 уроков969- 01Введение в интерфейсыЗадачаКвиз
- 02Неявная реализацияЗадачаКвиз
- 03Интерфейс как контрактЗадачаКвиз
- 04Пустой интерфейс (any)ЗадачаКвиз
- 05Утверждение типаЗадачаКвиз
- 06Переключатель типовЗадачаКвиз
- 07Композиция интерфейсовЗадачаКвиз
- 08Интерфейсы Stringer и ErrorЗадачаКвиз
- 09Повторение: Калькулятор фигурЗадача
Композиция вместо наследования
7 уроков749- 01Почему в Go нет наследованияЗадачаКвиз
- 02Основы встраивания структурЗадачаКвиз
- 03Продвижение методовЗадачаКвиз
- 04Встраивание нескольких структурЗадачаКвиз
- 05Встраивание против агрегацииЗадачаКвиз
- 06Затенение встроенных методовЗадачаКвиз
- 07Итоги — Иерархия сотрудниковЗадача
Полиморфизм в Go
6 уроков643- 01Полиморфизм через интерфейсыЗадачаКвиз
- 02Утиная типизация в GoЗадачаКвиз
- 03Правила реализации интерфейсовЗадачаКвиз
- 04Полиморфные коллекцииЗадачаКвиз
- 05Внедрение зависимостейЗадачаКвиз
- 06Итоги — Обработчик платежейЗадача
Инкапсуляция
5 уроков536- 01Экспортируемые и неэкспортируемые поляЗадачаКвиз
- 02Инкапсуляция на уровне пакетовЗадачаКвиз
- 03Геттеры и сеттерыЗадачаКвиз
- 04Сокрытие информации в GoЗадачаКвиз
- 05Итоги — Записи о студентахЗадача
Обработка ошибок и ООП
7 уроков754- 01Интерфейс errorЗадачаКвиз
- 02Пользовательские типы ошибокЗадачаКвиз
- 03Обертывание ошибок (fmt.Errorf)ЗадачаКвиз
- 04Sentinel-ошибкиЗадачаКвиз
- 05errors.Is() и errors.As()ЗадачаКвиз
- 06Panic, Defer и RecoverЗадачаКвиз
- 07Итоги — Парсер файловЗадача
Конкурентность и ООП
8 уроков863- 01Основы горутинЗадачаКвиз
- 02Каналы и взаимодействиеЗадачаКвиз
- 03Буферизованные и небуферизованные каналыЗадачаКвиз
- 04Оператор selectЗадачаКвиз
- 05sync.Mutex и sync.RWMutexЗадачаКвиз
- 06sync.WaitGroupЗадачаКвиз
- 07Проектирование потокобезопасных структурЗадачаКвиз
- 08Повторение — Worker PoolЗадача
Обобщения (Generics) (Go 1.18+)
6 уроков645- 01Введение в GenericsЗадачаКвиз
- 02Параметры типовЗадачаКвиз
- 03Ограничения типовЗадачаКвиз
- 04Обобщенные структурыЗадачаКвиз
- 05Обходной путь для обобщенных методовЗадачаКвиз
- 06Итоги — Обобщенная коллекцияЗадача
Стандартная библиотека и ООП
6 уроков644- 01io.Reader и io.WriterЗадачаКвиз
- 02sort.InterfaceЗадачаКвиз
- 03Интерфейс fmt.StringerЗадачаКвиз
- 04encoding/json со структурамиЗадачаКвиз
- 05Интерфейс http.HandlerЗадачаКвиз
- 06Повторение: модели REST APIЗадача
Продвинутые концепции ООП
6 уроков655- 01Паттерн функциональных опцийЗадачаКвиз
- 02Паттерн Builder в GoЗадачаКвиз
- 03Цепочки вызовов методовЗадачаКвиз
- 04Псевдонимы и определения типовЗадачаКвиз
- 05Основы рефлексииЗадачаКвиз
- 06Обзор генерации кодаЗадачаКвиз
Паттерны проектирования. Часть 1
6 уроков651- 01Введение в паттерны проектированияЗадачаКвиз
- 02Паттерн SingletonЗадачаКвиз
- 03Паттерн FactoryЗадачаКвиз
- 04Паттерн Abstract FactoryЗадачаКвиз
- 05Паттерн ObserverЗадачаКвиз
- 06Паттерн StrategyЗадачаКвиз
Паттерны проектирования. Часть 2
7 уроков764- 01Паттерн КомандаЗадачаКвиз
- 02Паттерн АдаптерЗадачаКвиз
- 03Паттерн ДекораторЗадачаКвиз
- 04Паттерн Шаблонный методЗадачаКвиз
- 05Паттерн СостояниеЗадачаКвиз
- 06Паттерн КомпоновщикЗадачаКвиз
- 07Middleware как ДекораторЗадачаКвиз
Проект: Управление библиотекой
Проект7 уроков1- 01Обзор и структура проектаЗадача
- 02Структуры Book и UserПроект
- 03Система выдачи книгПроект
- 04Поиск через InterfacesПроект
- 05Слой хранения JSONПроект
- 06CLI-интерфейс администратораПроект
- 07Тестирование и интеграцияПроект
Финальные испытания
3 уроков3- 01Платформа онлайн-обученияЗадача
- 02Банковская системаЗадача
- 03Система игровых персонажейЗадача
Почему стоит изучать Go (Golang) на Coddy
- Бесплатный онлайн-курс Go (Golang): ничего не нужно устанавливать и настраивать. Откройте браузер и начинайте практиковаться с первого урока.
- Практические уроки Go (Golang) глубже обычного туториала: каждое понятие закрепляется заданием, где вы пишете настоящий код.
- Подсказки ИИ помогают, если вы застряли на упражнении по Go (Golang): они объясняют следующий шаг, но не выдают решение целиком.
- Бесплатный сертификат о завершении курса Go (Golang), который можно добавить в LinkedIn или резюме.
Частые вопросы об изучении Go (Golang)
Легко ли изучать Go (Golang)?
Да, начать изучать Go (Golang) можно даже без опыта. Coddy разбивает темы на короткие упражнения, чтобы вы поняли синтаксис, потренировали переменные, условия, циклы, функции, структуры данных и организацию проектов и постепенно набрали уверенность.
Сколько времени нужно, чтобы изучить Go (Golang)?
Основы Go (Golang) обычно можно освоить за одну-две недели ежедневной практики. Чтобы уверенно делать реальные проекты, чаще всего нужен один-три месяца регулярной работы.
Где изучать Go (Golang) онлайн бесплатно?
На Coddy есть бесплатный онлайн-курс Go (Golang) с уроками, задачами, квизами и проектами. Устанавливать ничего не нужно: все работает в браузере.
Как быстро изучить Go (Golang)?
Самый быстрый путь — писать код каждый день. В Coddy короткие объяснения сразу переходят в практику, а подсказки ИИ помогают двигаться дальше без долгих видео.
Дают ли сертификат по Go (Golang) после курса?
Да. После завершения курса Go (Golang) на Coddy вы получите бесплатный сертификат, который можно добавить в LinkedIn или резюме.
Что можно создать после изучения Go (Golang)?
После курса вы сможете создавать полезные скрипты, небольшие приложения, автоматизацию, простые игры и проекты для портфолио. Также у вас будет база для перехода к более сложным темам.