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

Курсы

Программирование
PHP Developer. Basic
-20%
Специализация PHP Developer
-25%
C# Developer. Professional
-20%
Team Lead
-20%
Symfony Framework
-20%
C# Developer. Basic
-20%
iOS Developer. Basic
-20%
C# ASP.NET Core разработчик
-20%
Специализация Python Developer
-25%
Разработчик на Spring Framework
-20%
Kotlin Backend Developer
-20%
Архитектура и шаблоны проектирования
-20%
Highload Architect Web-разработчик на Python Unity Game Developer. Professional Java Developer. Basic NoSQL Rust Developer C++ Developer. Professional Базы данных Android Developer. Basic Разработчик программных роботов (RPA) на базе UiPath и PIX Unity Game Developer. Basic Agile Project Manager Scala-разработчик JavaScript Developer. Basic HTML/CSS Software Architect Специализация C++ Developer Kotlin Developer. Basic
Специализации Курсы в разработке Подготовительные курсы Подписка
+7 499 938-92-02
Проходил 22 ноября 2017 года в 20:00

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

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

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

Запись

О курсе

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

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

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

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

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