Навыки и технологии, которые вы освоите

Git
Python
AsyncIO
Django
Flask
FastAPI
ETL
Oauth2
PostgreSQL
Elasticsearch
Redis
ApacheKafka
RabbitMQ
Docker
Nginx
ELK
SOLID
Apidoc/Swagger

Как мы учим

Курс длится 6 месяцев, учёбе нужно посвящать около 20 часов в неделю

Поможем достичь профессиональных целей — для этого у нас целый карьерный центр

Будете учить то, что точно пригодится в работе

Мы постоянно обновляем программу и следим за изменениями рынка — тут не будет давно записанных видео и неактуальных материалов
Бесплатно3 часа
Вступительный тест
Здесь вы узнаете о том, как устроено обучение, и пройдёте тест из вопросов про бэкенд-разработку.
0 модуль5 часов
Интро-модуль
Серия уроков про требования к коду, работу с Git, процесс обучения на курсе и первое практическое задание.

— Небольшой онбординг
— Знакомство с Git
— Требования
1 модуль115 часов
Сервисы Admin Panel + ETL
Создание и настройка панели администратора для онлайн-кинотеатра на Python с применением Django. Детальное изучение самых используемых компонентов Django — админки и ORM. Знакомство с индексами, миграциями и оптимизацией запросов. Проектирование реляционной базы данных. Устройство Docker и работа Nginx. Знакомство с архитектурным паттерном ETL и создание своего ETL для перекачки данных из PostgreSQL в Elasticsearch.

Спринт 1
— Проектирование базы данных, знакомство с индексами и потреблением памяти
— Знакомство с процессом вставки данных, dataclasses и работой со временем в базах данных
— Вводная информация о базах данных без SQL, критерии выбора фреймворка и подробное изучение Django: от установки до админки

Спринт 2
— Глубокое изучение технологии ORM
— Реализация API в сотрудничестве с Django и тестирование результата
— Подробное знакомство с Docker
— Обработка запросов в production-среде и конфигурирование Nginx

Спринт 3
— Подробное изучение Elasticsearch, полнотекстового поиска и архитектуры ETL
Python + UWSGI + DjangoPostgreSQLNginxDockerETLElasticsearch
+ 1 проект в портфолио
Админка онлайн-кинотеатра + ETL для перекачки данных
2 модуль80 часов
Сервис Async API
Погружение в асинхронный Python и принципы его работы и применение Fast API на практике. Знакомство с итераторами, генераторами и корутинами. Разбор многопоточности и многопроцессности.

Студенты работают в командах по 2–3 человека. Процесс разработки имитирует разработку в настоящей продуктовой компании — у команд есть тимлид, код-ревью и еженедельные демо с наставниками.

Спринт 4
— Принципы работы в командном модуле и ТЗ на спринт
— Описание принципа работы в Git
— Знакомство с асинхронным подходом, итераторами, генераторами и корутинами
— Разбор асинхронных фреймворков: Twisted, AIOHTTP и FastAPI
— Детальное изучение FastAPI

Спринт 5
— Подробное описание общих принципов код-ревью
— Разница между солидным и несолидным кодом
— Функциональные тесты для сервиса и инфраструктура тестов
— Понятие API и инструкция по написанию документации
PythonASYNCIOFastAPIRedisИтераторы и генераторыКорутины
+ 1 проект в портфолио
API онлайн-кинотеатра
3 модуль80 часов
Сервис авторизации
Разработка сервиса, отвечающего за создание, хранение и логирование профиля юзера. Он позволит пользователям регистрироваться в кинотеатре и управлять своим аккаунтом. Подробный разбор, как правильно хранить пароли и обеспечить безопасность пользовательских данных.

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

Погружение в синхронные фреймворки на примере Flask и работа с реляционными базами данных на примере PostgreSQL. Фокусировка на компьютерной безопасности и правильной организации сбора, защиты и хранения данных.

Спринт 6
— Объяснение, для чего нужен сервис Auth
— Анализ и сбор требований, работа с чувствительными данными, безопасность, шифрование, хеширование и управление доступом к ресурсам
— Изучение способов авторизации и проработка требований к сервису. Продолжение изучения Flask и Redis

