День открытых дверей по курсу «Python Developer. Professional» 18.05.2018 в 20:00 | OTUS
⚡ Подписка на курсы OTUS!
Интенсивная прокачка навыков для IT-специалистов!
Подробнее

Курсы

Программирование
C++ Developer. Professional JavaScript Developer. Professional Android Developer. Professional Microservice Architecture React.js Developer JavaScript Developer. Basic PostgreSQL Программист С C++ Developer. Basic Team Lead PHP Developer. Professional Подготовка к сертификации Oracle Java Programmer (OCAJP) Алгоритмы и структуры данных Разработчик IoT C# Developer. Basic Unreal Engine Technical Game Design C# ASP.NET Core разработчик Python Developer. Basic Базы данных Node.js Developer iOS Developer. Professional Cloud Solution Architecture Kotlin Backend Developer Agile Project Manager Scala-разработчик Symfony Framework iOS Developer. Basic Супер-интенсив Azure Специализация Python Developer
Инфраструктура
Экспресс-курс по управлению миграциями (DBVC) Экспресс-курс «IaC Ansible» Microservice Architecture Разработчик программных роботов (RPA) на базе UiPath и PIX Внедрение и работа в DevSecOps NoSQL Специализация Administrator Linux
-24%
Разработчик IoT Мониторинг и логирование: Zabbix, Prometheus, ELK MongoDB
-37%
DevOps практики и инструменты MS SQL Server Developer SRE практики и инструменты Administrator Linux. Advanced Infrastructure as a code Супер-интенсив "Tarantool" Специализация Network engineer
Корпоративные курсы
Экспресс-курс по управлению миграциями (DBVC) Экспресс-курс «IaC Ansible» Разработчик программных роботов (RPA) на базе UiPath и PIX Внедрение и работа в DevSecOps NoSQL Spark Developer Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes» Game QA Engineer DevOps практики и инструменты Enterprise Architect Node.js Developer Cloud Solution Architecture Agile Project Manager Супер-практикум по работе с протоколом BGP Infrastructure as a code Промышленный ML на больших данных Супер-интенсив Azure Руководитель поддержки пользователей в IT
Специализации Курсы в разработке Подготовительные курсы Подписка
+7 499 938-92-02
Проходил 18 мая 2018 года в 20:00

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

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

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

Запись

О курсе

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

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

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

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

Станислав Ступников
Программист рекламной системы в Mail.Ru
8 лет опыта промышленной разработки, в том числе создания и поддержания веб-приложений, инфраструктурных решений, высоконагруженных систем, 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%), учебном процессе (оплатах, оценке знаний, сертификатах и прочих аспектах). Также ведущий мероприятия с радостью ответит на все ваши вопросы.