Продвинутый Go-разработчик для сетевых инженеров
О чем этот курс
Станьте продвинутым специалистом-разработчиком на языке Go уровня Middle – научитесь разрабатывать современные высоконагруженные микросервисы и решать задачи сетевой автоматизации с помощью Go. В течение курса под руководством менторов разработаете два полноценных проекта, которые сможете добавить в свое портфолио, а также погрузитесь в мир автоматизации сети и современных инструментов сетевых инженеров.
Для кого этот курс
Тем, кто работает на другом ЯП, автоматизирует свою работу скриптами, но хочет большего – скорости и системности разработки, тестируемого и масштабируемого кода, работать с микросервисами и понимать принципы построения современных высокопроизводительных бэкендов в сетевых приложениях.
Тем, кто хорошо разбирается в другом ЯП и, возможно, уже владеет Go, но хочет структурировать свои знания и выйти на новый уровень.
Как проходит курс
Еженедельный code-review
На протяжении всего обучения ваш ментор проводит еженедельный review вашего кода, контролирует процесс обучения и усваиваемость материала. Поможем и подскажем по любым вашим вопросам.
Индивидуальные консультации
Раз в неделю вы можете созвониться с вашим ментором – задать и обсудить вопросы по программированию, возможностях карьерного роста, сетевой автоматизации, обсудить ваши кейсы и т.п.
Быть в тренде
Раз в месяц мы проводим большие видео-лекции о современных трендах сетевой автоматизации или принципах работы с технологиями и системами. Лекции будут на самые разные темы – от полезных инструментов разработчиков, до управления конфигурациями оборудования. Вы также сможете поучаствовать в выборе интересной вам темы.
Два полноценных проекта
В течение курса вы реализуете два полноценных проекта на языке Go. Один – образовательный, над которым вы будете работать на протяжении первых двух блоков курса. Второй – про сетевую автоматизацию. Вы можете реализовать как предложенный нами проект, так и предложить свою тему, в работе над которой вам поможет ваш ментор.
Перспективы заработка
Go-разработчик
Инфраструктурные Go-разработчики создают системы мониторинга, управления и автоматизации работы с ИТ-инфраструктурой. Эти специалисты особенно востребованы на рынке, т.к. они обладают междисциплинарной экспертизой – опытны как в написании кода, так и в работе с инфраструктурой.
Вас будут обучать настоящие профессионалы
Преподаватель, руководитель R&D в Hadal Project, ex-тимлид в ИСП РАН
Преподаватель, руководитель разработки в Hadal Project, тимлид в Ozon
Преподаватель, CTO Factor Group, ex-руководитель эксплуатации/развития сети магистрального оператора связи
Программа курса
Рассчитана на 6 месяцев и составлена на основе требований работодателей — будете изучать только то, что действительно пригодится в работе.
Почему Go?
Go – один из наиболее популярных языков программирования в инфраструктурной разработке. Его выбирают за простоту, надежность, производительность и масштабируемость.
Несколько фактов о Go:
• 225 из 291 проектов Cloud Native Computing Foundation (CNCF) используют Go
• Go лежит в основе популярных инструментов контейнеризации (Docker, Kubernetes), телеметрии и мониторинга (Prometheus, Grafana), автоматизации (Terraform, Vagrant), плагинов CNI (Cilium, Calico), экосистемы OpenConfig (gNMI, goyang) и др.
• Go входит в десятку самых высокооплачиваемых языков программирования согласно исследованию Stack Overflow Developer Survey (2023)
Go VS Python
Python является довольно популярным языком программирования в сетевой разработке, поэтому обозначим несколько преимуществ Go по сравнению с ним:
• Производительность. Go превосходит Python по производительности практически во всех тестах (The Computer Language Benchmarks Game)
• Простота синтаксиса. Программы на Go проще писать и читать, чем написанные на Python, благодаря простому синтаксису, автоматическому форматированию и четкой структуре проектов
• Многопоточность. Одна из самых ярких особенностей Go, которая не реализована в Python – многопоточность основанная на встроенных в язык горутинах
• Система типов. Go - статически типизируемый язык программирования, что значительно упрощает процессы тестирования и отладки в больших проектах
Отдельно отметим, что Go не уступает Python в количестве доступных библиотек и инструментов, предназначенных для работы с сетевым оборудованием. Что вкупе с его преимуществами делает Go отличным выбором для решения множества задач по автоматизации сети.
Предварительная подготовка
Бэкенд-разработка
– Что такое НТТР (методы, ограничения и семантика)
– Как работать с данными в формате JSON
– Как писать простые SQL-запросы к базе данных
– Как пользоваться терминалом (навигация, работа с файловой системой, переменные окружения)
– Как пользоваться git-клиентом для базовых задач (склонировать репозиторий, создать ветку, закоммитить, запушить)
– Как проходить код-ревью
Сети и распределенные системы
– Как работают современные сети и протоколы (Ethernet, IP, TCP/UDP, HTTP, BGP, SNMP, Netflow и др.)
– Как работать с эмуляторами сетевого оборудования (опыт работы с GNS3, EVE-NG, Containerlab или аналогами)
– Как записывать и анализировать трафик (опыт работы с Wireshark, tcpdump или аналогами)
– Базовый опыт настройки сетевого оборудования – Cisco IOS или аналоги
Не уверены, что готовы к успешному прохождению программы?
Пройдите тест и проверьте свои знания
Цель блока – изучить пакеты стандартной библиотеки и конкурентность языка Go. Разберем все необходимые инструменты начинающего Go-разработчика и на протяжении двух первых блоков вы инкрементально разработаете один большой проект.
Цель – разобраться с более продвинутыми темами и инструментами разработчиков на Go. В рамках этого блока мы рассмотрим основные паттерны проектирования программ на Go, познакомимся с тулингом (профилирование, бенчмарки, документирование), а также рассмотрим кодогенерацию и дженерики, gRPC и OpenAPI (Swagger), Garbage Collector и другие темы.
Цель – познакомиться и научиться применять на практике библиотеки для работы с сетевым оборудованием, написанные на Go. В рамках этой темы вы попробуете инструменты по работе с CLI, SNMP, Syslog, BGP, Flow-протоколами, gNMI/gNOI, а также научитесь разбирать "сырой" трафик.
Финальный проект курса в котором вы реализуете скрапер CLI на языке Go для операционной системы Cisco IOS. Вы также можете выбрать свою тему проекта по автоматизации работы с сетями и завершить его под руководством своего ментора.
Чему вы научитесь на курсе
- Приобретете и закрепите навыки программирования на Go уровня middle разработчика
- Научитесь разрабатывать современные высоконагруженные микросервисы на Go
- Научитесь решать задачи автоматизации сети на Go
- Освоите архитектурные паттерны
- Сделаете 2 проекта с нуля и добавите их в портфолио
- Go для обработки PCAP dump'ов
- Go для работы с сетевыми протоколами (BGP, Netflow и др.)
- Go для работы с SSH, CLI, YANG
- Go для работы с телеметрией и статистикой (gNMI, SNMP)
- REST API
- HTTP
- Базы данных
- Многопоточность
- Профилирование
- Стилизация
- Дженерики
- Кодогенерация
- gRPC
Инструменты и навыки
Оплатить курс или получить
бесплатную консультацию
Оставьте ваш запрос и мы свяжемся с вами
Часто задаваемые вопросы
Курсы подходят как для сотрудников компаний, так и для частных лиц. Важно знать, что программы предназначены для тех, кто имеет среднее или высшее образование и желает повысить свою квалификацию или сменить профессию.
Онлайн обучение – синхронные и предзаписанные курсы - проходит на нашей удобной платформе. Офлайн (очное) обучение может проходить на Физтехе или на территории заказчика.
Вам нужно пройти простую регистрацию. Регистрация позволит отслеживать статус заявки и осуществит быстрый переход к процессу оплаты и обучению на курсе.
Период обучения указан в карточке каждого курса. При прохождении асинхронных курсов с выдачей сертификата вы сможете учиться в удобном для вас темпе.
Вы можете оплатить курс непосредственно на нашем сайте, используя карты любых платежных систем. Также вы можете заключить с нами договор и произвести оплату по выставленному счету с помощью банковского перевода.