Чем занимаются Go-разработчики?
Создают высоконагруженные сервисы в сферах онлайн-ретейла, доставки, финтеха, интернета вещей. Язык программирования Go хорошо подходит для такого рода проектов, так как отличается масштабируемостью и высокой производительностью.
Навыки и инструменты, которые будете использовать
Мы составляем и обновляем программу вместе с действующими Go-разработчиками и работодателями — так вы учитесь только тому, что актуально
- REST API
- HTTP
- Базы данных
- Многопоточность
- Профилирование
- Стилизация
- Документация
- Дженерики
- Кодогенерация
- TCP/UDP
- gRPC
- Паттерны
Это курс для разработчиков с опытом
Вам понадобятся базовые знания Go и бэкенд-разработки. Чтобы программа не оказалась слишком сложной, рекомендуем свериться со списком навыков, которые понадобятся для комфортного обучения на курсе.
Вот каких знаний достаточно, чтобы осваивать Go с нами. Проверьте себя.
Курс подойдёт вам, если
- У вас есть опыт работы с Go, но вы хотите упорядочить свои знания
- Вы уже программируете на другом языке и хотите перейти на Go
- Вы работаете Go-разработчиком и хотите выйти на новый уровень
- Вы работаете на смежной должности и хотите сменить профессию
Программа курса
Введение и вступительный тест
Вы узнаете о том, как устроено обучение, и пройдёте тест по основам бэкенд-разработки и синтаксиса Go.
Пакеты стандартной библиотеки
В этом модуле расскажем о популярных пакетах Go. Вы научитесь писать и тестировать HTTP-приложения с net/http, управлять передачей данных и временем жизни задач c context, делать запросы в базу данных, познакомитесь с особенностями сериализации и обработки ошибок в Go.
Конкурентность
Расскажем, что такое многопоточность на уровне операционной системы. Вы узнаете, в чём разница между потоком и процессом, какие существуют виды многопоточности, что происходит при переключении потоков, как бороться с deadlock и datarace. Отвечая на эти и другие вопросы, плавно перейдём к устройству планировщика Go. Потом познакомим вас с легковесными потоками в языке — goroutines и другими средствами языка для написания многопоточных приложений.
Первый выпускной проект
Вы сможете выполнить проект по предложенному нами ТЗ индивидуально или в команде с другими студентами. Также вы сможете сделать свой проект, предварительно согласовав его с ментором. Проверять выпускные проекты будут менторы. На выполнение проекта у вас будет 5 недель.
Паттерны проектирования
В этом модуле рассмотрим паттерны проектирования и антипаттерны программирования на Go. Вы узнаете, как реализовать наиболее распространённые паттерны проектирования приложений и как избежать неявных ошибок при программировании на Go.
Туллинг
Сильная сторона Go — встроенные инструменты разработчика. В этом модуле вы научитесь использовать туллинг для стилизации и статического анализа кода, создания документации, кодогенерации и профилирования.
Расширенная стандартная библиотека
В Go многие вещи доступны «из коробки», и приветствуется написание собственных решений на основе стандартной библиотеки. В этом модуле вы завершите знакомство со встроенными пакетами Go и познакомитесь с «расширенной» стандартной библиотекой языка, в которой содержится большое количество полезных пакетов.
Второй выпускной проект
Вы сможете выполнить проект по предложенному нами ТЗ индивидуально или в команде с другими студентами. Также вы сможете сделать свой проект, предварительно согласовав его с ментором. Проверять проекты будут эксперты — авторы и менторы курса. На выполнение проекта у вас будет 5 недель.
Вебинары
В дополнение к теории и практике менторы будут проводить для вас вебинары один раз в спринт, в конце первой недели. Вебинары нужны для того, чтобы подробнее остановиться на сложных темах, разобрать самые частые ошибки и ответить на вопросы по курсу, Go или программированию в целом.