Получите мощный набор инструментов и навыков

REST API
Паттерны
Базы данных
Многопоточность
Профилирование
Стилизация
Документация
Дженерики
Кодогенерация
TCP/UDP
gRPC
Программу обновляем регулярно, чтобы вы проходили только актуальное
Она рассчитана на 6 месяцев и составлена на основе требований работодателей
2 часа
Бесплатно
Введение и тест для самопроверки
Это бесплатная часть курса, чтобы вы познакомились с нашей платформой и проверили свой уровень знаний с помощью теста
Как устроен этот курс
Узнаете, что будет на курсе, кто будет помогать вам его проходить и какая вас ждёт нагрузка
Тест для самопроверки
Ответите на 20 вопросов по основам Go и бэкенд-разработки и решите, подходит ли вам программа
Узнаете, как организован курс, пройдёте тест и поймёте, подходит ли вам такой формат
1
9 тем・6 недель
Пакеты стандартной библиотеки
Познакомитесь с популярными пакетами Go. Научитесь писать и тестировать HTTP-приложения с net/http, управлять передачей данных и временем жизни задач c context, делать запросы в базу данных. Познакомитесь с особенностями сериализации и обработки ошибок в Go.
  • Net/http
  • Flag
  • Os
  • Log
  • Encoding
  • Compress
  • Time, context
  • Database/sql
  • Errors
  • Hash, crypto
Пакет net/http. Работа с HTTP
Структура проекта, создание HTTP‑сервера, тестирование HTTP‑приложения, использование HTTP‑клиента, выбор HTTP‑библиотеки
Пакеты flag и os. Чтение аргументов командной строки
Аргументы командной строки, переменные окружения, чтение и запись в файл
Пакет log. Логирование в приложении
Стандартные и сторонние пакеты для логирования, логирование через middleware
Пакет encoding. Сериализация и десериализация данных
Основы REST API, структурные теги, стандартные сериализаторы, сторонние сериализаторы
Пакет compress. Сжатие данных
Оптимизация передачи данных
Пакеты time, context. Отмена операций и управление временем выполнения
Даты, интервалы, таймеры, отмена операций
Пакет database/sql. Взаимодействие с базами данных SQL
Имитация баз данных, абстрактный интерфейс и SQL‑драйверы, запросы к базе данных, запись в базу данных
Пакет errors. Обработка ошибок
Интроспекция ошибок
Пакеты hash, crypto. Безопасность информации
Хеширование и шифрование, авторизация: JSON Web Token
Выберете 1 из практических треков: Сервис сокращения URL или Сервис сбора метрик и алертинга. Это свяжет все задания курса в единый проект
2
1 тема・2 недели
Конкурентность
Узнаете, что такое многопоточность на уровне операционной системы. Поймёте, в чём разница между потоком и процессом, какие есть виды многопоточности, что происходит при переключении потоков и как бороться с deadlock и data race. Изучите устройство планировщика Go и освоите работу с легковесными потоками в языке — Goroutines.
  • Многопоточность
  • Goroutines
Многопоточность
Основы многопоточности, многопоточность в Go, каналы, паттерны многопоточности
Самостоятельно・5 недель
Промежуточный проект
Выполните проект по техническому заданию: разработаете HTTP API для управления учётными записями пользователей и их накопительными счетами в рамках программы лояльности интернет-магазина. Работать можно индивидуально или в команде с другими участниками курса. А ещё, если захотите, сможете выбрать другую тему проекта, предварительно согласовав её с ментором.
Взаимодействие с системой
Осуществите его через HTTP‑хендлеры для регистрации и входа в систему, загрузки и просмотра номеров заказов, просмотра и вывода баллов
Хранение данных
Для этого используете PostgreSQL, а структуру таблиц и формат хранения подберёте самостоятельно
Интеграции
Обеспечите интеграцию с внешним сервисом, который работает по принципу «чёрного ящика»: он будет рассчитывать начисление баллов лояльности
Разработаете систему лояльности для интернет‑магазина Гофермарт или выполните проект на тему, которую выберете сами
3
2 темы・1 неделя
Паттерны проектирования на Go
Разберёте паттерны проектирования и антипаттерны программирования на Go. Узнаете, как реализовать наиболее распространённые паттерны проектирования приложений и как избежать неявных ошибок при программировании на Go.
  • Паттерны проектирования
  • Антипаттерны программирования
