Дистанционный курс — 4,5
GO разработчик
Научим писать production-ready код на одном из самых востребованных языков web-разработки за 4,5 месяца!
Свяжемся в течение рабочего дня
Нажимая на кнопку, я соглашаюсь на обработку персональных данных
Старт групп
GO02-onl — 31 июля
Дни и время занятий
ПН, ЧТ, 19:00 — 22:00
МестаСвободных мест
18 из 18

Кем ты станешь?
Go - стремительно развивающийся и набирающий большую популярность язык разработки бэкенда для web-серверных приложений. Созданный в Google, язык уже снискал широкую популярность за свой молниеносный билд, потрясающий перформанс, простой синтаксис, сильное и активное комьюнити и широко используется как в состоявшихся гигантах на международной IT-арене , так и прекрасно подходит для стартапов любого уровня. Google, Intel, Microsoft, Avito, Ozon, - проще назвать компании, которые не работают с Golang, чем перечислять те, кто с этим языком тесно связан.
Чему ты научишься?
- Будешь уверенно владеть синтаксисом асинхронного программирования на Go;
- Узнаешь фундаментальные принципы современного web-серверного приложения;
- Работать с базами данных;
- Научишься создавать и конфигурировать масштабируемые решения;
- Поймешь, как вести себя на собеседовании и о чем говорить на этапе технического интервью;
- Сможешь пойти работать в многие IT-компании мира или реализовывать свои проекты любого уровня сложности.
Зарплата Go разработчика
Источник данных: dev.by
600 $ - 1000 $
На рынке не хватает Go разработчиков
232сейчас ищут Go разработчика
Программа курса
Рассчитана на 148 академических часов
Составлена практикующими разработчиками для новичков в IT. Это лучший курс по Go разработке для начинающих.
Введение в Go
Введение в программирование
- О программировании в целом
- Распространенные языки программирования (классификации, виды)
- Топ языков программирования
- Устройство архитектуры компьютера и сетей
- playground
- Состав файла .go
- Пакеты
- Функции
- Пакет fmt, вывод текста
- go run, Hello World
Переменные, циклы, условный оператор
- Переменные (экспортируемые\ неэкспортируемые), константы
- Операторы
- IDE (VS Code, Goland)
Типы данных, циклы
- Типы данных\значения по-умолчанию, преобразования типов
- Циклы
- Условные операторы, switch
Linux и terminal
- linux - общие сведения об ОС, отличия от Windows, почему им пользуются
- file/catalog
- basic terminal commands (cd, ls, cat, mv, cp, sudo, ps, mkdir, grep, |, basic vim)
- go build, go run
- makefile
Структуры, слайсы и отображения
- Структуры
- Массивы, слайсы
- Отображения
Репозитории
- Введение в Git
- Установка и настройка Git
- Работа с командами Git
- Git Flow
- Сложные операции
- Обзор основных репозиториев (Github, Gitlab, Bitbucket)
Методы, интерфейсы, конфигурации
Методы и указатели
- Кастомные типы
- Методы
- Указатели
- Pointer/value receiver
- Алгоритмы, O-нотация
Интерфейсы
- Интерфейсы\any
- Приведение типов, type/interface switch
- Дженерики
- Алгоритмы сортировки, пакет sort
Файлы и логирование
- Стандартные интерфейсы: Error, Stringer, Reader, Writer
- Файлы, чтение/запись в файл, тип byte
- Логирование
- Линтеры
- Алгоритмы поиска - btree, hash map (ознакомительно)
Конфигурирование приложений и обработка пользовательского ввода
- Флаги, переменные окружения, стандартный ввод
- Отложенный вызов - defer
- Паники, обработка паник (panic, recover)
- case study: nil pointer dereference, nil interface
Работа с сетью и кодирование данных
Работа с сетью
- OSI
- IP, DNS
- HTTP (подробно)
- HTTP2
- UDP
- FTP
- WebSockets
- Пакет http. Простейшие http client/server
Кодирование данных: JSON и друзья
- encoding/json,
- xml/yaml, protobuf, easyjson (поверхностно)
- Читаем исходники: encoding/json (опционально, если останется время)
Многопоточность и работа с API
Многопоточность в GO - горутины и каналы
- конкурентность, параллелизм, многопоточность
- Горутины
- Каналы
- select
Многопоточность в GO - синхронизация и управление
- Mutex
- WaitGroup
- Устройство и работа шедулера (MPG модель)
- sync.Map, Atomic, Semaphore
- Стандартные многопоточные шаблоны: worker pool, rate limiter
- Читаем исходники: sync
API
- REST, OpenAPI
- JSON API
- RPC, grpc
- GraphQL
Работа со временем, контекст, модули
- Пакет time, time.Ticker
- Пакет context
- go modules, импорт внешних зависимостей
- os.Signal, реализация graceful shutdown
Базы данных
Основы реляционных баз данных
- SQL
- Relations
- Transactions
- Joins
Эффективная работа программ с реляционными БД
- Query-builders
- ORM
- Indexes
- Migrations
Тестирование и производительность
- Пакеты testing, mock, require
- benchmarks, testing.B
- Знакомство с стандартными шаблонами проектирования - "standard go layout", принципы DDD, TDD, CQRS, ONION
NoSQL Базы данных
- Типы и принципы NoSQL
- case study: caching with Redis
- case study: storing unstructured data with MongoDB
Практическое занятие часть 1
- Разбор вопросов и кода студентов
- Закрепление пройденного материала
Углубленное изучение Go
Модель памяти GO, профилирование
- Модель памяти
- stack/heap, escape analysis
- Пакет arena
- Профилирование, pprof
- Сборщик мусора
Брокеры сообщений
- event-driven (подход в разработке, какие задачи решает, кейсы использования)
- Технологии реализации подхода: брокеры сообщений Kafka, RabbitMQ
Аутентификация/авторизация и безопасность в сети
- Инструменты и технологии обеспечения аутентификации/авторизации в компьютерных системах и web: Cookie, Basic Auth, JWT, OAuth, RBAC-модель
- Распространенные типы атак: MITM, injections, подбор пароля
- Технологии и инструменты обеспечения безопасности компьютерных систем, web: TLS/HTTPS, хэширование, алгоритмы шифрования, COR
Принципы разработки и паттерны нагруженных систем
- SOLID, KISS, DRY, YAGNI
- Monolith
- Microservice
- Serverless
- gateway
- balancer
- caching
- case study: микросервисная архитектура Twitter
Мониторинг и масштабирование
- Инструменты мониторинга: метрики на основе prometheus+ grafana, vicrotiametrics
- Инструменты трассировки: opentracing, jaeger
- Принципы и подходы обеспечения масштабирования нагрузки: виды масштабирования, миграции, CAP-теорема, репликации и шардирование БД
Практическое занятие часть 2
- Рассмотрение хороших и плохих паттернов в коде
- Разбор кода студентов
- Ответы на вопросы
Экзотический GO
- go generate
- templates
- Пакет reflect
- Пакет unsafe
- plugins
- gomobile
- cgo
Работа в команде
- Системы управления проектами (JIRA, Trello, Github Projects)
- Код ревью
- Челленджинг
- Agile - SCRUM, Kanban, Sprints
DevOps
DevOps
- DevOps инженер
- AWS вводная
- EC2
- S3
Amazon: основные сервисы
- RDS
- ELB
- Route53
- AWS CLI
- Развертывание приложения в облако AWS
Микросервисная архитектура, Docker / Docker compose
- Docker как технология
- Dockerfile
- Переменные окружения и аргументы
- Docker network
Docker (Часть 1)
- Docker inspect
- Docker compose
- Volume
- Docker images docker hub / aws
Docker (Часть 2)
- Как задеплоить с докером
- Знакомство с CI/CD
- GitHub Actions
Ретроспектива
Ретроспектива
- Подготовка к защите курсового проекта
- Собеседования (техническое/архитектурное/алгоритмы
Защита дипломных проектов
Защита курсового проекта
- Защита курсового проекта
Онлайн-тренинг "Трудоустройство в IT"
Трудоустройство в IT
- Составление резюме (теория + практика)
- Составление профиля на LinkedIn (теория + практика)
- Soft skills, которые важны в рамках интервью
Преподаватели курса
Учись у лучших. Все наши преподаватели - практикующие специалисты в международных IT-компаниях

Шамиль
Ваше резюме после курса:

Профессиональные навыки:
- Создание веб-серверных приложений на языке Go;
- Написание юнит тестов;
- Написание бенчмарков и профилирование;
- Знание и понимание принципов мониторинга приложения с использованием Prometheus + Grafana;
- Использование инструментов трейсинга и логирования;
- Умение работать с реляционными базами данных;
- Умение работать с брокерами сообщений;
- Понимание принципов безопасности сетевых приложений, умение реализовать базовые механизмы аутентификации/авторизации;
- Знание и понимание паттернов проектирования и SOLID.

Помощь в трудоустройстве
Опытные HR-специалисты отвечают на вопросы, готовят к собеседованию и помогают каждому студенту получить работу мечты.
Раз
Рекомендации по составлению портфолио и резюме
Два
Подготовка к собеседованию в компаниях-партнёрах
Три
Персональные консультации по развитию карьеры
Стоимость обучения
Полная разовая оплата
73 000₽
Возможен вариант оплаты по банковской рассрочке от 6 до 18 месяцев. Более подробную информацию по программам рассрочки и кредитования можно узнать у менеджеров.
Оплата в рассрочку
Запись на обучение
Свяжемся в течение рабочего дня
Нажимая на кнопку, я соглашаюсь на обработку персональных данных