Профессия
Go-разработчик

Научитесь программировать на Golang при поддержке опытного ментора. Курсы для разработчиков с опытом.

Go-разработчик создаёт высоконагруженные сервисы в сферах онлайн-ретейла, доставки, финтеха, интернета вещей. Язык программирования Go хорошо для этого подходит, так как нативно поддерживает многопоточность, собирается и исполняется с высокой скоростью.

В профессии два курса: основы Go и программа обучения до уровня middle. Обратите внимание, эти курсы не подойдут людям без опыта разработки.


Подойдут ли курсы вам?

Вот каких знаний достаточно, чтобы осваивать Go с нами. Проверьте себя.

Как вы будете учиться

  1. Сразу писать боевой сервис
    Вы будете писать один большой проект на протяжении всего курса, постоянно пополняя, усложняя и модифицируя кодовую базу. Проект будет зависеть от того, какой практический трек вы выберете на старте: «Сервис сокращения URL» или «Сервис сбора метрик и алертинга». Кроме того, в уроках будет много практических заданий, которые вы сможете выполнять в любимой среде разработки.
  2. Общаться с менторами — senior Go-разработчиками
    У вас будет ментор — действующий senior Go-разработчик, который будет помогать находить ответы на вопросы, проверять ваш код, проводить вебинары для разбора задач. И главное — раз в две недели у вас будет встреча один на один с ментором, на которой вы обсудите ваш прогресс в обучении и написании проекта.
  3. Готовить выпускной проект
    После прохождения основной программы у вас будет время написать выпускной проект для вашего портфолио. Вы сможете объединиться в команды или работать самостоятельно, реализовать свою идею или взять за основу один из предложенных вариантов.

Выберите курс, который вам подходит

Вы получите представление о Go и его экосистеме, выучите синтаксис и будете готовы к прохождению основных программ в профессии.

На этом курсе нет сопровождения. Вы можете начать учиться в любой момент.

Вы научитесь писать на Go сложные приложения, освоите архитектурные паттерны. Вы получите навыки и знания для выполнения задач Go-разработчика middle-уровня.

На курсе вас будут сопровождать ментор и куратор.

1 месяц и бесплатно
6 месяцев

Обмен опытом с менторами Практикума

Менторы Практикума — действующие разработчики из крупных компаний, в том числе из Яндекса. Они отвечают на вопросы, делают код-ревью, направляют, но не дают готовых решений. С ментором вы сможете обменяться опытом и обсудить подходы, которые вы применяете в вашем проекте. У вас будет возможность поболтать один на один, послушать вебинар с лайв-кодингом или написать вопрос в чат.
  • Георгий Зуйков, техлид
    Старший разработчик в «Едадиле». Программирует 10 лет, из них последние 5 — на Go. Разрабатывает архитектуру высоконагруженных систем. Входит в Go-комитет Яндекса.
  • Александр Демиденко, техлид
    Старший разработчик в Яндекс.Облаке, в команде Cloudgate. Строит масштабируемую систему доставки трафика. Имеет многолетний опыт работы в телекоме (VoIP).
  • Дмитрий Шеламов, ментор
    Старший разработчик в SoftSwiss. Начал преподавать Go, ещё будучи мидлом. Интересный факт: в 16 лет выпустил игру под Android с 10 000 установок.
  • Андрей Лукин, ментор
    Тимлид в финтех-стартапе. До этого работал в Яндекс Маркете, развивал сервисы Логистики и Доставки. Проделал путь от инженера-радиотехника до тимлида. Провёл много технических собеседований.
  • Евгений Лугин, ментор
    Старший разработчик в OryxLabs. В IT с 2011 года. Работал в HelloFresh, «Ситимобил», «Туту.ру», инженером внедрения и сопровождения в телекоме — в компаниях Nexign и CBOSS.
  • Рафаэль Мустафин, ментор
    Тимлид в Delivery Club. Развивает направление Логистики. Прошёл путь от написания приложений под Windows до разработки бэкенд-сервисов на Go. Обучает стажёров.
  • Владислав Шевченко, ментор
    Старший разработчик в Redmadrobot, Иннополис. Более 10 лет работал в НИИ в «Роскосмосе», руководил конструкторским отделом. В 30 лет ушёл в бэкенд-разработку.
  • Анастасия Бошнякович, ментор
    Старший программист в xpate. Занимается проектированием архитектуры и разработкой сервиса интернет-эквайринга в рамках финансовой экосистемы. Была основателем и СТО в собственном стартапе.
  • Артём Печёркин, ментор
    Старший разработчик в Ostrovok.ru. Программирует 10 лет, из них последние 7 — на Go. За свою карьеру попробовал почти все технические профессии в сфере IT.
  • Сергей Сергеев, ментор
    Бэкенд-инженер в Rain. Пишет на Go, PHP. Помимо коммерческой разработки, принимал участие в R&D-проектах.
  • Олег Кожанов, ментор
    Старший разработчик в AWS. Выполняет функции управленца последние 5 лет. До этого 10 лет разрабатывал высоконагруженные системы для крупных телекомов. Пишет на C#, JavaScript, Python, но предпочитает Go. Строил команды и отделы разработки с нуля.
  • Алексей Мясников, ментор
    Старший разработчик в Яндекс Облаке, на проекте YDB. В IT с 2006 года. Писал код на более чем 20 языках программирования, больше всего на C++, Java, Go, TypeScript. Капитан запаса ВС РФ. Кандидат технических наук. В прошлом — военный ученый с научным стажем более 8 лет.
  • Андрей Еремеев, ментор
    Старший разработчик в Почте Mail.ru. Разрабатывает отказоустойчивое хранилище писем на десятки петабайт данных. Любит терминал и всё, что с ним связано.
  • Илья Сухов, ментор
    Ведущий разработчик в «Ситимобил». Последние 3 года разрабатывает высоконагруженные сервисы на Go. 5 лет работал системным администратором в Яндексе.
  • Алексей Щетинин, ментор
    Бэкенд-разработчик в Ozon. Начинал карьеру как Python-разработчик, позже столкнулся с Go, который стал любимым и основным языком. Работал с сервисами, RPS которых доходил до 10 тыс.