Спринт 7
— Детальный рассказ о работе OAuth 1.0, OAuth 2.0 и openID
— Работа с каптчей и двухфакторной авторизацией
— Изучение общения между микросервисами. Настройка устойчивости сервиса к нагрузкам и изменениям API, внедрение в AsyncAPI авторизации, управление уровнем нагрузки и быстрое нахождение проблем
Python + FlaskPython + FlaskRedisPostgreSQL (реплики/шарды)OpenIDoauth2jwtсaptcha + Proof-of-Work
+ 1 проект в портфолио
Сервис авторизации пользователей с защитой данных
4 модуль80 часов
Сервис UGC
Сервис разрешает пользователям создавать свой контент в вашем кинотеатре — оставлять лайки, комментарии, отзывы к фильмам. Студентам нужно организовать сбор и хранение данных об активности пользователей.

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

Спринт 8
— Что такое UGC и зачем оно нужно. Планирование сервиса
— Описание архитектуры и полезные советы по ее проектированию
— Выбор хранилища, событийная работа с данными и работа с Kafka
— Подходы к хранению и обработке данных, которые не помещаются на один сервер. Локальный подъем вычислительного кластера и работа с данными внутри него

Спринт 9
— Ещё одно распределённое хранилище, хранение данных и оптимизация хранения и обработки
— CI/CD: Построение непрерывной интеграции для приложения
— Знакомство с логированием в микросервисной архитектуре
PythonMongoApacheKafkaClickhouseApache SparkCI/CDELK
+ 1 проект в портфолио
Организация сбора и хранения данных об активности пользователей
5 модуль60 часов
Сервис нотификации
Сервис нотификации отвечает за коммуникацию с пользователем через Email, мобильные пуш-уведомления, websocket в браузере. Это часто решаемая бизнес-задача в коммерческой разработке — от правильной коммуникации с пользователем зависят показатели бизнеса.

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

Новые технологии: брокеры сообщений на примере RabbitMQ и Websocket.

Спринт 10
— Описание принципа работы сервиса нотификаций
— Механизм отправки сообщений пользователям и единая политика контактов
— Проектирование коммуникационной системы
— Устройство Email и шаблонизаторов. Изучение, какие протоколы или технологии можно применить в разных ситуациях, когда нужно связаться с клиентом
— Использование брокера сообщений RabbitMQ. Сервисы транзакционной рассылки писем и сокращенные ссылки
— Возвращение к CI/CD-процессу
PythonFastAPIRabbitMQCI/CD
+ 1 проект в портфолио
Сервис нотификаций через Email, мобильные пуш-уведомления, websocket в браузере
Финишная прямая80 часов
Дипломный проект
Студенты сами выбирают бизнес-задачу или придумывают её, планируют своё время, проектируют архитектуру решения, выбирают и исследуют технологии, затем защищают разработанное приложение.

Финальная точка — защита дипломного проекта, где выпускники показывают результат работы своей команды.

Спринт 11
— Подготовка к финальной прямой. Организация работы в дипломном модуле
— Идеи для диплома. Готовые идеи для реализации в дипломном проекте
— Проработка задачи с заказчиком. Требования для разработки и виды заказчиков. Декомпозиция проекта и самостоятельная подготовка ТЗ для заказчика
— Организация рабочего времени. Полезные советы, как организовать рабочее время и наладить прозрачные процессы в команде
— Архитектура и планирование. Риски и планирование задач по проекту
Python + Framework (фреймворк студенты выбирают сами)Хранилище данных и остальные технологии студенты выбирают сами
+ 1 проект в портфолио
Сервис на выбор
Карьерный трек1 неделя
Программа трудоустройства
Карьерный трек разделён на семь блоков. Сначала студент думает, точно ли ему нужно менять место, и определяет собственные критерии для комфортной работы. Далее он составляет резюме вместе с опытным HR-консультантов и тщательно готовится ко всем видам собеседований, а мы будем предлагать актуальные вакансии партнёров.

Этот курс может оплатить ваш работодатель

Если знания курса пригодятся вам на текущем месте работы, поговорите с руководителем о частичной или полной оплате учёбы

Что ещё важно

Академический отпуск
Если жизненные обстоятельства осложнились или темп учёбы нужно снизить, вы можете уйти в академический отпуск
В любой момент вернём деньги
Вы можете вернуть деньги за оставшееся время обучения: для этого не нужно ничего доказывать
Будете работать c Linux
Даже если у вас компьютер на Windows, на курсе вам придётся работать с Linux-системами — весь современный промышленный бэкенд на Python запускается только на них
Вводной части в Python не будет
Если вы пока не уверены в своих силах, советуем присмотреться к курсу «‎Python-разработчик»‎ с нуля

Отвечаем на вопросы

Да, причём в любой момент. Если обучение в потоке уже началось, придётся оплатить прошедшие дни — но мы вернём деньги за оставшееся время обучения. Более подробно рассказываем об этом в седьмом пункте [оферты]оферты.