Курс «Профессия Python-разработчик PRO»

Направление
Python
Формат
Видео в записи
Вебинар
Домашние задания
Есть
Итоговый экзамен
Есть
Количество уроков
4
Документ об обучении
Диплом
Обратная связь
Есть
Доступ
Сразу после покупки
Последнее обновление 18.05.2022

О курсе

6-месячный курс для практикующих специалистов. Вы получите новый опыт разработки: освоите Django REST Framework и различные архитектуры приложений, создадите чат со своим клиентом и сервером, потренируете разработку в команде.

Программа курса

  1. Уроки
    Введение в REST и DRF — Django REST framework

    Узнаете назначение каждого REST-запроса. Сможете подключать DRF к проекту и создавать API для простой модели данных.
    Введение в React. Компонентный подход

    Создадите страницу на React и разделите её на небольшие компоненты. Научитесь подключать frontend на React к проекту. Узнаете, как получать данные из API на стороне клиента.
    Serializers. Renderers. Routers

    Познакомитесь с видами serializers, renderers, routers и научитесь настраивать их под задачу. Сможете выбирать и создавать serializers для различных типов связей в моделях.
    Введение в REST и DRF — Django REST framework

    Узнаете назначение каждого REST-запроса. Сможете подключать DRF к проекту и создавать API для простой модели данных.
    Views. Filtering. Pagination

    Познакомитесь с видами views и научитесь настраивать их под задачу. Сможете добавить фильтрацию и постраничный вывод в API.
    Routing. SPA

    Научитесь создавать Single Page Applications на React и использовать react-router-dom для настройки маршрутизации на стороне клиента.
    Авторизация. Система прав

    Узнаете, в каких случаях применяются различные виды авторизации и прав. Сможете добавить авторизацию и систему прав к проекту на Django.
    Авторизация на стороне клиента

    Узнаете, как настроить авторизацию на стороне клиента и где хранить токен. Сможете прикладывать токен к запросу на сервер и сохранять его в localstorage и cookies.
    Тестирование API. Фабрики данных

    Научитесь писать различные варианты тестов для API. Сможете генерировать тестовые данные с помощью mixer.
    Система версий API. Документация для API

    Узнаете, зачем нужна система версий API и как она формируется. Сможете создавать и поддерживать несколько версий API в своём проекте. Создадите документацию к API с помощью swagger-библиотек.
    GraphQl-схемы

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

    Познакомитесь с вариантами сборки проекта и научитесь работать с формами на React. Реализуете поиск данных и страницы для post-, put- и delete-запросов.
    Развёртывание проекта с помощью docker и docker-compose

    Познакомитесь с вариантами развёртывания проекта в docker. Научитесь разворачивать проект, используя несколько контейнеров.
    Проект

    Создадите веб-сервис с личным кабинетом для управления ToDo-заметками (backend на REST API, frontend на React.
  2. Познакомитесь с разработкой на Python и освоите инструменты, которые помогут проектировать и поддерживать backend приложения.
    Уроки
    Паттерны веб-представления

    Познакомитесь с паттернами MVC, Page Controller, Front Controller. Узнаете, зачем нужен WSGI-сервер, и научитесь его создавать с применением паттернов.
    Архитектура Python-приложений

    Узнаете, как архитектура помогает разрабатывать бизнес-системы. Разберёте основные виды архитектуры и критерии хорошей бизнес-системы.
    Принципы проектирования

    Освоите принципы проектирования: DRY, KISS, SOLID, GRASP.
    Порождающие паттерны

    Это первая категория GoF-паттернов. Вы научитесь применять порождающие шаблоны в своём коде.
    Структурные паттерны

    Это вторая категория GoF-паттернов. Вы научитесь применять структурные шаблоны в своём коде.
    Поведенческие паттерны

    Это третья, последняя категория GoF-паттернов. Вы научитесь применять поведенческие шаблоны в своём коде.
    Архитектурные системные паттерны

    Познакомитесь с базовыми и объектно-реляционными паттернами. Научитесь применять архитектурные системные паттерны и взаимодействовать с базой данных с помощью Data Mapper и Unit Of Work.
    Антипаттерны

    Познакомитесь с популярными антипаттернами и научитесь находить их в системе.
    Микросервисная архитектура

    Узнаете разницу между синхронными и асинхронными системами. Научитесь работать с брокерами сообщений и применять DDD и REST.
    Проект

    Разработаете WSGI-фреймворк и слой взаимодействия с базой данных, а также обучающий сайт с применением шаблонов проектирования.
  3. Курс состоит из 12 уроков, каждый из которых — шаг к итоговому проекту. Вы создадите клиентскую и серверную часть мессенджера.
    Блоки
    Клиентская часть проекта: desktop-приложение для обмена сообщениями

    Изучите технологии: socket, select, WebSocket, Tkinter, GIL и потоки, SQLite и SQLAlchemy для создания ORM базы данных.

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

    Создадите асинхронный сервер и спроектируете базу данных, чтобы хранить данные и переписку пользователей.

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

    Узнаете, какие проблемы возникают при работе с длительными соединениями. Узнаете, какие задачи на взаимодействие не подходят для использования HTTP.
    Первый простейший протокол обмена сообщениями

    Научитесь базовой работе с сокетами, создадите простейшие TCP-сервер и клиент, реализуете протокол передачи сообщений.
    Работа сервера с множеством клиентов

    Научитесь работать с неблокирующими сокетами и познакомитесь с системным методом select.
    Конкурентность. Кооперативная многозадачность. Генераторы

    Познакомитесь с понятиями «кооперативная многозадачность» и «сопрограммы». Научитесь обходить ловушки при проектировании многозадачных программ.
    Конкурентность — часть 2. Многопоточность

    Узнаете, как работает многопоточность и чем она отличается от параллелизма. Разберётесь в специфике CPython при работе с потоками и научитесь работать с мьютексами.
    Конкурентность — часть 3. Параллелизм

    Познакомитесь с библиотекой multiprocessing. Узнаете, как работает коммуникация процессов. Научитесь основным приёмам профилирования и оптимизации вычислений.
    Конкурентность — часть 4. Итог

    Познакомитесь с понятиями task и future. Напишете простейший цикл событий. Улучшите клиент чата, который сможет принимать ввод пользователя одновременно с чтением сообщений от сервера.
    Работа с высокоуровневым API Python asyncio

    Познакомитесь с библиотекой asyncio и узнаете, как она помогает решать проблемы с предыдущих занятий. Узнаете, чем отличается разработка с asyncio от работы с синхронным Python.
    Перевод чата на WebSocket-протокол

    Познакомитесь с библиотекой aiohttp, научитесь использовать pytest в связке с asyncio, напишете сервер с использованием WebSocket-протокола и простую библиотеку для клиента.
    Добавление функций для чата: комнаты, права, аутентификация и авторизация

    Узнаете о разнице между процессами аутентификации и авторизации. Разработаете протокол для доступа к ресурсам. Напишете метод аутентификации пользователей. Добавите комнаты для своего чата с возможностью разделять роли пользователей. Узнаете о способах отладки асинхронного кода и связанных с ними проблемах.
    Работа с базами данных, асинхронные ORM

    Научитесь работе с асинхронными IO-драйверами. Узнаете, как подобрать IO-библиотеки для своего проекта, создадите БД и подключите её к приложению чата.
    Расширение клиента. Оформление кода в виде библиотеки

    Превратите свой клиент с предыдущих занятий в библиотеку, узнаете о принципах оформления API-библиотеки, создадите CLI-интерфейс для клиента.
    Введение в Tkinter и основные принципы создания графических интерфейсов

    Узнаете разные подходы к созданию графических интерфейсов и создадите прототип интерфейса для клиента.
    Функциональный интерфейс. События Tkinter, взаимодействие элементов интерфейса

    Узнаете, как работают событийно-ориентированные интерфейсы, превратите прототип в почти функциональный фронтенд.
    Рабочий клиент

    Научитесь соединять асинхронный код с синхронным, получите полностью функциональный GUI-клиент чата.
    Подготовка сервера и клиента к распространению

    Научитесь работать с setuptools и оформлять клиент и сервер в готовый к установке пакет.
  4. Курс длится 10 недель и состоит из 2 тематических блоков. Научитесь работать в команде по гибким методологиям: вести бэклог задач, декомпозировать требования, оценивать задачи и планировать спринты.
    Блоки
    Гибкие методологии (2 недели)

    Познакомитесь с Agile, Kanban, Scrum, Scrumban. Узнаете больше о работе по Scrum и подготовитесь к старту проекта.
    Командная разработка по техническому заданию
    (8 недельных спринтов)

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

    Потренируетесь создавать проект на реальной инфраструктуре.

Тарифы

Другие курсы по этой теме

Помогите нам улучшить наш сервис, поделитесь своим опытом, пройдя небольшой опрос. Он займет у вас не больше 5 минут.
Пройти опрос