Синхронный курс

Практический Go: от первых шагов до автоматизации инфраструктуры

Кафедра информатики и вычислительной математики

Купить курс
Старт курса
27 октября
150 000руб/чел
270 ак. ч.
6 мес. длительность длит.

О чем этот курс

О чем этот курс

Освойте Go как инструмент для автоматизации — от написания простых CLI-утилит до создания сервисов и микросервисов под реальные инженерные задачи.

На курсе вы будете:

  • писать собственные утилиты для повседневных задач,

  • автоматизировать работу с серверами, сетями и конфигурациями,

  • собирать и обрабатывать данные через API,

  • разрабатывать практические проекты для инфраструктуры и рабочих процессов,

  • применять Go для упрощения рутинных операций и повышения эффективности.

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

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

Кто хочет повысить свою квалификацию

Тем, кто работает на другом ЯП, автоматизирует свою работу скриптами, но хочет большего – скорости и системности разработки, тестируемого и масштабируемого кода, работать с микросервисами и понимать принципы построения современных высокопроизводительных бэкендов в сетевых приложениях.

Опытным специалистам

Тем, кто хорошо разбирается в другом ЯП и, возможно, уже владеет Go, но хочет структурировать свои знания и выйти на новый уровень.

Как проходит курс

Занятия

Еженедельный code-review

На протяжении всего обучения ваш ментор проводит еженедельный review вашего кода, контролирует процесс обучения и усваиваемость материала. Поможем и подскажем по любым вашим вопросам.

Семинары

Индивидуальные консультации

Раз в неделю вы можете созвониться с вашим ментором – задать и обсудить вопросы по программированию, возможностях карьерного роста, сетевой автоматизации, обсудить ваши кейсы и т.п.

Лекции

Быть в тренде

Раз в месяц мы проводим большие видео-лекции о современных трендах сетевой автоматизации или принципах работы с технологиями и системами. Лекции будут на самые разные темы – от полезных инструментов разработчиков, до управления конфигурациями оборудования. Вы также сможете поучаствовать в выборе интересной вам темы.

Экзамен

Два полноценных проекта

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

Перспективы заработка

Go-разработчик

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

0₽ Junior
0₽ Middle
0₽ Senior

DevOps / SRE с навыками Go

Go часто используется в DevOps-и SRE-задачах: от написания CLI-утилит до создания сервисов мониторинга и оркестрации. Наличие Go в стеке повышает ценность специалиста на рынке.

0₽ Junior
0₽ Middle
0₽ Senior

После курса вы получите

Всем успешно завершившим обучение будет выдан документ установленного образца, который повысит конкурентоспособность на рынке труда:

  • • Диплом о профессиональной переподготовке

Вас будут обучать настоящие профессионалы

Дмитрий Ларин
Дмитрий Ларин

Преподаватель, руководитель R&D в Hadal Project

Роман Гончаренко
Роман Гончаренко

Преподаватель, руководитель разработки в Hadal Project

Евгений Зобницев
Евгений Зобницев

Преподаватель, CTO Factor Group, ex-руководитель эксплуатации/развития сети магистрального оператора связи

Алексей Дурнов
Алексей Дурнов

Преподаватель, Senior разработчик NGFW АО "Лаборатория Касперского"

Программа курса

Рассчитана на 6 месяцев и составлена на основе требований работодателей — будете изучать только то, что действительно пригодится в работе.

Почему Go?

Go – молодой и востребованный язык программирования, созданный для разработки веб-сервисов и высоконагруженных клиентских приложений. Однако Go в последние годы набирает популярность и в инфраструктурных сервисах (например, Docker и Kubernetes написаны на языке Go) и используется сетевыми инженерами, специалистами DevOps и NetDevOps для автоматизации рутинных задач по работе с серверным и сетевым оборудованием. Разумеется, появляется множество новых популярных инструментов и библиотек, написанных на языке Go, которыми нужно уметь правильно пользоваться в своей работе и, при необходимости, дорабатывать под свои задачи.

Навыки разработки на языке Go востребованы в инфраструктурных и сетевых командах таких компаний как Яндекс, VK, Ozon, а также в крупнейших компаниях мира: Google, Amazon, Microsoft и др.

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

Предварительная подготовка

 

Для комфортного старта достаточно базовых технических навыков и понимания, как устроена инфраструктура. Всё остальное мы разберём в процессе.

Желательно, чтобы вы уже умели:

  • пользоваться терминалом и git для базовых задач (клонировать репозиторий, создавать ветки, делать коммиты и пушить изменения),

  • работать с JSON-данными и писать простые SQL-запросы,

  • понимать основы HTTP-запросов и ответов,

  • разбираться в базовых принципах работы контейнеров и виртуализации (Docker, Podman, VirtualBox или аналоги),

  • ориентироваться в ключевых концепциях администрирования серверов и сервисов.

Опыт работы с API, облачными сервисами или системами мониторинга будет плюсом, но не является обязательным.

Цель блока – изучить пакеты стандартной библиотеки и конкурентность языка Go. Разберем все необходимые инструменты начинающего Go-разработчика и на протяжении двух первых блоков вы инкрементально разработаете один большой проект.