Паттерны проектирования
Порождающие паттерны, структурные паттерны, поведенческие паттерны
Антипаттерны программирования
Постулаты Go, лучшие практики и антипаттерны
4
5 тем・3 недели
Тулинг
Научитесь использовать тулинг для стилизации и статического анализа кода, создания документации, кодогенерации и профилирования.
  • Pprof
  • Gofmt
  • Goimports
  • Godoc
  • Swagger
Профилирование и стилизация
Бенчмарки, инструмент pprof, форматирование кода: gofmt и goimports
Документация
Генерирование документации командой godoc, спецификация Swagger, шаблон example_test.go
Статический анализ кода
Команда go vet, пакет go/ast, пакет x/analysis, пакет staticcheck
Дженерики и кодогенерация
Инструменты метапрограммирования: кодогенерация, шаблоны, рефлексия, абстрактное синтаксическое дерево и дженерики
Флаги сборки и компиляции
Флаги сборки и компиляции, build constraints
5
7 тем・4 недели
Расширенная стандартная библиотека
Завершите знакомство со встроенными пакетами Go и познакомитесь с расширенной стандартной библиотекой языка — она содержит большое количество полезных пакетов.
  • Stdlib
  • Math/rand
  • Crypto/rand
  • Bytes
  • Bufio
  • Os
  • Sync и x/sync
  • Net
  • TCP и UDP
  • gRPC
  • Protocol Buffers
Экспресс-обзор стандартной библиотеки
Пакеты стандартной библиотеки, расширенная стандартная библиотека
Генерация случайных чисел
Псевдослучайные числа и криптостойкие случайные числа, пакеты math/rand и crypto/rand
Чтение данных и буфер
Пакет bytes: работа со слайсами, пакет bufio: буферизованное чтение и запись данных
Работа с операционной системой
Пакет os, работа с директориями и процессами, вызов внешних приложений, сигналы
Примитивы синхронизации
Пакеты sync, x/sync, oбработка ошибок, возвращаемых из Goroutines, Semafore для контроля доступа к общему ресурсу, потокобезопасная мапа sync.Map, singleflight для предотвращения параллельного выполнения кода
Работа с сетью
Пакет net, работа с TCP и UDP, IP‑адреса, работа с удалённым вызовом процедур
Protocol Buffers и фреймворк gRPC
Protocol Buffers и gRPC, разработка gRPC‑сервера и клиента
Самостоятельно・5 недель
Итоговый проект
Выполните проект по техническому заданию: разработаете менеджер паролей — клиент-серверную систему, которая позволяет надёжно хранить и синхронизировать логины, пароли и другую приватную информацию. Работать можно индивидуально или в команде с другими участниками курса. А ещё, если захотите, сможете выбрать другую тему проекта, предварительно согласовав её с ментором.
Клиент и сервер
Спроектируете клиентскую часть в виде CLI‑приложения — для аутентификации и доступа к приватным данным, и серверную часть — для хранения и синхронизации данных между устройствами пользователя
Дополнительные функции
Добавите поддержку одноразовых паролей (OTP) и терминального пользовательского интерфейса (TUI)
Разработаете менеджер паролей GophKeeper или выполните проект на тему, которую выберете сами
6
Дополнительно・3 темы・5 недель
Алгоритмы и структуры данных
Это опциональный модуль, который вы сможете пройти в свободном темпе, без дедлайнов и сопровождения ментора.
  • Структуры данных
  • Рекурсия
  • Сортировки
  • Хеш-функции
  • Хеш-таблицы
Основные структуры данных
Понятия алгоритма и сложности, временная и пространственная сложность, алгоритмические собеседования, массив, связный список, стек, очередь, сложность операций вставки, поиска и удаления, представление данных в памяти, пространственная сложность алгоритма
Рекурсия и сортировки
Понятие рекурсии, принцип «Разделяй и властвуй», бинарный поиск, квадратичные сортировки, сортировка слиянием, быстрая сортировка, линейная сортировка подсчётом
Хеш‑функции и хеш‑таблицы
Абстракция отображения, понятие и свойства хеш‑функции, примеры, структура данных, хеш‑таблица, коллизии и способы их разрешения
С наставником・Каждые 2 недели
Вебинары для разбора сложных тем, сессии Q&A
Получите сертификат о завершении курса
Как устроен курс
YandexGPT помогает проходить курс
Когда в теории что-то непонятно, нейросеть объяснит это другими словами. А в конце каждого модуля подготовит краткий пересказ о самом главном.
Этот курс может оплатить
ваш работодатель
Полностью или разделив оплату с вами,
например 50/50 или 75/25
  • Расскажем всё про курс
  • Поделимся презентацией
  • Ответим на ваши вопросы
  • Подготовим договор и счёт
