Проходил 13 апреля в 20:00

День открытых дверей
Web Разработчик

День открытых дверей онлайн

Хотите узнать, почему OTUS – больше, чем просто образовательный портал?
Как OTUS дает возможность стать частью сообщества профессионалов и сделать новый шаг по карьерной лестнице?
Почему учиться – не обязанность, а удовольствие и почему тесное сплетение теории и практики в обучении дает эффект синергии?
Приходите к нам на День Открытых Дверей. Формат проведения – онлайн – подключиться можно из любой точки мира!
Преподаватель
Илья Лебедев

Запись

О курсе

Web-разработчик на Python
40 000 ₽
5 месяцев
Начало 21 апреля
Цель курса “WEB-разработка на Python” – подготовить специалиста, который сможет не только решать рядовые задачи бекенд-разработки, но и сделать с нуля современную фронтенд часть. Чтобы получить опыт бекенд-разработки, мы будем не только решать типовые задачи, но и разбираться в том, как устроены основные средства, которыми мы пользуемся каждый день. Например, в рамках курса студенты реализуют свой небольшой uwsgi-совместимый веб-фреймворк и ...
Программа курса
1
модуль
2
модуль
3
модуль
4
модуль
5
модуль
Занятие 1: Технические детали курса; декомпозиция; чистые функции; цикломатическая сложность; читаемость; фичеризм; поддерживаемость; статический анализ кода.
ДЗ
Рефакторинг существующего кода.. Отрефакторить и оформить в виде библиотеки на Гитхабе следующий код: https://gist.github.com/Melevir/5754a1b553eb11839238e43734d0eb79
Занятие 2: Объекты и переменные; структуры данных под капотом основных типов; list vs tuple; профилирование памяти; как работает сборщик мусора.
ДЗ
Парсер и анализатор названий статей на Хабре.
Занятие 3: Принципы ООП; mixins; class/instance variables; MRO; dict; slots; name mangling.
ДЗ
Добавление фич в скрипт для статического анализа кода..
Занятие 4: IP, TCP, HTTP; [u]WSGI.
ДЗ
Написать свой wsgi-совместимый веб-фреймворк..
Занятие 5: werkzeug; Flask.
ДЗ
Сделать демо интернет-магазина на Flask..
Занятие 6: ORM – зачем нужно; описание схемы данных; сессии; добавление/удаление/апдейт данных
ДЗ
Написать свою ORM для sqlite..
Занятие 7: Django apps; Django ORM; Django Class Based Views; Django common tools.
ДЗ
Сделать демо интернет-магазина на Django..
Занятие 8: Семинар. Реализуем свой WSGI-совместимый фреймворк.
Занятие 9: Django REST Framework. Django Configurations.
ДЗ
Реализуем базовый бекенд для сайта с курсами..
Занятие 10: API. GraphQL и его реализация в Python. GraphQL и Django.
ДЗ
Добавляем сущности и фичи для API сайта с курсами..
Занятие 11: Fabric. Развертывание проекта на сервере.
Занятие 12: Django шаблоны и немного Bootstrap 3. Делаем веб-интерфейс.
Занятие 13: Знакомство с Front-end частью курса. Основы HTML, CSS, методологии вёрстки. Немного Bootstrap 4.
ДЗ
Сделать вёрстку (HTML + CSS) главной страницы сайта для обучения..
Занятие 14: Django m2m, select_related/prefetch_related, django debug toolbar, factory_boy, faker.
Занятие 15: Основы JS: типы данных, операторы, объекты, работа с DOM и браузером
ДЗ
Добавление поведения к главной странице, страница курсов.
Занятие 16: Python social auth, django context processors.
Занятие 17: Продвинутый JS: ООП в JS, прототипирование, асинхронность.
ДЗ
Страница расписания занятий.
Занятие 18: Азы работы с очередями задач.
ДЗ
Добаляем асинхронную отправку электронной почты.
Занятие 19: ES6, NodeJS окружение, babel + webpack, транспайлинг, CSS препроцессоры
ДЗ
Сборка UI с помощью webpack, форма логина и регистрации, проксирование вызовов на back-end.
Занятие 20: Пишем свой менеджер очередей.
Занятие 21: fetch || axios || $.ajax для REST запросов, модульность
ДЗ
Загрузка списка курсов с сервера, логин страница, REST API для работы.
Занятие 22: Введение в автотесты.
ДЗ
Покрыть проект приёмочными тестами на 60%.
Занятие 23: Code review
ДЗ
Исправление недостатков в соответствии с code review.
Занятие 24: Введение в TDD.
Занятие 25: Основы React, JSX, компоненты React
ДЗ
Главная страница на React.
Занятие 26: Введение в pytest.
ДЗ
Переписать тесты на pytest и factory_boy.
Занятие 27: state и props, data-flow в React-компонентах
ДЗ
Страница логина, регистрации на React.
Занятие 28: InfluxDB, Grafana.
Занятие 29: Жизненный цикл React-компонент
ДЗ
Страница личного кабинета, отправка решения на сервер.
Занятие 30: Jenkins, Sentry.
ДЗ
Настроить логирование ошибок в Sentry..
Занятие 31: Состояние приложения. Flux & Redux
ДЗ
Блок успеваемости в личном кабинете, ведомость в кабинете преподавателя.
Занятие 32: python-telegram-bot
Занятие 33: Code review
ДЗ
Исправление недостатков в соответствии с code review.
Занятие 34: threading, multiprocessing, queue.
Занятие 35: Routing в React. SPA
ДЗ
Организация всего приложения в виде SPA..
Занятие 36: Введение в docker, docker-compose.
ДЗ
Завернуть проект в докер-контейнеры.
Занятие 37: Тестирование JS приложений
ДЗ
Написание unit-тестов для UI и back-end.
Занятие 38: asyncio
Занятие 39: Обзор Vue2
ДЗ
Landing page на Vue.
Занятие 40: QnA

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