Сколько стоит обучение

Бесплатно
при оплате сразу за 6 месяцев обучения.
152 000 ₽
или 26 000 ₽
при помесячной оплате. Итоговая сумма: 156 000 ₽

Оплата обучения работодателем

Если знания курса необходимы вам на текущем месте работы, вы можете поговорить об этом с руководителем. Мы подготовили инструкцию, которая поможет договориться с вашей компанией о частичном софинансировании или полной оплате обучения

Программа обучения  «Основы Go»

Основы языка Go

Вы узнаете, что Go — это лаконичный, но в то же время мощный язык, ориентированный на простоту синтаксиса и производительность, с его помощью можно эффективно использовать ресурсы современный многоядерных процессоров и писать многопоточные приложения. Познакомитесь с указателями, которые повышают эффективность работы с памятью. Также будут рассмотрены реализации в Go классических структур данных, таких как хэш-таблицы и массивы. А ещё вы познакомитесь с тем, как группировать разные типы данных вместе.

Введение в систему типов

Какая типизация в языке, какие бывают типизации

  • Базовые типы и типизация
  • Константы и переменные

Композитные типы

  • Массивы и слайсы
  • Map
  • Структуры
  • Указатели

Управление потоком выполнения

  • Циклы
  • Операторы ветвления

Функции

  • Функции
  • defer

Пакеты, модули

  • Пакеты и импорты
  • Связь пакетов и файловой системы
  • Внешние зависимости
Особенности программирования на Go

Вы узнаете, в чём особенность создания функций и почему функции в Go могут возвращать несколько значений. Научитесь обрабатывать ошибки, работать с методами и интерфейсами, а также тестировать собственный код.

Обработка ошибок

  • error
  • panic и recover

"ООП"

  • Методы
  • Эмбеддинг

Интерфейсы

  • Концепция интерфейсов и их реализация
  • Интерфейсы в стандартной библиотеке
  • Пустой интерфейс и приведение типов
  • Рефлексия

Тестирование

  • Юнит-тесты и покрытие кода
  • Бенчмарки
  • Интерфейсы в тестировании

Программа обучения  «Продвинутый Go-разработчик»

Пакеты стандартной библиотеки

В этом модуле расскажем о популярных пакетах Go. Вы научитесь писать и тестировать HTTP-приложения с net/http, управлять передачей данных и временем жизни задач c context, делать запросы в базу данных, познакомитесь с особенностями сериализации и обработки ошибок в Go.

Задания будут уложены в практические треки. Практический трек связывает все задания в единый проект, который вы разрабатываете инкрементально до получения финального результата. На курсе есть два практических трека: «Сервис сокращения URL» и «Сервис сбора метрик и алертинга». Вам предстоит выбрать один из них.

сontext и time

  • context: отмена и передача данных
  • time: отрезки и таймеры

net/http

  • HTTP-клиент
  • HTTP-сервер
  • тестирование HTTP-приложений
  • популярные библиотеки

encoding

  • struct tags
  • JSON
  • XML
  • Gob
  • стандартные сериализаторы
  • cторонние сериализаторы

os

  • переменные окружения
  • работа с файлами

flag

  • аргументы командной строки

compress

  • стандартные методы сжатия
  • сторонние библиотеки и форматы

hash и crypto

  • xеширование и шифрование

database/sql

  • интерфейсный подход и драйверы
  • чтение данных из БД
  • запись в БД, состояния и транзакции

errors

  • интроспекция и логирование ошибок
Конкурентность

Расскажем, что такое многопоточность на уровне операционной системы. Вы узнаете, в чём разница между потоком и процессом, какие существуют виды многопоточности, что происходит при переключении потоков, как бороться с deadlock и datarace. Отвечая на эти и другие вопросы, плавно перейдём к устройству планировщика Go. Потом познакомим вас с легковесными потоками в языке — goroutines и другими средствами языка для написания многопоточных приложений.

Многопоточность в Go

  • основы многопоточности
  • горутины
  • каналы
  • получение данных из каналов
  • cинхронизация состояния
  • паттерны многопоточности