Спринт 1: Основы Go Краткая история ЯП Golang, ниша его применения. Иерархия Golang относительно других ЯП. Введение в базовый синтаксис Golang (Операторы объявления переменных, функций, области видимости, основные типы данных и тп). Разбор практических задач.  
Спринт 2: Основные структуры данных Изучение таких структур данных, как стек, очередь, связный список, бинарное дерево поиска, граф.
Спринт 3: Пакеты стандартной библиотеки Разбор более сложных конструкций Go (структуры, эмбединг структур, рекурсия). Разбор пакетов bufio.
Спринт 4: Настройка окружения (IDE, git) Основы отладки программ. Линтеры, процесс разработки ПО. Структура проекта. Введение в процесс разработки ПО. Краткое знакомство со средствами разработки – IDE и git. Разбор структуры проекта на языке Golang. Введение в линтеры и плагины для среды разработки. Объяснение дальнейшего процесса проверки заданий через платформу github
Спринт 5: Работа с файлами. Сериализация Чтение и запись в файл. Встроенные и сторонние сериализаторы. Понятие тегов и их использование.
Спринт 6: Обработка ошибок в Go. Тестирование Знакомство с различными подходами к реализации обработки ошибок в разных языках.Рассмотрение подхода Golang и различных примеров реализации обработки ошибок. Введение в теорию тестирования ПО. Более детальное рассмотрение unit тестов в Go.
Спринт 7: Контекст. Реализация HTTP REST в Go Использование контекста на примере отмены операций. Введение в протокол HTTP. Введение в реализацию HTTP сервера и клиента на основе стандартного пакета net/http. Разбор пакетов для работы с флагами командной строки и переменными окружения.
Спринт 8: Создание CLI-приложений. Пакеты flag и cobra Работа с флагами командной строки пакета flag. Использование cobra для создания команд и подкоманд.
Спринт 9: Введение в базы данных Быстрое введение в СУБД, рассмотрение основных понятий реляционных баз данных. Виды баз данных. Рассмотрение базовых DDL и DML операций, необходимых для создания простейшей схемы базы данных.
Спринт 10: Работа с базами данных в Go Введение в database/sql и инструменты миграций на примере goose/golang-migrate. Шаблон абстрагирования БД за абстрактным интерфейсом. Понятие sql-драйвера. Запись и чтение в базу данных из кода на Go.
Спринт 11: Многопоточность в Go Основы многопоточности. Многопоточность в Go. Каналы и другие паттерны многопоточности.

Цель – разобраться с более продвинутыми темами и инструментами разработчиков на Go. В рамках этого блока мы рассмотрим основные паттерны проектирования программ на Go, познакомимся с тулингом (профилирование, бенчмарки, документирование), а также рассмотрим кодогенерацию и дженерики, gRPC и OpenAPI (Swagger), Garbage Collector и другие темы.

Спринт 12: Паттерны проектирования, идеология Go Рассмотрение общих для информационных систем паттернов проектирования. - Порождающие паттерны - Структурные паттерны - Поведенческие паттерны Рассмотрение постулатов Go, паттернов/антипаттернов, применимых в Go.
Спринт 13: GRPC, Swagger, web frameworks Рассмотрение инструмента кодогенерации в Go на примере генерации клиентов БД/клиентов к API.
Спринт 14: Системы развертки приложений на Go. Docker Рассмотрение особенностей сборки Go приложений: единый бинарный файл, кросс-компиляция. Использование контейниризации и рассмотрение Docker, как систему для развертывания Go приложений.
Спринт 15: Библиотеки и инструменты для работы с CLI сетевых устройств (scrapligo, textFSM) Пакет scrapligo и его применение для подключения к сетевым устройствам и удаленного исполнения команд по CLI. Парсинг полученных ответов при помощи textFSM темплейтов
Спринт 16: Библиотеки и инструменты для работы с сырыми пакетами (gopacket) _Пакет __gopacket_ _и его применение для разбора сырого трафика на примерах чтения данных из __pcap__-файлов и подключения к сетевым интерфейсам. Способы разбора сетевых пакетов по заголовкам._

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

Чему вы научитесь на курсе

  • Приобретете и закрепите навыки программирования на Go уровня middle разработчика
  • Научитесь разрабатывать современные высоконагруженные микросервисы на Go
  • Научитесь решать задачи автоматизации сети на Go
  • Освоите архитектурные паттерны
  • Сделаете 2 проекта с нуля и добавите их в портфолио
  • REST API
  • HTTP
  • Базы данных
  • Многопоточность
  • Профилирование
  • Стилизация
  • Дженерики
  • Кодогенерация
  • gRPC

Инструменты и навыки

Оплатить курс или получить
бесплатную консультацию

Оставьте ваш запрос и мы свяжемся с вами

Практический Go: от первых шагов до автоматизации инфраструктуры

150 000₽/чел.
  • - Оплата по оферте или после заключения договора
  • - Гарантии качества вашего обучения

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

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

Онлайн обучение – синхронные и предзаписанные курсы - проходит на нашей удобной платформе. Офлайн (очное) обучение может проходить на Физтехе или на территории заказчика.

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

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

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

С этим курсом покупают

Работа с ChatGPT API: от составления запросов до создания ассистентов для своих задач

Работа с ChatGPT API: от составления запросов до создания ассистентов для своих задач

от 34 900₽/чел.

Физтех-школа биологической и медицинской физики

36 часов
Онлайн
Основы операционных систем

Основы операционных систем

3 600₽/чел.

Центр дополнительного профессионального образования "Пуск"

72 часа
Онлайн
Старт в Python

Старт в Python

от 9 500₽/чел.

Кафедра биофизики ЛФИ

35 часов
Онлайн
Информационная безопасность. Техническая защита конфиденциальной информации

Информационная безопасность. Техническая защита конфиденциальной информации

85 000₽/чел.

Центр дополнительного профессионального образования "Пуск"

512 часа
Онлайн
Смешанный