Скачать Go-разработчик. Продвинутый уровень [OTUS] [Юра Рубаха, Евгений Кабо, Алексей Романовский]

Dozhd

Администратор
Регистрация
17 Янв 2014
Сообщения
182.903
Реакции
388.542
Складчина: Go-разработчик. Продвинутый уровень [OTUS] [Юра Рубаха, Евгений Кабо, Алексей Романовский]



От основ и внутреннего устройства Go – до создания микросервисов и взаимодействия с другими системами.

Для кого этот курс:

Для бэкенд-разработчиков.
Сможете перейти на Golang, изучите различные библиотеки и лучшие практики.
Для тех, кто уже разобрался с основами Go, и тех, кто прошёл курс Go-разработчик. Базовый уровень.
Структурируете и расширите имеющиеся знания, перейдёте от написания кода к инженерной разработке.
Для фронтенд и фулстек-разработчиков.
Сможете делать продукт от пользовательского интерфейса до K8s.
Для DevOps.
Научитесь профилировать «живые» сервисы и осуществлять мониторинг на уровне кода.
Необходимые знания:

опыт разработки от 1 года
опыт разработки серверной части приложений
знание git, работа в GitHub
общее знакомство с CI: GitLab CI, Travis CI
Будет плюсом:

знания по основным конструкциям и синтаксису Go
знание одного из ЯП, в особенности С/C++
опыт администрирования Linux
Что вам даст этот курс:

Изучите не только синтаксис языка, но и внутренние механизмы Go
Поймёте, как работают планировщик, сборщик мусора и эскейп-анализ. Научитесь профилировать приложения через pprof, писать бенчмарки и избегать типовых ошибок, связанных с памятью, слайсами, мапами и nil-интерфейсами.
Освоите промышленную сетевую разработку
Сможете самостоятельно разрабатывать клиент-серверные системы на Go: от TCP/UDP и SQL/NoSQL до промышленных HTTP/gRPC API с транзакциями, TLS и полным циклом тестирования.
Разберёте прикладные алгоритмы, необходимые для позиций middle и senior
Реализуете алгоритмы, которые спрашивают на собеседованиях в крупные IT-компании. В их числе — LRU-кэш на связном списке, конвейеры с горутинами, частотный анализ текста и параллельное выполнение задач.
После обучения вы сможете:

создавать надёжные серверные приложения
профилировать и оптимизировать производительность кода
работать с горутинами без гонок данных
упаковывать сервисы в Docker и K8s
Практика как основа:

За время курса вы создадите десяток работающих программ — от простых утилит до полноценного сервиса «Календарь». В итоге защитите собственный проект, который можно будет добавить в портфолио.

Процесс обучения:

У нас нет предзаписанных уроков.
Занятия в OTUS – это онлайн-вебинары. Преподаватели-практики помогут погрузиться в теорию, обучат на реальных примерах, расскажут о необходимых в работе инструментах. Вы всегда сможете задать вопрос и получить обратную связь.
И самое главное – сможете практиковаться!

Формат обучения:

Интерактивные вебинары
2 онлайн-занятия по 2 академических часа в неделю, вечный доступ к обучающим материалам.
Практика
16 домашних заданий и проектная работа помогут закрепить знания и открыть новые карьерные возможности.
Длительность 5 месяцев.

Программа:

1. Начало работы с Go

В первом модуле мы посмотрим на Go как на язык программирования. Рассмотрим основные синтаксические конструкции и их выполнение в runtime. Основное внимание уделим конструкциям, уникальным для языка Go, которых нет в другом языке.

Тема 1: Знакомство с курсом / ДЗ
Тема 2: Синтаксис языка
Тема 3: Типы данных
Тема 4: Особенности языка и типовые ошибки / ДЗ
Тема 5: Лучшие практики работы с ошибками / ДЗ
Тема 6: Тестирование в Go
Тема 7: Продвинутое тестирование в Go
Тема 8: Интерфейсы изнутри / ДЗ
2. Concurrency в Go

