Web-разработчик на Python

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

Длительность

5 месяцев

Начало занятий

В октябре

Продолжительность
5 месяцев, 4 академических часа в неделю
Начало занятий
В октябре
Что даст вам этот курс


  • Освоение разработки современной фронтенд-части с нуля;

  • Способность решать рядовые задачи бекенд-разработки;

  • Умение деплоить с помощью Fabric, заворачивать приложения в Docker-контейнеры, писать тесты и ботов;

  • Владение NodeJS и ReactJS, ознакомление с другими платформами, фреймворками, библиотеками, приложениями.


24 работодателя-партнёра OTUS пригласят на собеседования лучших выпускников после обучения

Высокая практическая направленность (освоение каждой технологии закрепляется путем выполнения задания)

Преподаватели
Леонид Орлов
Сергей Нагаев
Python-разработчик SimbirSoft
Владимир Филонов
Основатель и CTO компании Itcanfly
Юрий Дворжецкий
Luxoft Training Center
Владимир Клепов
Frontend-разработчик в Яндекс
Сурен Хоренян
Программист приложений в AdCombo
Михаил Кузнецов
ING Group
Выпускник кафедры информационных технологий физического факультета ПГНИУ.
Начал карьеру в крупной международной компании Prognoz, создавал проекты для правительства РФ в течение 2 лет.
Работал программистом биллинга на oracle pl/sql в компании «Эр-Телеком Холдинг».
С 2014 года стал преподавателем направления python-разработки.
Главный разработчик zval.ru.
Продолжает работать удаленно и заниматься собственными проектами на Python и Django.

5 лет опыта коммерческой разработки на Python.
Опыт реализации проектов различной сложности как самостоятельно (фриланс), так и в составе больших команд. Есть опыт в области QA и автоматизации тестирования.
В качестве Python-разработчика работал над такими проектами как подсистема автоматизированного тестирования BSS-решений, CRM-системы, системы резервного копирования.
В качестве разработчика в тестировании работал над системами автоматизации тестирования приложений для SMART TV. В настоящий момент занимает должность Python-разработчика в компании SimbirSoft.

Разработчик широкого профиля и один из организаторов сообщества Moscow Python. Более 15 лет опыта разработки. Любит Python, Erlang/Elixir, асинхронность и TDD. Любит копаться во внутренностях библиотек, а потом рассказывать об этом.

Тренер в Luxoft Training Center, ведущий разработчик, кандидат физико-математических наук.
Программирует с начальных классов.

Разрабатывает на разных платформах: большие и маленькие проекты, высоконагруженные и очень красивые, многим известные и совсем специфические.

Влюблён в элегантность и оригинальность JavaScript как классического, так и современного во всех его проявлениях.

Сейчас разрабатывает web-приложения c UI на React и Angular.

Разрабатывает интерфейсы в Яндекс.Почте. До этого создавал интерфейсы для системы управления суперкомпьютером и ситуационного центра МЧС Сахалина.

Работа в маленькой команде научила создавать дизайн, раскатывать Docker, настраивать DNS-сервера и заниматься другими вещами, которых обычно не ожидают от фронтендера.

Специализируется на интерактивных визуализациях.
Закончил факультет компьютерных наук ВШЭ.

Начинал свою карьеру системным администратором в «АНТИвор», занимался оптимизацией рабочих процессов, сбором статистики и визуализацией аналитики, затем перешел на должность full-stack программиста на Python и разрабатывал инструменты внутреннего пользования и web-интерфейсы для продукции компании. В настоящий момент занимает должность Back-end разработчика на Python 3.6 в компании AdCombo, стек используемых технологией включает Flask, SQLAlchemy, PostgreSQL, Redis, Docker и многое другое.

Fullstack developer в международной финансовой корпорации ING с главным офисом в Амстердаме (Нидерланды). Проектирует и поддерживает процессы WEB-разработки. Окончил химфак МГУ.

Программирует на JavaScript уже около 8 лет. Консультировал по JS-разработке, занимался популяризацией фронтенд-фреймворка Vue.js.

Кроме JavaScript, имеет опыт разработки на Python и Java. Выступал докладчиком на конференциях Frontend Conf Moscow, UtahJS и др.

