Top.Mail.Ru

1 месяц
1 проект
1. Go Base
Освоишь базу языка Go, научишься писать код и создашь свой первый проект.
Язык Go
Типы данных
Функции
Условные операторы
Циклы
Структуры данных
Разработка консольных приложений
Go Compiler 
Go Modules 
Go vet 
Git 
Terminal
Debugger
Go documentation
Финальный проект блока: калькулятор
Создание консольного калькулятора с поддержкой различных операций, включая работу с римскими числами. Проект проверяет ментор.
Структуры данных
Структуры, массивы, срезы, карты.
Практика:
обработка коллекций данных и решение алгоритмических задач.
Условные операторы
Операторы if и switch, логические операции для создания сложных условий, чтение пользовательского ввода и обработка возможных ошибок ввода.
Практика:
создание функций для обработки строк, математических вычислений и решения бизнес-задач.
Простые функции
Создание переиспользуемого кода через функции, синтаксис создания функций, передача параметров и возврат значений, основы обработки ошибок в Go.
Практика:
создание программ для выполнения базовых вычислений.
Переменные и типы данных
Способы объявления переменных, числа, строки, булевы значения, арифметические операции.
Введение в программирование и Go
Установка Go, настройка рабочего окружения, базовая структура программы, функция main, команды вывода информации на экран.
Ревью
2 недели
Домашние задания с проверкой
2. Основы Go
Изучишь основы языка Go для бэкенд-разработки. Научишься писать более сложный код.
Структуры проектов
Зависимости
Библиотеки
Система типов
Безопасность
Указатели
Функциональное программирование
Создание интерфейсов
Обработка ошибок
Полиморфизм
Terminal
Unit-тесты
Инструменты Go
Срезы, карты
JSON-данные
Работа с файлами и JSON
Работа с файловой системой: чтение, запись, создание и удаление файлов. Обработка JSON-данных, паттерны обработки больших файлов и потоковая обработка данных.
Юнит-тестирование и бенчмаркинг
Unit-тесты, пакет testing, создание бенчмарков для измерения производительности кода, продвинутые техники тестирования: моки, table-driven тесты, тестирование интерфейсов.
Интерфейсы и полиморфизм
Объектно-ориентированное программирование в Go, концепция интерфейсов как контрактов поведения, неявная реализация интерфейсов, полиморфизм для создания гибкого и расширяемого кода, стандартные интерфейсы Go.
Структуры данных: срезы, карты
Коллекции, внутреннее устройство срезов, использование карт, вложенные структуры данных, встраивание типов для создания сложных моделей данных.
Функции, defer, panic, recover
Элементы функционального программирования в Go: функции как значения, замыкания, анонимные функции. Механизмы обработки ошибок через defer, panic и recover, создание собственных типов ошибок и паттерны их обработки в реальных приложениях.
Типы, указатели и управление памятью
Строгая типизация, обеспечение типобезопасности, указатели, escape-анализ компилятора, код, оптимизированный для производительности.
Структура Go проектов и Go Modules
Профессиональная организация кода, правильная структура проектов, соглашения по именованию пакетов и файлов, система Go Modules, подключение внешних библиотек, основы работы с Git.
1 проект
1 месяц
Ревью
3. Работа с пакетами, каналами и горутинами
Ты разберешься в конкурентной модели многопоточности и разработаешь полноценное приложение с обработкой ошибок, логированием и возможностью развертывания в продакшене.
Пакет net/http
Пакет Synk
REST API
Пакет Context
Пакет Worker-pool
Разработка распределенных систем
Создание программы для терминала
Горутины
Каналы
Docker
Пакеты
Финальный проект блока: Uptime Monitor Service
Спроектируешь и разработаешь сервис мониторинга доступности, который проверяет работоспособность различных веб-сервисов. Используешь все изученные концепции и создашь полноценное приложение с обработкой ошибок, логированием и возможностью развертывания в продакшене.
net/http Router
Создание веб-сервисов на Go. Основы HTTP-протокола и архитектура «клиент-сервер», пакет net/http для создания HTTP серверов, техники роутинга, создание REST API, реализация graceful shutdown.
Mutex Context
Синхронизация и безопасность данных. Проблемы race conditions и data races в многопоточных приложениях, использование Mutex и RWMutex для синхронизации доступа к общим ресурсам, продвинутые возможности Context: таймауты, дедлайны, передача значений и правильные паттерны.
Goroutine Channel Basics
Основы конкурентного программирования в Go. Конкурентность и параллелизм, горутины, паттерн worker-pool, пакет Context.
Ревью
1 месяц
Домашние задания с проверкой
4. Основные принципы программирования
Ты освоишь хорошие практики программирования, углубишься в ООП, научишься использовать паттерны, работать со структурами данных и алгоритмами, оптимизировать свой код.
testify/mock
JWT libraries
golang-migrate
sqlx
Пакет database/sql
PostgreSQL
Паттерн Repository
Чистая архитектура
SQL
Базы данных
Продвинутая работа с данными
Техники повышения производительности PostgreSQL: индексы, оптимизация запросов, анализ планов выполнения. Паттерны работы с большими объемами данных, пагинация, кеширование результатов. Техники мониторинга производительности БД и профилирования медленных запросов.
Безопасность в Go-приложениях
SQL-инъекции и методы защиты, основы аутентификации и авторизации, работа с JWT-токенами
Паттерны работы с данными и чистая архитектура
Паттерн Repository, принципы чистой архитектуры: разделение на слои, инверсия зависимостей, независимость от фреймворков. Dependency Injection, написание unit-тестов с использованием моков и интерфейсов.
Введение в БД и PostgreSQL
Основы работы с базами данных. Язык SQL, установка и настройка PostgreSQL, основы проектирования таблиц и связей, библиотека sqlx и система миграций.
Ревью
1 месяц
Домашние задания с проверкой
5. Go pre-project
Разработаешь свой проект API с использованием веб-сервера, системы кэширования и других инструментов.
Docker Compose
Метрики
Grafana
Prometheus
JWT libraries
Паттерн Super Service
Паттерн Facade
Паттерн Proxy
Redis
Слои
Роутер go-chi
go-swagger
TCP-соединения
Мониторинг приложения
Создание системы мониторинга, сбор и экспорт метрик производительности: время ответа, количество запросов, использование памяти. Настройка Grafana, пакет runtime, лучшие практики мониторинга микросервисов.
Взаимодействие с системой кеширования
Интеграция с Redis, работа с геоданными: хранение координат, поиск объектов по радиусу, вычисление расстояний. Паттерн Proxy, стратегии кеширования и управление временем жизни данных в кеше.
Применение чистой архитектуры
Практическое применение принципов чистой архитектуры, разделение кода на слои: контроллеры для обработки HTTP запросов, слой use cases для бизнес-логики, repository для работы с данными. Создание интерфейсов между слоями, применение паттернов Facade и Super Service для упрощения сложных операций и создания удобных API.
Взаимодействие с HTTP сервером
TCP-протокол, контейнеризация с Docker, создание HTTP-серверов с использованием стандартной библиотеки и роутера go-chi, создание middleware для логирования, аутентификации и обработки CORS, проектирование REST API, автоматическая генерация документации с go-swagger, реализация JWT-авторизации и graceful shutdown для production-ready приложений.
1 месяц
Домашние задания с проверкой
6. Go Advanced
Ты научишься работать с микросервисной и Event-driven архитектурой.
Apache Kafka
RabbitMQ
Kubernetes
Protocol Buffers
Паттерны Circuit Breaker и Retry
Паттерны Event-Driven Architecture
API Gateway
nginx
gRPC
Микросервисная архитектура
RPC-системы
Event Driven Architecture
Принципы Event-Driven Architecture для создания слабосвязанных и масштабируемых систем, интеграция с RabbitMQ, платформа Apache Kafka, стратегии обработки сообщений, обеспечение порядка доставки, обработка ошибок и мониторинг производительности в событийно-ориентированных системах.
Применение микросервисной архитектуры
Принципы микросервисной архитектуры: декомпозиция монолита на независимые сервисы, их взаимодействие и управление. Использование nginx, реализация API Gateway, паттерны обеспечения отказоустойчивости и масштабирования микросервисов.
Применение RPC
Концепция Remote Procedure Call, протокол JSON-RPC, фреймворк gRPC, генерация кода из protobuf-схем, создание клиентов и серверов, обработка ошибок и потоковая передача данных.
1 месяц
Практика
7. Командный проект
Студенты работают над командным проектом с ментором-тимлидом. Он ставит задачи, дает фидбек по работе и отвечает на вопросы. Все процессы максимально приближены к реальной разработке в IT-компании.
Один из проектов:
Разработка платформы для получения случайных фильмов с оценками пользователей и персонализированными рекомендациями через Telegram-бота.
1 месяц
8. Подготовка к собеседованиям
На этом этапе мы поможем тебе подготовиться к собеседованиям, освежить и систематизировать все знания. В финале ты пройдешь итоговую проверку по всем темам с наставником.
Финальное собеседование
Итоговое ревью с ментором, максимально приближенное к собеседованиям в IT-компаниях, всесторонне оцениваются технические знания, практические навыки и готовность кандидата к трудоустройству.
Промежуточная практика и навыки интервьюера
Первое промежуточное собеседование в условиях, максимально приближенных к реальным, с получением обратной связи и рекомендаций по улучшению. Технические аспекты проведения собеседований: как интервьюер оценивает кандидатов, какие критерии использует, на что обращает внимание. Предоставляются материалы для подготовки по всем ключевым знаниям и навыкам Go-разработчика.
Как все устроено
Основные этапы подготовки к техническим интервью, начиная от анализа вакансий до финальных собеседований. Общая структура процесса найма в IT-компаниях, роли участников и их ожидания от кандидатов.
3 недели
9. Трудоустройство
Наш HR-консультант поможет составить резюме, подготовить самопрезентацию и ответы на популярные вопросы работодателей. Специальный бот будет отбирать подходящие вакансии и отправлять отклики, чтобы у тебя было больше времени на подготовку. Мы будем поддерживать тебя во время прохождения собеседований и поможем выбрать лучший оффер.
Оффер и трудоустройство
Тактики ведения переговоров на этапе получения оффера: обсуждение зарплаты, условий работы, дополнительных бенефитов. Действия после успешного устройства на работу, включая адаптацию в новой команде и планирование профессионального развития.
Выход на рынок
Эффективное использование инструментов для откликов на вакансии. Стратегии увеличения количества откликов и приглашений на собеседования.
Резюме и подготовка к собеседованиям
Принципы составления эффективного резюме, которое привлекает внимание рекрутеров и HR-специалистов. Разбор форматов собеседований в IT: технические интервью, поведенческие вопросы, тестовые задания, групповые собеседования. Предоставляется индивидуальная карьерная поддержка с персональными рекомендациями.
Флоу поиска работы
Пошаговый алгоритм поиска работы: от анализа рынка до получения оффера. Предоставляются ресурсы и каналы поддержки для решения возникающих вопросов в процессе поиска работы, включая менторскую помощь и сообщество выпускников.