Хотите получить этот курс в подарок? Сообщите об этом друзьям!
Начало занятий 28 декабря

Разработчик full-stack на Python

Общая стоимость: 32000 ₽
В месяц: 9500 ₽
4 часа в неделю
4 месяца
О курсе

Цель курса “Разработчик full-stack на Python” – подготовить специалиста, который сможет выполнять рядовые задачи бекенд-разработки: писать поддерживаемый код, выполнять рефакторинг, проектировать схему базы данных и взаимодействие с ней, организовать работу с ошибками и профилирование, проектировать и развивать схему взаимодействие с клиенсайдом, проводить код-ревью и писать тесты.

Во время курса будет рассмотрен ряд актуальных на данный момент тем, например:
Как разбить код на чистые функции?
Когда использовать GraphQL, а когда REST?
Когда использовать ORM и когда нет?
Как и когда писать автотесты, чтобы не потратить время зря?
Что нужно проверить у каждой БД, чтобы избежать распространённых проблем?

На курсе будут использованы такие технологии как:
Python 3.6 чтобы писать код;
Flask, Django и aiohttp чтобы делать веб-сервисы;
PostgreSQL, MongoDB и Redis чтобы хранить данные; pytest чтобы писать тесты;
Django REST Framework и Graphene чтобы писать API;
Fabric и Docker чтобы не ждать админов.

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

Программа курса
1
месяц
2
месяц
3
месяц
4
месяц
Занятие 1: Стиль кода. Часть 1
Стиль кода: чистые функции, сложность, читаемость, функциональность, поддерживаемость, статический анализ.
Занятие 2: Стиль кода. Часть 2
Стиль кода: чистые функции, сложность, читаемость, функциональность, поддерживаемость, статический анализ.

ДЗ

Отрефакторить существующую кодовую базу.. Там всё: сайд-эффекты, неправильная декомпозиция, синтаксические ошибки, плохие название, лишние фичи.
Занятие 3: Python: частые ошибки и решения. Часть 1
Python: частые ошибки и решения (tuples/list, память, контекст менеджеры, генераторы, итераторы, декораторы, MRO)
Занятие 4: Python: частые ошибки и решения. Часть 2
Python: частые ошибки и решения (tuples/list, память, контекст менеджеры, генераторы, итераторы, декораторы, MRO)

ДЗ

Доработать существующий проект: экономить ресурсы, сделать код читаемее, избавиться от копирования.. Тестов нет, комментариев нет, код населён багами.
Занятие 5: Как работает HTTP, из чего устроен Flask. Часть 1
Занятие 6: Как работает HTTP, из чего устроен Flask. Часть 2

ДЗ

Реализовать API на Flask для интернет-магазина.. Не самая простая модель данных, много сущностей.
Занятие 7: Что есть в Django за пределами туториала, как пользоваться Яндекс.Танком для нагрузочного тестирования. Часть 1
Занятие 8: Что есть в Django за пределами туториала, как пользоваться Яндекс.Танком для нагрузочного тестирования. Часть 2

ДЗ

Собираем новостной портал, проводим нагрузочное тестирование, оптимизируем узкие места..
Занятие 9: API. Часть 1
Где и как проектировать, какие подходы использовать, как реализовывать.
Занятие 10: API. Часть 2
Где и как проектировать, какие подходы использовать, как реализовывать.

ДЗ

Реализуем удобное API для фронтенда, параллелим разработку с помощью прототипов API..
Занятие 11: Гигиенический минимум девопс-задач для разработчика (fabric, docker, настройка БД), git, gitflow. Часть 1
Занятие 12: Гигиенический минимум девопс-задач для разработчика (fabric, docker, настройка БД), git, gitflow. Часть 2

ДЗ

