День открытых дверей по курсу «Python Developer. Professional» 09.08.2018 в 20:00 | OTUS
Проходил 9 августа 2018 года в 20:00

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

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

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

Запись

О курсе

Python Developer. Professional
95 000 ₽
5 месяцев
Начало 30 мая
Профессиональный онлайн-курс для тех, кто уже имеет опыт программирования на Python и хочет повысить свой уровень за счет новых знаний и навыков из различных областей разработки. Если вы уверенно чувствуете себя с Python, помните C, имеете представление о сетевом взаимодействии и реляционных СУБД, умеете обращаться с Linux, Git и прочими стандартными инструментами девелопера — курс для вас.

Цель программы — …
Программа курса
Модуль 1
Advanced basics
Модуль 2
Web
Модуль 3
Data engineering
Модуль 4
Highload
Модуль 5
Проектная работа
Advanced basics
Этот модуль посвящен рассмотрению фундаментальных основ языка на продвинутом уровне, а также применению общих практик разработки ПО в контексте "экосистемы" Python. Целью является достижение единого понятийного аппарата, формирование представления о внутреннем устройстве языка, его возможностях, ограничениях, недостатках и области применимости.
В модуле рассматриваются аспекты функционального, процедурного и ОО программирования на Python, особенности устройства виртуальной машины, вопросы обеспечения качества ПО и автоматизации инфраструктурных задач.
Advanced basics. Протоколы
разобраться в особенностях представления естественных языков в Python;
рассмотреть нюансы применения чисел с плавающей точкой;
осознать систему протоколов языка;
разобраться с концепцией итерирования в Python;
получить представление о реализации и применимости итераторов.
30 мая, 20:00 — 21:30
Лектор: Дмитрий Панкрашов
Домашние задания: 1
ДЗ
ДЗ-1: Log Analyzer. Актуальное описание ДЗ искать в архиве с материалами занятия
Advanced basics. "Граждане первого порядка"
разобраться с особенностями применения ФП в Python;
рассмотреть пространства имен и замыкания;
рассмотреть устройство декораторов и способы их использования.
6 июня, 20:00 — 21:30
Лектор: Дмитрий Панкрашов
Internals. Виртуальная машина
разобраться с устройством виртуальной машины;
рассмотреть процесс исполнения кода;
рассмотреть фундаментальные абстракции, которыми оперирует виртуальная машины.
9 июня, 20:00 — 21:30
Лектор: Андрей Кравчук
Домашние задания: 1
ДЗ
ДЗ-2: CPython (опционально). Актуальное описание ДЗ искать в архиве с материалами занятия
Internals. Управление памятью, "печально известный" GIL
разобраться с работой основных типов данных и следствиями такой реализации;
рассмотреть процесс управлению памятью в Python;
объяснить, как GIL влияет на производительность Python программ.
13 июня, 20:00 — 21:30
OOP. Объектная модель
осознать устройство объектной модели Python;
разобраться с разделением на новые и классические классы;
объяснить тонкости множественного наследования;
разобраться с нюансами реализации ООП в Python.
16 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-3.0: Scoring API. Актуальное описание ДЗ искать в архиве с материалами занятия
OOP. Белая и черная "магия"
объяснить дескрипторы и их протокол;
разобраться с использованием "магических методов";
рассмотреть область применимости абстрактных базовых классов;
проанализировать особенности эксплуатации метаклассов.
20 июня, 20:00 — 21:30
Testing. Дизайн тестов
разобраться с конструированием кейсов тестирования;
рассмотреть различия между видами тестирования;
доказать необходимость тестирования и его место в жизненном цикле ПО.
23 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-3.1: API Testing. Дописываем тесты API
Testing. Пирамида тестирования
разобраться с устройством пирамиды тестирования;
рассмотреть область применения инструментов тестирования (моков, фикстур и т.д.);
разобраться с видами атоматизации тестирования.
27 июня, 20:00 — 21:30
Automatization. Сетевое взаимодействие
рассмотреть принципы сетевого взаимодействия через сокеты;
разобраться с особенностями сетевых протоколов;
рассмотреть нюансы написания программ, общающихся по сети.
30 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-4: Web Server. Создаем свой сервер на "ванильном" Python, частично реализующий протокол HTTP (будет корректно отдавать страницу wikipedia). Проводим нагрузочное тестирование.
Automatization. Общение с БД и демонизация
рассмотреть нюансы общения с серверной БД и основные паттерны;
разобраться с процессом демонизации программ;
разобраться с дистрибуцией Python программ.
4 июля, 20:00 — 21:30
Web
Этот модуль посвящен веб-разработке, тому, какой она выглядит со стороны Python программиста и какими особенностями обладает.
Целью является рассмотрение нюансов и лучших практик по созданию и эксплуатации веб-сервисов с использованием фреймворка Django. В модуле рассматривается сам Django, внутреннее устройство ORM и других его составляющих, обсуждаются особенности построения REST API, масштабирования веб-проектов.
Dynamic Web
рассмотреть принципы функционирования динамического веба;
разобраться с WSGI и его особенностями;
поговорить о различных WSGI контейнерах.
7 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-5: uWSGI Daemon/ Django Tutorial (опционально). Пишем стандартного "промышленного" демона, который будет отвечать по HTTP, ходить в базу, писать логи и собираться в пакет. Те, кто не знаком с Django, проходят tutorial.
Django. Intro
разобраться с классической структурой веб-сервисов;
рассмотреть лучшие практики развертывания Django проектов;
объяснить, как конфигурируются и эксплуатируются Django проекты.
11 июля, 20:00 — 21:30
Django. ORM и "зло"
поговорить о лучших практиках использования моделей;
объяснить, как работает ORM и из чего он состоит;
разобраться с написанием запросов через ORM;
проанализировать запросы.
14 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-6.0: Django project. Создание web-приложения аналога Stack Overflow. Определяемся со структурой и схемой данных.
Database layer
объяснить, как навигироваться в комплексном пространстве мира распределенных систем и баз данных;
познакомиться с основными понятиями, связанными с эксплуатацией и оптимизацией хранилища данных.
18 июля, 20:00 — 21:30
Django. Views
разобраться с устройством логики представления в Django;
объяснить, каким образом выбирать подход к описанию этой логики.
21 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-6.1: Django project. Начинаем рисовать красивые странички
Django. Forms
разобраться с логикой обработки форм и принципом их функционирования;
объяснить, как устроен template engine и как это влияет на его производительность.
25 июля, 20:00 — 21:30
REST API. Know-how
объяснить, что такое REST;
разобраться с лучшими практиками реализации этого подхода.
28 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-6.2: Django REST API (опционально). Добавляем к разрабатываемому приложению API.
Web performance
рассмотреть пути масштабирования веб-проектов;
разобраться с производительностью фронтенда.
1 августа, 20:00 — 21:30
Data engineering
Этот модуль посвящен знакомству с фундаментальными библиотеками, применяемыми для анализа данных. Python является де-факто стандартом при решении аналитических задач, поэтому данный аспект языка нельзя обойти стороной. При этом, целью модуля является не погружение в математические дебри, а рассмотрение таких инструментов как jupyter, numpy, pandas и matplotlib и области их применения в инженерной и аналитической деятельности.
Основы NumPy
разобраться с областью применимости numpy и его основной структурой данных - ndarray;
рассмотреть индексирование и операции над массивами;
поговорить о возможностях библиотеки.
4 августа, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-7: LogRegression. Дописываем логистический регрессор, используем его для классификации отзывов о еде из Amazon.
Advanced NumPy и IPython
разобраться с внутренним устройством ndarray;
рассмотреть продвинутые операции с массивами и broadcasting; познакомиться с основными возможностями ipython.
8 августа, 20:00 — 21:30
Pandas. Машинное обучение и продакшен
разобраться с областью применимости pandas и его основной структурой данных - dataframe;
рассмотреть индексирование и операции над dataframe;
поговорить о возможностях библиотеки;
объяснить, как аналитические продукты интегрируются с продакшен системами.
11 августа, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-8: Open Data Analysis (опционально). Выбираем один из открытых dataset'ов и анализируем его с помощью pandas в IPython notebook.
Визуализация данных
разобраться с видовым многообразием библиотек визуализации данных в Python;
рассмотреть основные возможности matplotlib и два его интерфейса;
рассмотреть основные возможности seaborn и понять его преимущества над matplotlib;
познакомиться с принципами визуализации данных.
15 августа, 20:00 — 21:30
Highload
Этот модуль посвящен высокопроизводительным вычислениям на Python. В модуле рассматриваются особенности конкурентного и асинхронного программирования и то, как на это влияет устройство виртуальной машины языка. Так же внимание уделяется превратностям написания расширений на С и вопросам профилирования кода. В качестве бонуса происходит знакомство с языком Go, который часто используется Python программистами для решения performance-critical задач.
Concurrency. Потоки
разобраться с терминологией конкурентного программирования;
рассмотреть ограничения, накладываемые виртуальной машиной на multithreading;
познакомиться с примитивами синхронизации из стандартной библиотеки.
18 августа, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-9: MemcLoad. Реализуем конкурентную заливку данных в memcache'ы
Concurrency. Процессы
разобраться с превратностями запуска процессов в разных ОС;
познакомиться с возможностями коммуникации процессов для выполнения общей задачи;
рассмотреть устройство основных примитивов синхронизации.
22 августа, 20:00 — 21:30
C extensions
разобраться с основными принципами написания расширений на языке C;
познакомиться с управлением памятью через reference counting;
рассмотреть подход к созданию сложных объектов.
25 августа, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-10: Protobuf (de)serializer (опционально). Пишем свое расширение, которое будет писать файлы с protobuf сериализованным содержимым. Понадобятся знания C.
ffi. Cython. Pypy
разобраться с генерацией С расширений из Python кода с помощью Cython;
познакомиться с синтаксисом Cython;
рассмотреть область применимости PyPy;
научиться вызывать функции из уже скомпилированных приложений через ffi и ctypes/.
29 августа, 20:00 — 21:30
Asyncio. Origins
познакомиться с историей появления asyncio в Python;
разобраться с коррутинами и yield from;
разобраться с futures.
1 сентября, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-11: YCrawler. Пишем асинхронный краулер для новостного сайта news.ycombinator.com
Asyncio. Event loop, async/await, low/high level API
познакомиться с концепцией event loop, старым и новым синтаксисом асинхронных вызовов;
рассмотреть высоко- и низкоуровневое API asyncio;
разобраться с внутренним устройством awaitable объектов.
5 сентября, 20:00 — 21:30
Golang. Тур по языку
познакомиться с синтаксисом, основными идиомами и экосистемой языка;
проанализировать область применимости языка, его сильные и слабые стороны;
провести сравнение с Python.
8 сентября, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-12: MemcLoad v2. Создаем простого демона на Go, проводим сравнение с аналогичным на Python.
Golang. Особенности внутреннего устройства
познакомиться с особенностями реализации языка;
рассмотреть принципы работы с памятью;
разобраться с диспетчером горутин;
познакомиться с примерами реальных задач, решаемых с помощью Go.
12 сентября, 20:00 — 21:30
Profiling
проанализировать особенности архитектуры, характеристики железа;
познакомиться с методиками профилирования кода;
разобраться с профилированием памяти и ЦПУ;
познакомиться с инструментами для профилирования, предоставляемыми в linux.
15 сентября, 20:00 — 21:30
Python 2 vs Python 3
рассмотреть особенности предыдущей версии;
обсудить миграцию проектов с 2 на 3 версию.
19 сентября, 20:00 — 21:30
Проектная работа
Заключительный месяц курса посвящен разработке проекта. В качестве темы выбирается то, что интересно писать студенту и то, что потенциально можно будет потом включить в свое резюме. Участие в разработке некоего open source продукта тоже может рассматриваться в качестве выпускного проекта. При этом не обязательно закончить его за месяц. В процессе написания проекта можно получить консультации преподавателей.