Паттерны проектирования
В этом модуле рассмотрим паттерны проектирования и антипаттерны программирования на Go. Вы узнаете, как реализовать наиболее распространённые паттерны проектирования приложений и как избежать неявных ошибок при программировании на Go.

Паттерны проектирования на Go

  • порождающие паттерны
  • структурные паттерны
  • поведенческие паттерны

Антипаттерны программирования на Go

Туллинг

Сильная сторона Go — это встроенные инструменты разработчика. В этом модуле вы научитесь использовать туллинг для стилизации и статического анализа кода, создания документации, кодогенерации и профилирования.

Профилирование

  • pprof
  • сторонний туллинг

Стилизация кода

  • gofmt и goimports

Статический анализ кода

  • go vet
  • go/ast
  • x/analysis
  • staticcheck

Документация

  • godoc / swagger
  • example_test.go

Кодогенерация

  • кодогенерация проектов
  • кодогенерация как замена дженерикам
  • генерация с помощью шаблонизации

Go comment flags

  • go-flags, go:flags, build flags
  • ldflags
  • флаги и компиляции
  • импорты
Расширенная стандартная библиотека

В Go многие вещи доступны "из коробки", и приветствуется написание собственных решений на основе стандартной библиотеки. Вы научитесь писать более эффективный и лаконичный код.

net

  • Работа с TCP/UDP
  • IP адреса

sync и x/sync

  • Конкурентный map c sync.Map
  • Ожидание выполнения асинхронных задач
  • Единоразовое выполнение кода

bytes

  • Буфер байт
  • Блочное чтение байт

bufio

  • bufio.Scanner
  • Эффективная работа с текстом большого размера

math/rand и crypto/rand

  • Генератор случайных чисел
  • Криптографический генератор случайных чисел

os

  • Работа с директориями (траверсинг, walk-функции)
  • Вызов внешних приложений
  • Сигналы

Обзор остальной стандартной библиотеки

gRPC

  • gRPC+тесты

Часто задаваемые вопросы

В чём разница между курсами?
«Основы Go» — это базовый курс, в него можно заходить со знаниями основ бэкенд-разработки, но без знаний Go. Пройдя курс «Продвинутый Go-разработчик», вы сможете выполнять задачи разработчика уровня middle.
Как понять, какой из курсов мне подойдёт?
Если вы никогда не сталкивались с Go и не читали документацию, сначала пройдите «Основы Go». Если вы знаете синтаксис языка, здорово — основная программа открыта для вас.
Каким требованиям я должен соответствовать?
Для любого из наших курсов нужно знание основ бэкенд-разработки. Обычно эти знания появляются после 1–2 лет работы бэкенд-разработчиком. Однако, если вы окончили курсы по программированию, в частности, курс «Python-разработчик» в Практикуме, вы тоже сможете учить Go с нами. Для «Основ Go» другие знания, кроме знаний основ бэкенд-разработки, не требуются. Для курса «Продвинутый Go-разработчик» вам дополнительно потребуются знания синтаксиса Go.
Кто будет меня учить?
Программа составлена под руководством техлидов из Яндекса, а также методиста и авторов-разработчиков, работающих в крупных компаниях на должности lead, senior и middle developer. Вашими менторами будут senior-разработчики из Яндекса, Ozon и других компаний.
Сколько времени занимает обучение?
Вам потребуется около 10-15 часов в неделю. Обучение на курсе «Основы Go» длится 1 месяц, на курсе «Продвинутый Go-разработчик» — 6 месяцев.
Как и когда я буду учиться?
Обучение состоит из трёх частей:

  1. чтение уроков в текстовом формате и выполнение локальных практических заданий;
  2. написание инкрементов и рефакторинг кода вашего большого проекта;
  3. общение с сокурсниками и ментором в чатах, на вебинарах и встречах один на один.

Осваивать теорию и решать практические задания вы можете в любое удобное время. Инкрементное написание и рефакторинг кода большого проекта привязано к двухнедельным спринтам.

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

Короткий ответ — да, причём в любой момент. Правда, если вы уже прошли какую-то часть курса, её придётся оплатить. Остальное вернём. Более подробно рассказываем про это в седьмом пункте оферты.

Получу ли я какой-то документ по окончании курса?
Вы получите официальный документ о дополнительном образовании: диплом о профессиональной переподготовке, если прошли «Продвинутый Go-разработчик».
Смогу ли я найти работу после обучения?
Сможете, если зададитесь такой целью. Go-разработчики с опытом востребованы на  рынке труда. Разумеется, чтобы найти хорошую работу, нужно потрудиться — необходим достаточный опыт разработки в продакшене и развитые soft skills.
Чем вы отличаетесь от других курсов?
Мы даём вам возможность обмениваться опытом с менторами, в том числе в индивидуальном формате, чтобы вы могли развиваться быстрее и осознаннее. Наш курс по Go следует принципам менторства senior-разработчика над junior в компании, но в безопасной среде, и этим отличается от остальных.
Thu Jun 30 2022 17:10:29 GMT+0300 (Moscow Standard Time)