Заворачиваем новостной портал в контейнер, выкатываем в облако..
Занятие 13: Frontend (вёрстка на bootstrap/material). Часть 1
Пересборка из исходником, базовая отзывчивость интерфейса, jQuery для оживления.
Занятие 14: Frontend (вёрстка на bootstrap/material). Часть 2
Пересборка из исходником, базовая отзывчивость интерфейса, jQuery для оживления.

ДЗ

Верстаем простой интерфейс для уже готового API, тестируем в разных браузерах..
Занятие 15: Проектирование схемы БД, оптимальная работа с ORM, автотесты без боли. Часть 1
Занятие 16: Проектирование схемы БД, оптимальная работа с ORM, автотесты без боли. Часть 1

ДЗ

Спроектировать БД, профилировать, оптимизировать использование ORM. Сравнить было/стало, сделать выводы..
Занятие 17: Занятие 19
Занятие 18: Как PostgreSQL хранит данные, основные способы оптимизации, экономия на типах данных и таблиц. Введение в Mongo и Redis. Часть 1
Занятие 19: Как PostgreSQL хранит данные, основные способы оптимизации, экономия на типах данных и таблиц. Введение в Mongo и Redis. Часть 2

ДЗ

Оптимизируем сервис под большое количество данных, дорабатываем схему БД, генерируем фикстуры, тестируем..
Занятие 20: Мультипроцессинг, мультитрединг, GIL. Часть 1
Занятие 21: Мультипроцессинг, мультитрединг, GIL. Часть 2

ДЗ

Оптимизируем ELT-скрипт: сначала всё работает долго и ресурсоёмко, а потом – быстро и экономно..
Занятие 22: Асинхронность, aiohttp, где хорошо и где плохо подходит. Часть 1
Занятие 23: Асинхронность, aiohttp, где хорошо и где плохо подходит. Часть 2

ДЗ

Реализуем асинхронное API, сравниваем нагрузку с синхронным вариантом..
Занятие 24: Оптимизация сайта: профилирование, запросы, кеш. Часть 1
Занятие 25: Оптимизация сайта: профилирование, запросы, кеш. Часть 1

ДЗ

Собрать сайт на DjangoCMS, оптимизировать под большую нагрузку..
Проект на одну из рассмотренных в курсе тем.

Примеры проектов:
Игровой Телеграмм-бот, готовый к большой нагрузке.
Информационный персонализированный сайт на Django.
Своя реализация ORM.
Своя реализация асинхронного драйвера к БД.
Свой проект.
Расписание
Дата и время
Событие
Группа
Разработчик FS на Python-2017-09
16 декабря, суббота
10:00 — 11:30
Введение в тестирование
Разработчик FS на Python-2017-09
Разработчик FS на Python-2017-09
20 декабря, среда
20:00 — 21:30
Оптимизация сайта: профилирование, запросы, кеш. Часть 1
Разработчик FS на Python-2017-09
Разработчик FS на Python-2017-12
25 декабря, понедельник
20:00 — 21:30
Стиль кода. Часть 1
Стиль кода: чистые функции, сложность, читаемость, функциональность, поддерживаемость, статический анализ.
Разработчик FS на Python-2017-12
Разработчик FS на Python-2017-12
28 декабря, четверг
20:00 — 21:30
Стиль кода. Часть 2
Стиль кода: чистые функции, сложность, читаемость, функциональность, поддерживаемость, статический анализ.
Разработчик FS на Python-2017-12
Преподаватели
Илья Лебедев
Эксперт, консультант по архитектуре приложений. Специалист по разработке серверных решений на Python. Автор курсов по веб-разработке в МГТУ им. Баумана, ВШЭ. Соорганизатор курсов Learn Python и devman.org. Старший разработчик в Itcanfy и Ngenix.
9 лет опыта программирования на C++, Python, PHP и JavaScript. Участвовал в проектах разной сложности: от разработки небольших корпоративных сайтов до планирования и реализации высоконагруженных сервисов и использованием микросервисной архитектуры.
Работодатели