OTUS

Python Developer

  • Язык: Русский
  • Осталось мест: не ограничено
Записаться

Python Developer

Чем специализация отличается от обычного курса?

Здесь вы прокачаетесь сначала до junior-разработчика, а потом сразу же – до middle. И всё это в пределах одной программы. 

Кому подходит специализация?

  • Тем, кто хочет с нуля освоить профессию Python-разработчика. Ваши навыки разработки будут соответствовать строгим требованиям IT-компаний, даже если сейчас вы ничего не знаете о программировании
  • Тем, кто ещё не определился с языком программирования. Сможете полностью переквалифицироваться в Python-разработчика
Сравнить уровни сложности курсов по Python

Где нужен Python?

  • бэкенд-разработка 
  • высокие нагрузки
  • автоматизация тестирования
  • веб-разработка
  • data science

Каких навыков вам не хватает?

Программа обучения
  • Основы Python

    Цель: знакомство с базовыми структурами данных и операторами Python. Азы работы с shell и git.

    Тема 1: Введение в курс. Подготовка к работе

    Тема 2: Базовые типы данных

    Тема 3: Управление потоком

    Тема 4: Коллекции

    Тема 5: Функции

    Тема 6: Функции. Часть 2 (Декораторы)

    Тема 7: Работа с файлами // ДЗ

  • Продвинутый Python

    Знакомство с ООП в Python. Применение всех основных принципов ООП, знакомство с датаклассами. Разделение на модули.

    Тема 1: Основы ООП

    Тема 2: Продвинутый ООП. Продолжение

    Тема 3: Продвинутый ООП. Исключения

    Тема 4: Модули //ДЗ

    Тема 5: Знакомство со встроенной библиотекой

    Тема 6: Тесты // ДЗ

    Тема 7: Практика

  • Взаимодействие с внешним миром. Создание простейшего API. Сборка проекта

    Основы работы с файлами (локально) и сетью (HTTP). Создание API

    Тема 1: Знакомство со встроенными модулями

    Тема 2: Основы HTTP взаимодействия

    Тема 3: Файлы и сеть

    Тема 4: Основы фронтенда

    Тема 5: Базовый фронтенд // ДЗ

    Тема 6: FastAPI — быстрая разработка API: знакомство

    Тема 7: FastAPI — быстрая разработка API: тело и роутеры

    Тема 8: Системы контроля зависимостей

    Тема 9: Docker//ДЗ

  • Работа с базами данных, асинхронное программирование

    Знакомство с асинхронным программированием. Знакомство с базами данных: PostgreSQL, Mongo DB, Redis. Знакомство с ORM, асинхронная работа с БД.

    Тема 1: Хранение данных в реляционных БД. Язык SQL

    Тема 2: Групповая менторская консультация №2

    Тема 3: ORM: SQLAlchemy

    Тема 4: SQLAlchemy: связи между таблицами в БД

    Тема 5: Миграции схем: alembic

    Тема 6: Сложные связи в БД

    Тема 7: Асинхронное программирование в Python

    Тема 8: Асинхронная работа с БД//ДЗ

    Тема 9: Работа API с БД

    Тема 10: Асинхронная работа API с БД

    Тема 11: Взаимодействие приложений между контейнерами, docker compose//ДЗ

    Тема 12: Групповая менторская консультация №3

  • Веб-разработка на Django

    Знакомство с Django, Django ORM, Generics. Тестирование веб-приложений, фабрики.

    Тема 1: Знакомство с Django

    Тема 2: Django ORM// ДЗ

    Тема 3: Шаблоны (Templates)

    Тема 4: Работа с админкой, кастомные команды

    Тема 5: Групповая менторская консультация №4

    Тема 6: Формы в Django // ДЗ

    Тема 7: Class-Based Views (CBV)

    Тема 8: Тестирование Django-приложений с Pytest//ДЗ

    Тема 9: Django и отложенные задачи с Celery и Redis//ДЗ

    Тема 10: Выбор темы и организация проектной работы

    Тема 11: Групповая менторская консультация №5

  • DevOps

    Автоматизация тестирования и деплоя. Знакомство с GitHub Actions, GitLab CI/CD

    Тема 1: GitHub Actions//ДЗ

    Тема 2: GitLab CI//ДЗ

    Тема 3: GitLab CD

    Тема 4: Групповая менторская консультация №6

  • Проектная работа

    Заключительный месяц курса посвящен разработке проекта. В качестве темы выбирается то, что интересно писать студенту и то, что потенциально можно будет потом включить в свое резюме. Участие в разработке некоего open source продукта тоже может рассматриваться в качестве выпускного проекта. При этом не обязательно закончить его за месяц. В процессе написания проекта можно получить консультации преподавателей. Примеры тем проекта: - система мониторинга ПК в корпоративной сети - свой ORM - web приложение по поиску групп с целевой аудиторией в ВК - исследование dataset’а с визуализацией

    Тема 1: Выбор темы и организация проектной работы

    Тема 2: Консультация по проектам и домашним заданиям

    Тема 3: Защита проектных работ

  • База

    Этот модуль посвящен рассмотрению фундаментальных основ языка на продвинутом уровне, а также применению общих практик разработки ПО в контексте "экосистемы" Python. Целью является достижение единого понятийного аппарата, формирование представления о внутреннем устройстве языка, его возможностях, ограничениях, недостатках и области применимости. В модуле рассматриваются аспекты функционального, процедурного и ОО программирования на Python, особенности устройства виртуальной машины, вопросы обеспечения качества ПО и автоматизации инфраструктурных задач.

    Тема 1: Структура проекта, управление зависимостями, настройка окружения: обзор и лучшие практики//ДЗ

    Тема 2: Дистрибуция кода и развертывание: путь от лэпота до кластера

    Тема 3: Аннотации типов: уровень nightmare! //ДЗ

    Тема 4: Внутренности: байткод, его исполнение и виртуальная машина//ДЗ

    Тема 5: Внутренности: устройство основных типов, управление памятью и GIL

    Тема 6: ООП: Объектная модель и особенности ООП в Python//ДЗ

    Тема 7: ООП: Дескрипторы и метапрограммирование

    Тема 8: Тестирование: pytest и как писать тесты//ДЗ

    Тема 9: Тестирование: (анти)паттерны и инструменты

    Тема 10: Дизайн кода и архитектура: абстракции, модульность, SOLID

    Тема 11: Дизайн кода и архитектура: domain driven design, чистая архитектура//ДЗ

    Тема 12: Дизайн кода и архитектура: event driven архитектура, микросервисы

    Тема 13: Дизайн кода и архитектура: паттерны проектирования

  • Web-программирование

    Этот модуль посвящен веб-разработке, тому, какой она выглядит со стороны Python программиста и какими особенностями обладает. Целью является рассмотрение нюансов и лучших практик по созданию и эксплуатации веб-сервисов с использованием фреймворка Django. В модуле рассматривается сам Django, внутреннее устройство ORM и других его составляющих, обсуждаются особенности построения REST API, масштабирования веб-проектов.

    Тема 1: Сетевое взаимодействие и архитектура web-серверов//ДЗ

    Тема 2: Создание динамических страниц: от CGI до ASGI

    Тема 3: MVC/MVT фреймворки на примере Django//ДЗ

    Тема 4: ORM: хорошее, плохое и злое

    Тема 5: Работа с БД: транзакции, репликация, шардирование и даже NoSQL

    Тема 6: API: что такое настоящий REST и как создавать RESTful приложения

    Тема 7: FastAPI: основы //ДЗ

    Тема 8: FastAPI: взаимодействие с БД и SQLAlchemy

    Тема 9: Аутентификация и авторизация//ДЗ

    Тема 10: API: (g)RPC, GraphQL

    Тема 11: Безопасность: обзор распространенных проблем, уязвимостей и лучших практик

  • ML Engineering

    Этот модуль посвящен знакомству с фундаментальными библиотеками, применяемыми для анализа данных. Python является де-факто стандартом при решении аналитических задач, поэтому данный аспект языка нельзя обойти стороной. При этом, целью модуля является не погружение в математические дебри, а рассмотрение таких инструментов как jupyter, numpy, pandas и matplotlib и области их применения в инженерной и аналитической деятельности.

    Тема 1: Высокопроизводительные вычисления с NumPy//ДЗ

    Тема 2: Исследовательский анализ данных c Pandas//ДЗ

    Тема 3: Инструменты работы с данными: IPython, matplotlib, seaborn

    Тема 4: Оркестрация задач: jenkins, luigi, airflow

    Тема 5: Нейронки: PyTorch, TensorFlow, HuggingFace и LLM//ДЗ

    Тема 6: Обзор big data экосистемы: хранение и обработка данных, обучение и inference, model serving

  • Highload

    Этот модуль посвящен высокопроизводительным вычислениям на Python. В модуле рассматриваются особенности конкурентного и асинхронного программирования и то, как на это влияет устройство виртуальной машины языка. Так же внимание уделяется превратностям написания расширений на С и вопросам профилирования кода. В качестве бонуса происходит знакомство с языком Go, который часто используется Python программистами для решения performance-critical задач.

    Тема 1: Профилирование производительности

    Тема 2: Concurrency: многопоточное программирование и примитивы синхронизации//ДЗ

    Тема 3: Concurrency: процессы и межпроцессное взаимодействие (IPC)

    Тема 4: Ускорение с помощью C: расширения // ДЗ опциональное

    Тема 5: Ускорение с помощью C: Cython, Pypy и FFI

    Тема 6: asyncio: происхождение и основы//ДЗ

    Тема 7: asyncio: event loop, внутренности async/await, низко- и высокоуровневое API

    Тема 8: asyncio: инструменты и лучшие практики

    Тема 9: Golang: зачем он Python разработчику + тур по языку//ДЗ

    Тема 10: Golang: горутины, планировщик, конкурентная обработка

    Тема 11: Обзор новинок и изменений из свежих версий Python

Преподаватели

  • Станислав Ступников

    Руководитель отдела разработки

  • Сурен Хоренян

    Senior Python Backend Developer, Руководитель группы разработки

  • Дмитрий Панкрашов

    Middle Python Developer

  • Кирилл Панфилов

    Блогер, программист