Тем, у кого пока нет опыта в разработке, подойдёт курс «Go‑разработчик с нуля»
Он идёт 8 месяцев: сначала разберёте, что такое переменные, циклы и функции, а потом перейдёте к бэкенду и проектам, приближенным к реальным задачам junior разработчиков
Отвечаем на вопросы
Каким требованиям я должен соответствовать?
Мы ждём, что вы:
  • знаете основы бэкенд‑разработки, в том числе НТТР, JSON, Git, работу в терминале;
  • умеете писать базовые SQL‑запросы к базам данных;
  • знакомы с Go и его экосистемой: циклами, ветвлениями, эмбеддингом, интерфейсами;
  • понимаете, как писать тесты с помощью стандартных средств Go.
Если вы прошли наш курс «Go‑разработчик с нуля», вам тоже подойдёт продвинутая программа. А ещё в бесплатной вводной части есть тест — можно проверить свои навыки.
Кто будет помогать мне проходить курс?
Программа составлена под руководством техлидов из Яндекса, а также методиста и авторов-разработчиков, работающих в крупных компаниях на должностях уровня lead, senior или middle. Вашими менторами будут senior разработчики из Яндекса, Ozon и других компаний.
Как и когда я буду проходить курс?
Курс состоит из 3 частей:
  • изучения теории в текстовом формате и отработки навыков в практических заданиях;
  • написания инкрементов и рефакторинга кода вашего большого проекта;
  • вебинаров и личных консультаций с ментором, общения в чатах.
Осваивать теорию и решать задания вы можете в любое удобное время, а вот практика в рамках большого проекта привязана к двухнедельным спринтам.
Что делать, если я не справлюсь с нагрузкой?
В программе предусмотрен перерыв, во время которого можно отдохнуть или повторить сложные темы.

Если случилось непредвиденное или понадобилось больше времени на закрепление материала, напишите своему куратору. Он поможет перенести дедлайн сдачи проекта или перевестись в более позднюю когорту. На общую стоимость курса это не повлияет.
Смогу ли я найти работу после курса?
Гарантий нет, но мы верим, что сможете. Работодателям важно, чтобы вы справлялись с реальными задачами, а не просто обладали набором знаний. После курса вы сможете применять знания на практике, а также мы предлагаем помощь HR-специалистов из нашего карьерного центра. Но вам точно придётся приложить усилия, чтобы найти работу: активно откликаться на вакансии, проходить собеседования, показывать свои проекты и делать тестовые задания.

По данным исследования* Высшей школы экономики, 69% пользователей Яндекс Практикума среди тех, кто хотел сменить профессию, начинают новую карьеру после курса. Больше половины из них — во время курса и в первые 2 месяца после его окончания.

* Данные исследования ВШЭ основаны на опыте пользователей Яндекс Практикума на российском рынке труда.
Если не понравится, я могу вернуть деньги?
Конечно. Если курс ещё не начался, вернём всю сумму. Если уже начался, придётся оплатить прошедшие дни со старта вашей первой когорты — но мы вернём деньги за остаток курса. Более подробно рассказываем об этом в 7 пункте оферты.
Получу ли я какой-то документ после курса?
Да, вы получите сертификат о завершении курса.
Вы поможете сменить или найти работу?
На этом курсе не предусмотрена помощь с трудоустройством, поскольку он для действующих специалистов, у которых уже есть навыки поиска работы.

Но если у вас появится вопрос о карьерном развитии, обратитесь в нашу службу поддержки — постараемся ответить.
Как можно оплатить?
Банковской картой: внести всю сумму сразу или платить ежемесячно.

Ежемесячные платежи работают так: вы вносите первую оплату, и в этот момент привязывается карта. С этой карты автоматически будут списываться следующие платежи каждые 30 календарных дней. Например, оплатили 25 марта — следующий платёж пройдёт 24 апреля. Курс будет стоить меньше, если оплатить его сразу целиком.

Через компанию: юридические лица также могут оплатить курс в Практикуме. Чтобы заказать счёт для оплаты, оставьте заявку на странице для корпоративных клиентов.
В какой валюте можно оплатить курс?
Оплатить курс можно в любой валюте, кроме российских рублей.

Чтобы вам было проще сориентироваться, мы указываем примерную стоимость в долларах США, но списание будет в казахстанских тенге, а конвертация — по курсу вашего банка.

Давайте поможем

Напишите, как вас зовут и по какому номеру можно связываться — в течение 30 минут позвоним и расскажем всё про курсы