Примеры тем проекта:
- система мониторинга ПК в корпоративной сети
- свой ORM
- web приложение по поиску групп с целевой аудиторией в ВК
- исследование dataset’а с визуализацией
Выбор темы и организация проектной работы
выбрать и обсудить тему проектной работы;
спланировать работу над проектом;
ознакомиться с регламентом работы над проектом.
22 сентября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Проект. - выбрать тему;
- подтвердить тему в чате с преподавателем;
- предоставить промежуточные наработки на промежуточное ревью;
- предоставить финальную версию проекта к дедлайну.
Консультация по проектам и домашним заданиям
получить ответы на вопросы по проекту, ДЗ и по курсу.
26 сентября, 20:00 — 21:30
Защита проектных работ
защитить проект и получить рекомендации экспертов.
29 сентября, 20:00 — 21:30

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

Станислав Ступников
руководитель разработки в VK
10+ лет опыта промышленной разработки, в том числе создания и поддержания веб-приложений, инфраструктурных решений, высоконагруженных систем, data pipeline'ов и аналитических систем.

3 года научной разработки для крупных государственных заказчиков с контрактами по тематике анализа больших объемов данных. Опыт программирования на Python, Go, Lua, C, JavaScript, Perl.

Широкий круг профессиональных интересов, начиная от построения распределенных систем, заканчивая машинным обучением. Более 5 лет преподавания программирования на Python студентам МГТУ им. Н.Э. Баумана (Москва). 4 года преподавания курса СУБД в Технопарк Mail.Ru. Закончил МГТУ им. Н.Э. Баумана по специальности «Специалист по защите информации» в 2013 году.
Преподаватель курсов:
Python Developer. Professional

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

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