Второй модуль мы посвятим одной из самых главных тем Go — конкурентности. Познакомимся с горутинами и каналами, с тем, как устроена память и сборка мусора в Go. Научимся писать конкурентно-безопасные программы.

Тема 1: Горутины и каналы
Тема 2: Примитивы синхронизации в деталях / ДЗ
Тема 3: Дополнительные примитивы синхронизации
Тема 4: Concurrency patterns / ДЗ
Тема 5: Go внутри. Планировщик
Тема 6: Go внутри. Память и сборка мусора
3. Стандартные библиотеки и практики

В третьем модуле мы познакомимся с основными функциями стандартной библиотеки Golang, а также наиболее популярными open-source библиотеками. Научимся взаимодействовать с операционной и файловой системами из Go, поговорим о понятиях рефлексии и кодогенерации, а также рассмотрим инструменты профилирования программ, написанных на Go.

Тема 1: Работа с вводом/выводом в Go / ДЗ
Тема 2: Конфигурация и логирование
Тема 3: CLI / ДЗ
Тема 4: Рефлексия
Тема 5: Кодогенерация и AST
Тема 6: Дженерики в Go / ДЗ
Тема 7: Профилирование и оптимизация Go программ / ДЗ
4. Работа с сетью и БД

Go чаще всего используется для написания сетевых сервисов. В четвертом модуле мы изучим, как работать с сетью в языке Go. Рассмотрим стандартные протоколы и форматы, а также напишем простой web-сервер. Отдельное внимание будет уделено обработке ошибок, возникающих при работе с сетью. Дополнительно в данном модуле мы поговорим о работе с SQL и gRPC.

Тема 1: Контекст и низкоуровневые сетевые протоколы / ДЗ
Тема 2: Работа с SQL / ДЗ
Тема 3: Работа с NoSQL
Тема 4: Работа с HTTP
Тема 5: Работа с gRPC
Тема 6: Работа с gRPC ч.2 / ДЗ
5. Микросервисы

В пятом модуле мы рассмотрим вопросы архитектуры web-сервисов, в частности популярную на данный момент микросервисную архитектуру. Рассмотрим вопросы интеграционного тестирования, развертывания и эксплуатации приложений.

Тема 1: Монолит и микросервисы
Тема 2: Кэширование
Тема 3: Очереди сообщений / ДЗ
Тема 4: Docker
Тема 5: K8s / ДЗ
Тема 6: Helm
Тема 7: Мониторинг / ДЗ
Тема 8: Тестирование микросервисов
6. Проект

Проект, разрабатываемый студентами, будет представлять собой реализацию микросервиса с полным набором компонентов, таких как: ядро, работа с хранилищем, конфигурация и логгирование, работа с очередями сообщений, liveness-пробы, Makefile, юнит- и интеграционные тесты, статический анализ кода, файлы для деплоя, Dockerfile'ы и пр.

Тема 1: Проектная работа. Вводное
Тема 2: Консультация по проектам
Тема 3: Итоговое занятие
Проектная работа:

К окончанию курса вы разработаете микросервис на Go. Можете использовать бизнес-кейс, развить собственную идею или просто взять учебное задание. Выпускной проект защищают перед преподавателем. После успешной защиты вы получите свидетельство о повышении квалификации.

Примеры итоговых проектов студентов:

Системный мониторинг
SQL-мигратор
Banner Rotation service
Rate Limit. Анти-брутфорс
Превьювер изображений
Преподаватели:

Руководитель курса Юра Рубаха
Golang-разработчик
Евгений Кабо
Старший Go-разработчик, Ozon Bank
Алексей Романовский
Разработчик, Resolver
Роман Грицуляк
Разработчик, консультант
Александр Хохлов
Архитектор платформенных решений, ГК Иннотех
Старт 29 сентября 2026 года.

Цену установит организатор.




СКАЧАТЬ
 
  • Like
Реакции: zehd