Илья Лебедев
Эксперт, консультант по архитектуре приложений. Специалист по разработке серверных решений на Python. Автор курсов по веб-разработке в МГТУ им. Баумана, ВШЭ. Соорганизатор курсов Learn Python и devman.org. Старший разработчик в Itcanfy и Ngenix.
9 лет опыта программирования на C++, Python, PHP и JavaScript. Участвовал в проектах разной сложности: от разработки небольших корпоративных сайтов до планирования и реализации высоконагруженных сервисов и использованием микросервисной архитектуры.

F.A.Q.: Наиболее часто задаваемые вопросы:

Могу ли я принять участие в розыгрыше, если я уже оплатил обучение?
В розыгрыше принимают участие все пользователи, успешно прошедшие вступительное тестирование. Если вы уже оплатили обучение и стали счастливым обладателем бесплатного места – мы вернем вам деньги
Нужно ли оплачивать обучение до Дня открытых дверей, если я хочу гарантированно попасть в группу?
Да, мы рекомендуем заранее оплатить обучение, чтобы гарантированно попасть в группу. В период проведения Дня открытых дверей резко возрастает количество желающих обучаться, поэтому может случиться так, что к окончанию Дня открытых дверей мест в группе не останется
Кто будет проводить День открытых дверей?
Проводить День открытых дверей будет преподаватель курса.
Как принять участие в Дне открытых дверей?
Для того, чтобы принять участие в Дне открытых дверей, оставьте свой e-mail в поле регистрации на мероприятие. Перед началом Дня открытых дверей мы пришлем вам ссылку, пройдя по которой, вы сможете присоединиться к вебинару. Если вы хотите принять участие в розыгрыше бесплатных мест – до начала мероприятия необходимо зарегистрироваться на сайте и успешно пройти вступительное тестирование
Какие вопросы будем обсуждать на Дне открытых дверей?
На дне открытых дверей мы поговорим о проекте OTUS (о программе курса, почему мы не принимаем в группы новичков, почему учиться у нас интересно, но сложно), карьерных перспективах выпускников (почему вероятность карьерного роста у лучших студентов стремится к 100%), учебном процессе (оплатах, оценке знаний, сертификатах и прочих аспектах). Также ведущий мероприятия с радостью ответит на все ваши вопросы