Леонид
Орлов
Сергей
Нагаев
Владимир
Филонов
Юрий
Дворжецкий
Владимир
Клепов
Сурен
Хоренян
Михаил
Кузнецов
Преподаватели
Леонид Орлов
Выпускник кафедры информационных технологий физического факультета ПГНИУ.
Начал карьеру в крупной международной компании Prognoz, создавал проекты для правительства РФ в течение 2 лет.
Работал программистом биллинга на oracle pl/sql в компании «Эр-Телеком Холдинг».
С 2014 года стал преподавателем направления python-разработки.
Главный разработчик zval.ru.
Продолжает работать удаленно и заниматься собственными проектами на Python и Django.

Сергей Нагаев
Python-разработчик SimbirSoft
5 лет опыта коммерческой разработки на Python.
Опыт реализации проектов различной сложности как самостоятельно (фриланс), так и в составе больших команд. Есть опыт в области QA и автоматизации тестирования.
В качестве Python-разработчика работал над такими проектами как подсистема автоматизированного тестирования BSS-решений, CRM-системы, системы резервного копирования.
В качестве разработчика в тестировании работал над системами автоматизации тестирования приложений для SMART TV. В настоящий момент занимает должность Python-разработчика в компании SimbirSoft.

Владимир Филонов
Основатель и CTO компании Itcanfly
Разработчик широкого профиля и один из организаторов сообщества Moscow Python. Более 15 лет опыта разработки. Любит Python, Erlang/Elixir, асинхронность и TDD. Любит копаться во внутренностях библиотек, а потом рассказывать об этом.

Юрий Дворжецкий
Luxoft Training Center
Тренер в Luxoft Training Center, ведущий разработчик, кандидат физико-математических наук.
Программирует с начальных классов.

Разрабатывает на разных платформах: большие и маленькие проекты, высоконагруженные и очень красивые, многим известные и совсем специфические.

Влюблён в элегантность и оригинальность JavaScript как классического, так и современного во всех его проявлениях.

Сейчас разрабатывает web-приложения c UI на React и Angular.

Владимир Клепов
Frontend-разработчик в Яндекс
Разрабатывает интерфейсы в Яндекс.Почте. До этого создавал интерфейсы для системы управления суперкомпьютером и ситуационного центра МЧС Сахалина.

Работа в маленькой команде научила создавать дизайн, раскатывать Docker, настраивать DNS-сервера и заниматься другими вещами, которых обычно не ожидают от фронтендера.

Специализируется на интерактивных визуализациях.
Закончил факультет компьютерных наук ВШЭ.

Сурен Хоренян
Программист приложений в AdCombo
Начинал свою карьеру системным администратором в «АНТИвор», занимался оптимизацией рабочих процессов, сбором статистики и визуализацией аналитики, затем перешел на должность full-stack программиста на Python и разрабатывал инструменты внутреннего пользования и web-интерфейсы для продукции компании. В настоящий момент занимает должность Back-end разработчика на Python 3.6 в компании AdCombo, стек используемых технологией включает Flask, SQLAlchemy, PostgreSQL, Redis, Docker и многое другое.

Михаил Кузнецов
ING Group
Fullstack developer в международной финансовой корпорации ING с главным офисом в Амстердаме (Нидерланды). Проектирует и поддерживает процессы WEB-разработки. Окончил химфак МГУ.

Программирует на JavaScript уже около 8 лет. Консультировал по JS-разработке, занимался популяризацией фронтенд-фреймворка Vue.js.

Кроме JavaScript, имеет опыт разработки на Python и Java. Выступал докладчиком на конференциях Frontend Conf Moscow, UtahJS и др.

Минимальные знания
  • Основы синтаксиса Python 3.
  • Основные модули стандартной библиотеки.
  • Основы написания поддерживаемого кода.
  • Основы SQL, html, css, JavaScript.
  • Знание понятия асимптотической сложности.
  • Умение работать в консоли и с git.
  • Понимание, как и зачем писать автотесты.
Процесс обучения
Обучение проходит в формате вебинаров (онлайн). Слушателям предлагаются к выполнению домашние задания, которые позволят применить на практике полученные во время вебинаров знания. По каждому домашнему заданию преподаватель дает развернутый фидбек. Преподаватель находится в едином коммуникационном пространстве с группой на протяжении всего курса, т. е. в процессе обучения слушатель может задавать преподавателю уточняющие вопросы по материалам лекций и домашних заданий.
Программа обучения
Модуль 1
От особенностей Python к веб-фреймворкам
Модуль 2
Погружение в фреймворки
Модуль 3
От API к фронтенду
Модуль 4
От JS к ReactJS
Модуль 5
Тестирование, деплой и асинхронный Python
От особенностей Python к веб-фреймворкам
Тема 1: Технические детали курса; декомпозиция; чистые функции; цикломатическая сложность; читаемость; фичеризм; поддерживаемость; статический анализ кода.
На занятии мы поговорим о принципах проектирования, и написания кода. О таких его свойствах как читаемость и поддерживаемость, обсудим проблемы фичеризма и цикломатической сложности.
Домашние задания: 1
1 Рефакторинг существующего кода.
Отрефакторить и оформить в виде библиотеки на Гитхабе следующий код: https://gist.github.com/VladimirFilonov/cf841d9dd2d11dad8c2dc7a3fefd4ac3
Тема 2: Объекты и переменные; структуры данных под капотом основных типов; list vs tuple; профилирование памяти; как работает сборщик мусора.
Как устроены переменные и различные типы данных в Python? Что именно происходит в памяти, когда мы пишем x = 1? Это мы разберем на втором занятии. Заглянем под капот Python, чтобы выяснить структуры данных основных типов, списков и словарей. Вкратце коснёмся принципов работы сборщика мусора и инструменты профилирования памяти
Тема 3: Принципы ООП; mixins; class/instance variables; MRO; dict; slots; name mangling.
Всё объект - одно из основных правил в Python. Но что такое объект? В чем отличие методов и переменных класса и инстанса? Почему важно не путать их и какие последствия могут быть у таких ошибок? Есть ли приватность в ООП пайтона и как он разбирается в наследовании? Всё это на третьем занятии
Домашние задания: 1
1 Добавление фич в скрипт для статического анализа кода.
https://gist.github.com/VladimirFilonov/775853d680f4ea7f0ce5a75d094490f7
Тема 4: IP, TCP, HTTP; [u]WSGI.
Чтобы эффективно разрабатывать веб-приложения, крайне желательно разбираться в основах работы сети, понимать принципы работы протоколов TCP/IP, HTTP и wsgi. Именно об этом четвертое занятие
Домашние задания: 1
1 Написать свой wsgi-совместимый веб-фреймворк.
Тема 5: werkzeug; Flask.
Получив навыки работы с wsgi, можно переходить к использованию более высокоуровневых фреймворков. На занятии мы разберем удобный wsgi-сервер werkzeug и основы фреймворка Flask
Домашние задания: 1
1 Сделать демо интернет-магазина на Flask.
Тема 6: ORM – зачем нужно; описание схемы данных; сессии; добавление/удаление/апдейт данных
Работа с базой данных - неотъемлимая часть веб-разработки. Конечно, можно работать напрямую, используя SQL-запросы, но это не всегда удобно. На занятии мы познакомимся с принципами ORM, его плюсами и минусами его использования и примерами на базе библиотеки sqlalchemy. А в качестве домашнего задания студенты разработают свой, минимальный ORM-фреймворк
Домашние задания: 1
1 Написать свою ORM для sqlite.
Тема 7: Django apps; Django ORM; Django Class Based Views; Django common tools.
Получив опыт работы с микрофеймворком Flask, а так же разобравшись с приципами ORM мы переходим к более многофункциональному и развитому фремворку Django. На занятии мы разберемся с основами проектирование приложений на Django, его архитектурой и основными инструментами
22 августа, 20:00 — 21:30
Лектор: Сурен Хоренян
Домашние задания: 1
1 Сделать демо интернет-магазина на Django.
Тема 8: Семинар. Реализуем свой WSGI-совместимый фреймворк.
Наш первый семинар. В live режиме мы, вместе со студентами напишем собственный wsgi-фреймворк, разберем его композицию и на практике познакомимся с процессом рефакторинга кода
26 августа, 20:00 — 21:30
Лектор: Леонид Орлов
Погружение в фреймворки
Тема 1: Django REST Framework. Django Configurations.
В современной веб-разработке всё реже используется серверный рендринг с использованием шаблонов и всё чаще подход с так называемым rich-фронтедом. Бэкенд для таких приложений реализуется в виде REST API. Именно для реализации таких бекендов разработана библиотека Django Rest Framework. С основами её работы мы и познакомимся на этом занятии
29 августа, 20:00 — 21:30
Лектор: Сурен Хоренян
Домашние задания: 1
1 Реализуем базовый бекенд для сайта с курсами.
Цель: У нас есть курс, у которого есть занятия, у курсов есть преподаватели. Есть пользователи, которые могут зарегистрироваться, залогиниться и записаться на курс. Сайт будет разделен на две составляющие - backend и frontend. Backend это REST-API на Django, который позволяет: - зарегистрироваться, можно без капчи и подтверждения email; - залогиниться; - посмотреть список курсов; - зайти внутрь одного курса, где посмотреть его описание и список уроков, прикриплённых к дате; - дополнительно можно задать возможность записаться на курс. Фронтед пока не делаем - его будем прикручивать позже, на уроках по JS
Тема 2: API. GraphQL и его реализация в Python. GraphQL и Django.
Еще одним современным современным подходом к организации API является новый потокол GraphQL. На занятии мы в реальном времени разработаем реализацию бэкенда с таким API используя бибилотеку GraphQL и фреймворк Django
2 сентября, 20:00 — 21:30
Лектор: Сурен Хоренян
Домашние задания: 1
1 Добавляем сущности и фичи для API сайта с курсами.
Тема 3: Fabric. Развертывание проекта на сервере.
Помимо непосредственно разработки, разработчикам часто приходится сталкиваться с процессом развертывания проекта на сервер. А что может быть лучше, чем автоматическое развертывание? Именно этим мы и займемся на нашем очередном семинаре. Мы разберем как сам процесс деплоя так и его автоматизацию с помощью библиотеки Fabric
5 сентября, 20:00 — 21:30
Лектор: Сергей Нагаев
Тема 4: Софтскилз для разработчика
Программирование - это командный спорт. Для успешной работы требуются не только технические, но и коммуникационные навыки. И зачастую они оказываются важнее хард-скиллов. О том как жить и общаться в обществе программистов (да и не только) и будет это занятие
9 сентября, 20:00 — 21:30
Лектор: Сергей Нагаев
Тема 5: Знакомство с Front-end частью курса. Основы HTML, CSS, методологии вёрстки. Немного Bootstrap 4.
None
12 сентября, 20:00 — 21:30
Лектор: Сергей Нагаев
Домашние задания: 1
1 Сделать вёрстку (HTML + CSS) главной страницы сайта для обучения.
Тема 6: Django m2m, select_related/prefetch_related, django debug toolbar, factory_boy, faker.
Вернемся непосредственно к вопросам разработки. ORM в Django - инструмент функциональный и гибкий. Но при неправильном использовании он может породить больше проблем, чем пользы. К счастью, в django есть множество инструментов для отладки и оптимизации.
16 сентября, 20:00 — 21:30
Лектор: Леонид Орлов
Тема 7: Основы JS: типы данных, операторы, объекты, работа с DOM и браузером
None
19 сентября, 20:00 — 21:30
Лектор: Сергей Нагаев
Домашние задания: 1
1 Добавление поведения к главной странице, страница курсов
Тема 8: Django ORM, оптимизация работы с БД
Тему оптимизации работы с БД сложно уместить в одно занятие, поэтому мы, в режиме семинара, разберем еще больше примеров узких мест и их обхода
23 сентября, 20:00 — 21:30
Лектор: Леонид Орлов
От API к фронтенду
Тема 1: Продвинутый JS: ООП в JS, прототипирование, асинхронность.
None
26 сентября, 20:00 — 21:30
Лектор: Сергей Нагаев
Домашние задания: 1
1 Страница расписания занятий
Тема 2: Азы работы с очередями задач.
Кроме классической для HTTP парадигмы запрос-ответ, в современной веб-разработке часто встречаются задачи, которые требуется выполнить отложено или за рамками основного процесса обработки запроса. Например - при регистрации отправить пользователю письмо с подтверждением. Для реализации таких задач используются очереди задач. На занятии мы познакомимся с основным принципом и примерами на основе библиотеки redis-queue
30 сентября, 20:00 — 21:30
Лектор: Леонид Орлов
Домашние задания: 1
1 Добаляем асинхронную отправку электронной почты
Тема 3: ES6, NodeJS окружение, babel + webpack, транспайлинг, CSS препроцессоры
None
3 октября, 20:00 — 21:30
Домашние задания: 1
1 Сборка UI с помощью webpack, форма логина и регистрации, проксирование вызовов на back-end
Тема 4: fetch || axios || $.ajax для REST запросов, модульность
None
14 октября, 20:00 — 21:30
Домашние задания: 1
1 Загрузка списка курсов с сервера, логин страница, REST API для работы
Тема 5: Пишем свой менеджер очередей.
Как всегда - лучший способ разобраться с новым подходом - реализовать собственное решение. Именно для этого мы, помимо общего знакомства с библиотеками для работу с очередями, реализуем собственный менеджер в режиме семинара
17 октября, 20:00 — 21:30
Тема 6: Code review
None
21 октября, 20:00 — 21:30
Домашние задания: 1
1 Исправление недостатков в соответствии с code review
Тема 7: Введение в автотесты.
Когда уже написано много кода, может появиться вопрос - а правильно ли он работает? Конечно, после каждого изменения мы можем руками проверять, что всё работает, но это отнимает очень много времени и сил. А как мы уже убедились раньше - нет ничего лучше чем автоматизировать рутинную работу. Автотесты - это отличный способ автоматизации и контроля правильности работы нашего кода. На занятии мы познакомимся с библиотеками и методами автоматизированного тестирования в Python
24 октября, 20:00 — 21:30
Домашние задания: 1
1 Покрыть проект приёмочными тестами на 60%
От JS к ReactJS
Тема 1: Основы React, JSX, компоненты React
None
28 октября, 20:00 — 21:30
Домашние задания: 1
1 Главная страница на React
Тема 2: Введение в TDD.
Разработка через тестирование - одна из так называемых экстремальных методологий. Мы познакомимся с её плюсами и минусами, обсудим сложности и профиты которые она с собой несет
31 октября, 20:00 — 21:30
Лектор: Сурен Хоренян
Тема 3: state и props, data-flow в React-компонентах
None
7 ноября, 20:00 — 21:30
Домашние задания: 1
1 Страница логина, регистрации на React
Тема 4: Введение в pytest.
Автотесты занимают большУю часть времени разработчика, поэтому важно чтобы инструмент с помощью которого это делается был гибким и удобны. На этом занятии мы познакомимся с одной из лучших библиотек для тестирования в python - py.test
11 ноября, 20:00 — 21:30
Лектор: Сурен Хоренян
Домашние задания: 1
1 Переписать тесты на pytest и factory_boy
Тема 5: Жизненный цикл React-компонент
None
14 ноября, 20:00 — 21:30
Домашние задания: 1
1 Страница личного кабинета, отправка решения на сервер
Тема 6: InfluxDB, Grafana.
Данные с которыми приходится работать бывают очень разные, поэтому и базы данных требуются не только реляционные. На данном занятии мы познакомимся с базой для временных рядов InfluxDB и библиотекой Grafana - инструментом для построения графиков и отчётов по временным рядам
25 ноября, 20:00 — 21:30
Тема 7: Состояние приложения. Flux & Redux
None
28 ноября, 20:00 — 21:30
Домашние задания: 1
1 Блок успеваемости в личном кабинете, ведомость в кабинете преподавателя
Тема 8: Jenkins, Sentry.
Еще больше автоматизации. На этот раз мы автоматизируем автотесты с помощью системы Jenkins, а так же настроем автоматический сбор ошибок в нашем приложении используя библиотеку и сервис Sentry
2 декабря, 20:00 — 21:30
Домашние задания: 1
1 Настроить логирование ошибок в Sentry.
Тестирование, деплой и асинхронный Python
Тема 1: Code review
None
5 декабря, 20:00 — 21:30
Домашние задания: 1
1 Исправление недостатков в соответствии с code review
Тема 2: aiogram
научиться работать с Telegram Bot API при помощи библиотеки aiogram
9 декабря, 20:00 — 21:30
Лектор: Сурен Хоренян
Тема 3: Routing в React. SPA
None
12 декабря, 20:00 — 21:30
Домашние задания: 1
1 Организация всего приложения в виде SPA.
Тема 4: threading, multiprocessing, queue.
Отложенные и фоновые задачи могут выполняться не только с использованием внешних очередей и воркеров. Есть и внутренние механизмы для параллельных и асинхронных вычислений. В этом уроки мы познакомимся с механизмами тредов, мультипроцессинга и внутренних очередей
16 декабря, 20:00 — 21:30
Тема 5: Тестирование JS приложений
None
19 декабря, 20:00 — 21:30
Домашние задания: 1
1 Написание unit-тестов для UI и back-end
Тема 6: Введение в docker, docker-compose.
None
23 декабря, 20:00 — 21:30
Домашние задания: 1
1 Завернуть проект в докер-контейнеры
Тема 7: Обзор Vue2
None
26 декабря, 20:00 — 21:30
Домашние задания: 1
1 Landing page на Vue
Тема 8: asyncio
Кульминацией асинхронных подходов в python на данный момент является встроенная в язык кооперативная многозадачность. На нашем последнем занятии мы познакомимся с библиотекой asyncio и принципами асинхронности в Python
30 декабря, 20:00 — 21:30
Тема 9: QnA
None
9 января, 20:00 — 21:30
Выпускной проект
В рамках курса предусмотрен проект. Это будет большая работа, которая объединит в себе все знания, полученные во время обучения.
В процессе написания проекта вы можете консультироваться с преподавателями.
Готовый проект станет демонстрацией ваших возможностей и образцом кода, который вы сможете показывать потенциальным работодателям при трудоустройстве.
Прошедшие открытые вебинары по курсу
Открытый вебинар — это настоящее занятие в режиме он-лайн с преподавателем курса, которое позволяет посмотреть, как проходит процесс обучения. В ходе занятия слушатели имеют возможность задать вопросы и получить знания по реальным практическим кейсам.
Принципы ООП
Владимир Филонов
Пишем свою библиотеку для работы с xlsx файлами
Илья Лебедев
После обучения вы

  • получите материалы по всем пройденным занятиям (видеозаписи вебинаров, презентации, примеры кодов);

  • повысите свои знания в области бекенд- и фронтенд-разработки на Python;

  • получите сертификат о прохождении курса;

  • улучшите навыки в технологиях Python, JavaScript, Django ORM, SQLALchemy, Werkzeug, Flask, GraphQL, InfluxDB, Grafana, Jenkins, Sentry, NodeJS, ReactJS, VueJS и других;

  • получите приглашение пройти собеседование в компаниях-партнерах (в случае успешного обучения).

Дата выдачи сертификата: 1 мая 2020 года
Ваш сертификат

онлайн-образование

Сертификат №0001

Константин Константинопольский

Успешно закончил курс «Web-разработчик на Python»
Выполнено практических заданий: 16 из 16

Общество с ограниченной ответственностью “Отус Онлайн-Образование”

Город:
Москва

Генеральный директор ООО “Отус Онлайн-Образование”
Виталий Чибриков

Лицензия на осуществление образовательной деятельности
№ 039825 от 28 декабря 2018г.

онлайн-образование

Сертификат №0001

Константин Константинопольский

Успешно закончил курс «Web-разработчик на Python»
Выполнено практических заданий: 16 из 16

Общество с ограниченной ответственностью “Отус Онлайн-Образование”

Город:
Москва

Генеральный директор ООО “Отус Онлайн-Образование”
Виталий Чибриков

Лицензия на осуществление образовательной деятельности
№ 039825 от 28 декабря 2018г.