Разработчик Python

Best Practice по решению прикладных задач и освоению инструментов, применяемых при разработке инфраструктурных решений, веб-приложений, систем контроля качества и аналитических систем.
Зачем нужно тестирование?

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

5 месяцев

Начало

24 декабря

Общая стоимость

60 000 ₽

В месяц

15 000 ₽

В кредит:

около 15000 ₽ в месяц

Хочу дешевле
Общая стоимость
60 000 ₽
В месяц: 15 000 ₽
В кредит: около 15000 ₽
в месяц
Продолжительность
5 месяцев
4 часа в неделю
Начало занятий
24 декабря
Что даст вам этот курс
Курс предназначен для людей, уже имеющих опыт программирования и желающих повысить свой уровень за счет получения знаний и навыков в различных областях разработки. Если вы уверенно чувствуете себя с Python, помните C, имеете представление о сетевом взаимодействии и реляционных СУБД, умеете обращаться с Linux, git’ом и прочими стандартными инструментами девелопера - курс для вас.

Курс ставит своей целью погрузить вас в современную “промышленную” разработку в широком смысле, как в теории, так и на практике. При этом сам язык Python является лишь инструментом, с помощью которого мы будем препарировать различные области программерских знаний. Во главу угла же поставлено освоение основных software engineering компетенций через призму конкретного языка, а также формирование прагматичного подхода к решению задач.

Особенности курса: практикоориентированность и охват. На курсе много домашних заданий, некоторые из которых будут представлять настоящий challenge, а опциональные задания позволят самым смелым копнуть еще глубже и “потрогать” еще более продвинутые вещи. При этом области, в которых вы будете испытывать свои способности, имеют весьма широкий спектр: курс охватывает и web, и анализ данных, и вопросы создания высоконагруженных систем. В конце курса вы реализуете проект на свободную тему.

Курс универсальный, рассматриваются и 2, и 3 версии Python. Домашние работы и проект можно выполнять на любой версии, примеры на занятиях чаще работают под обе версии, но большинство писались на 2ой версии, запущен процесс их переделывания на Python 3. Все необходимые отступления и обсуждения разницы в версиях делаются.

По окончании курса вы получите понимание структуры современной разработки ПО и место Python и прочих инструментов в ней, ответите на вопросы: “как писать простой и идиоматичный код, за который не будет мучительно стыдно?“, “как тестировать и поддерживать код на Python?“, “как написать приложение, которое не умрёт под нагрузкой?“

После прохождения курса у вас будет:
- 6-11 (в зависимости от желания выполнять опциональные задания) выполненных ДЗ на все темы курса,
- 1 мини веб-проект,
- богатый список литературы и референсов для ознакомления и углубления знаний,
- код и материалы занятий, соединенные вместе в виде jupyter ноутбуков,
- видеозаписи всех вебинаров,
- проектная работа на интересную вам тему.

Трудозатраты
4 часа на занятия и 4-12 часов на домашнюю работу в неделю.
Преподаватели
Станислав Ступников
Программист рекламной системы в Mail.Ru
Андрей Кравчук
6 лет опыта промышленной разработки, в том числе создания и поддержания веб-приложений, инфраструктурных решений, высоконагруженных систем, data pipeline'ов и аналитических систем. 3 года научной разработки для крупных государственных заказчиков с контрактами по тематике анализа больших объемов данных. Опыт программирования на Python, Go, Lua, C, JavaScript, Perl. Широкий круг профессиональных интересов, начиная от построения распределенных систем, заканчивая машинным обучением. Более 5 лет преподавания программирования на Python студентам МГТУ им. Н.Э. Баумана. 4 года преподавания курса СУБД в Технопарк Mail.Ru. Закончил МГТУ им. Н.Э. Баумана по специальности "Специалист по защите информации" в 2013 году.
Занимается разработкой и поддержкой ряда веб-сервисов на фрилансе
Участник релиза 5-ой версии Free Download Manager.
Разработчик аналога Яндекс.маркета для печатной продукции на европейском рынке
Преподаватель в МУПОЧ "Дубна" дисциплин «C++», «Python», «Программирование в UNIX».
9 лет опыта коммерческой разработки на Python.
Область интересов - highload, машинное обучение, LISP-подобные языки.
Преподаватели
Станислав Ступников
Программист рекламной системы в Mail.Ru
6 лет опыта промышленной разработки, в том числе создания и поддержания веб-приложений, инфраструктурных решений, высоконагруженных систем, data pipeline'ов и аналитических систем. 3 года научной разработки для крупных государственных заказчиков с контрактами по тематике анализа больших объемов данных. Опыт программирования на Python, Go, Lua, C, JavaScript, Perl. Широкий круг профессиональных интересов, начиная от построения распределенных систем, заканчивая машинным обучением. Более 5 лет преподавания программирования на Python студентам МГТУ им. Н.Э. Баумана. 4 года преподавания курса СУБД в Технопарк Mail.Ru. Закончил МГТУ им. Н.Э. Баумана по специальности "Специалист по защите информации" в 2013 году.
Андрей Кравчук
Занимается разработкой и поддержкой ряда веб-сервисов на фрилансе
Участник релиза 5-ой версии Free Download Manager.
Разработчик аналога Яндекс.маркета для печатной продукции на европейском рынке
Преподаватель в МУПОЧ "Дубна" дисциплин «C++», «Python», «Программирование в UNIX».
9 лет опыта коммерческой разработки на Python.
Область интересов - highload, машинное обучение, LISP-подобные языки.
Отзывы
9
Алексей
Гребенщиков
Хочу сказать спасибо за курс «Разработчик Python» Станиславу Ступникову. Программа курса была очень насыщенной и постоянно держала в напряжении. Думать нужно было постоянно, идешь на работу – думаешь, обедаешь – думаешь, как же сделать эту домашку, как выбрать оптимальное решение, а вечером трудишься над реализацией.

Будущим студентом могу сказать, будет не просто сложно, а очень сложно. Помимо питона, нужно будет использовать Си и даже Го. Были охвачены практически все сферы коммерческого применения питона от Web до Data science, это позволяет понять для себя в какой же из сфер хочется дальше развиваться.

Станислав профессионал своего дела и будет заставлять вас писать промышленный код!
Читать целиком
Константин
Кормашев
После прохождения курса я приобрел, во-первых, понимание того как python устроен и работает вплоть до погружения на уровень кода интерпретатора, что собственно, помогает уяснить с какими нюансами можно будет столкнуться при использовании языка в целом (что полезно для проектирования приложений, профилирования кода и т.п.), а также получить опыт создания C-extentions для специфических задач расширения функционала python. Во-вторых, практику в написании качественного кода (иного просто не зачтут) для самых разнообразных задач с которыми можно столкнуться при эксплуатации языка в продакшн среде для разных областей применения: Web, DataEngineering, HighLoad и т.д. Задачи которые придется решать в ходе обучения не высосаны из пальца, они имеют под собой вполне реальную основу, т.е. с чем-то похожим можно будет вполне реально столкнуться в процессе будущей деятельности.
Как и подобает курсу Advanced, курс сложный, иначе о росте не могло бы быть и речи, нужно будет приготовится к очень серьезной работе. Однако, приложенные усилия будут вознаграждены. Лично я вижу разницу в написании собственного, понимании чужого кода до и после курса, она существенна, так что не жалею о приложенных усилиях, потраченном времени и средствах, все окупилось сторицей.
В общем, если есть желание поднять собственный уровень разработки на python, здесь у вас будет такая возможность. Дерзайте и успехов.
Читать целиком
Dmitriy
Sorokin
Как много курсов посвященных "Advanced Python" вы знаете? До появления OTUS я не встречал ни одного подобного курса. Иногда можно услышать: "Зачем мне курс? Все материалы можно найти в сети". Это правда, но ценность материалов без классного ментора и хорошей практики резко падает. Станислав отличный ментор, а уж над практикой точно придется попотеть.

Поначалу немного смущало, что в курсе используется Python 2.7, но в итоге быстро понимаешь, курс не завязан на версию языка (да и Станислав при необходимости делает ремарки Py2 vs Py3). Web/Data Science/Highload - плотность материалов очень высокая, поэтому советую быть
готовым к тому, что придется уделить курсу достаточно много времени (особенно домашкам посвященным C extensions и Golang).

Важно то, как сами преподаватели относятся к своим курсам. Стас дает хороший фидбек, после его code review иногда приходилось еще на несколько часов засаживаться за домашку. К концу курса на свой код смотришь уже немного другими глазами.

В итоге могу сказать, что курс отличный :)
Читать целиком
Андрей
Ларин
По сути, этот курс даже не про Python, а про решение реальных задач в реальном боевом окружении. Мое любимое слово, которое постоянно сопровождало меня в течении всего процесса обучения, — хардкор. А если более развернуто, то ощущения примерно такие, словно устроился на подработку, и тебе на выходные кидают реальные таски, которые надо закрыть. Это тяжело и требует времени, но при должной мотивации, такой подход работает очень эффективно.

Что понравилось:
- Большинство заданий курса — практически продакшен или близкие к нему задачи.
- Очень широко раскрывается тема об особенностях многопоточной и многопроцессорной обработки на Python.
- Отдельная большая тема посвящена интерпретатору CPython. Понимание того, как работает сборка мусора, GIL и другие особенности реализации, помогают намного более адекватно оценивать Python как инструмент решения задач, для каких он подходит, а для каких нет.
- C и Go — наличие компилируемых языков на курсе по Python поначалу выглядит странно. Но после понимаешь, что связка C и Python позволяет решать практически любой круг задач, а Go приближает это значение к 100%. Плюс было очень интересно решить одну и туже задачу на Go и на Python и посмотреть разницу в концептуальных подходах и производительности.
- Numpy и Pandas — очень эффективные инструменты не только для анализа данных, но и для текущей работы и даже повседневной жизни. Их знание как минимум будет не лишним.
- Общие лекции о проектировании и построении сложных и отказоустойчивых систем.

Сразу скажу, что объективных минусов у курса нет, но если оценивать субъективно, я бы обратил внимание на следующие вещи:
- Стоит больше внимания уделить асинхронному программированию, которое в курсе затрагивается достаточно поверхностно.
- Я бы уменьшил количество лекций по Django в пользу того же асинхронного программирования или переделал бы их структуру. Для людей которые с Django до этого не работали (типа меня) от лекций мало пользы, слишком advanced, а для тех кто хорошо знаком с этим фреймворков, возможно, этот материал будет и так очевиден.

Подводя итог, хочу сказать Станиславу большое спасибо за отлично проведенный курс, фидбек по задачам и великолепно проделанную работу по сбору и подготовке материалов. Надеюсь, что запаса его мотивации и энтузиазма хватит еще надолго!
Читать целиком
Олег
Гуцалов
Вот и завершился курс.

Во-первых курс не для новичков - не пришлось тратить время на выслушивание того, что такое list, tuple, with и т.п.

Во-вторых рассматриваются несколько сфер, где актуален Python. Django/DRF был лишь одной из них. Половина времени посвящена Data Engineering и Highload. Теперь понимаешь как это устроено в продакшене, видишь картину целиком.

На лекциях иногда возникали вопросы, которые Станислав не оставлял без внимания. Всегда можно было обратиться за разъяснением в чате.

Что особенно понравилось, так это ДЗ. Задачи были максимально приближены к боевым условиям, и их решения тщательно проверялись. Редко удавалось с первого раза разделаться хотя бы с одним - в ответ Станислав присылал замечания, буквально построчно указывая что не так.

В целом курс оказался довольно сложным и занимал довольно много свободного времени, но при этом ни разу не появлялось сомнений по поводу ценности получаемых навыков и знаний.

В итоге курс полностью оправдал мои ожидания, за что я благодарен команде Отус и лично Станиславу за отличный материал и терпение.
Читать целиком
Кирилл
Романов
Я мог бы отметить два момента, которыми данный курс выгодно отличается от тех вариантов, что я видел раньше:
1. Объемные ДЗ-проекты, которые часто либо надо писать с нуля, либо очень существенно перерабатывать на базе базового примера (но в последних случаях все равно получается что 90% кода дописывается с нуля). По моему мнению только так можно повысить свои навыки программирования. Никаких "вставьте ваш код здесь", которые дают лишь иллюзию освоения нового материала
2. Очень широкий и глубокий охват возможностей языка: анализ CPython, тесты, асинхронность, мультипоточность, Django, немного numpy и pandas, C extensions итд. Если до курса был небольшой опыт с Python то становится понятно в каких направлениях дальше развивать навыки, но даже для опытных разработчиков это хороший курс для систематизации знаний и иненсивной тренировки в тех областях, где есть пробелы

В целом на мой взгляд этот курс один из лучших вариантов по соотношению цена-качества для тех, кому нужно без отрыва от работы улучшить свои навыки разработчика Python.
Читать целиком
Олег
Борзов
Отличный курс. Nothing add, как говорится)
Большое спасибо Андрею и, особенно, Станиславу за организацию.

Из того что понравилось:
- Структура курса. Прекрасно проработанная программа, которая, действительно, Advanced. Затрагиваются практически все темы, с которыми сталкивается современный backend python-developer: веб-разработка (от написания бека и фронта до деплоя), тестирование, написание конкурентных программ, профилирование. Даже анализ данных и Go затрагивается
- Подача материала. Лекции рассказываются достаточно понятно, в конце каждой темы предоставляются ссылки на дополнительные материалы
- ДЗ. Сложные и интересные домашки, которые раскрывают суть материала с практической стороны. По некоторым темам только благодаря отусовским ДЗ смог наконец окончательно разобраться в теме)

Из небольших (возможно, спорных) минусов:
- Доп. материалы к лекциям на английском - из-за этого у плохо владеющих языком студентов больше времени будет уходить на разбор.
Но, с другой стороны, тут я соглашусь со Станиславом - сейчас для программиста, желающего стать профи, знание английского такая же необходимость, как и знание языка. Большая часть материалов с которыми придется иметь дело (документации, книги, статьи) - на английском языке. А переводы, во-первых, выходят с большим опозданием, во-вторых - там могут быть ошибки и неточности.
- Материалы на Python 2. Тоже спорный минус, т.к. ДЗ можно сдавать на 3 питоне. Да и знание 2 версии языка бывает полезно, когда сталкиваешься legacy-кодом.
- Мало времени на ДЗ. Трудно укладываться в сроки, особенно совмещая курс, например, с фултаймом. Но это тоже не претензия к Отусу, т.к. иначе бы пришлось упрощать ДЗ, что сказалось бы скорее отрицательно на качестве обучения.

Резюмируя, крайне советую данный курс всем начинающим питонистам. Будет сложно, но оно того стоит!
Читать целиком
Valery
Kapranchik
Коллеги! Курс роскошный), я конечно не стал middle, но совершенно точно я стал круче, за что вам низкий поклон. Что касается самого курса, сбалансирован, много полезного материала, много того, чего раньше мне было неведомо. Что-то сразу влезло в голову, что-то оставил на потом, естественно все лекции буду пересмотрены по второму разу, некоторые вероятно еще больше. В силу специфики работы в некоторых темах разбирался очень хорошо, некоторые не понял до сих пор. Курс показал куда надо двигаться и каких знаний не достаточно, что на мой взгляд не менее важно. При сдаче "домашки" был культурный шок, но это тоже элемент обучения. К моему сожалению, на выполнение "домашек" уходило очень много времени, которого у меня вообще нет, поэтому они были принесены в жертву. (ну это отмазка такая, лучше такая, чем никакой). Хочу поблагодарить Станислава за его советы, за интересные ссылки на статьи, примеры, разъяснения, за терпение. Otus хочу пожелать не останавливаться, вы делаете классное дело, за что вам уважуха. Жаль расставаться, 4 мес пролетели не заметно. С уважением! Спасибо!
Читать целиком
Артём
Сургутанов
Всем доброго времени суток. Учусь на курсе у Стаса с августа. С питоном работать начал с мая 2018 года. Писал небольшие скрипты по работе и плагины для сублима. Опыт в основном Oracle PL/SQL SQL, PHP и куча всего по чуть-чуть. Искал интересный и насыщенный курс, нашёл ОТУС. Сомневался недели две, вывезу или нет. Решился прыгнуть.
Учиться интересно, это факт, но чертовски сложно. У меня уже есть пару хвостов, не поспеваю, но пока не отчаялся)) Курс у меня в декабре заканчивается.
Чувствую себя альпинистом, карабкающимся по скале с отрицательным наклоном, интерес подогревает любопытство, что же мол там, на вершине?
Или возможно боязнь сорваться вниз. =)
Читать целиком
Минимальные знания
Чтобы начать познавать прекрасный мир advanced Python нужно предварительно обладать определенными знаниями. Если сформулировать емко, то это знания на уровне того, чтобы уметь сделать свой простенький (очень) поисковый движок. Тут и веб часть с html/css/js, и понимание сетевых вещей для обкачки ресурсов, и хранение добытого в БД, и представление о примитивах ОС (ведь краулер у нас вряд ли однопоточный) и алгоритмы какие-то, чтобы представить данные в виде, по которому быстро искать, и базовые представление о разработке с участием git’а, bash’а и прочего linux’а. Плюс ко всему понадобятся (рано или поздно) знания C. 1. Lutz M. Learning Python. – ” O’Reilly Media, Inc.“, 2013. 2. Hetland M. L. Python Algorithms: mastering basic algorithms in the Python Language. – Apress, 2014., 3. Beazley D., Jones B. K. Python cookbook. – ” O’Reilly Media, Inc.“, 2013. 4. Martelli A. Python in a Nutshell. – ” O’Reilly Media, Inc.“, 2006. 5. http://www.pythonweekly.com/ 6. http://pycoders.com/ 7. http://pyvideo.org/ 8. https://git-scm.com/book/en/v2 9. http://www.bottomupcs.com/ 10. https://cstack.github.io/db_tutorial/ 11. https://linuxjourney.com/
Программа обучения
Модуль 1
Advanced
Модуль 2
Web
Модуль 3
Data engineering
Модуль 4
Highload
Модуль 5
Проектная работа
Advanced
Advanced basics. Часть 1
Кодировки, Unicode в Python 2, coercion. Floating point numbers, IEEE-754, особенности реализации, основные ошибки и особенности использования. Itertools, iterable, iterator, iterator protocol, sequence protocol. Generators: pipelines, routing, coroutines.
24 декабря, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-1: Log Analyzer
(1) Несколько упражнений на тему занятия: итераторы, генераторы, декораторы; (2) Делаем анализатор логов веб-сервера.
Advanced basics. Часть 2
Функциональное программирование, рекурсия и ее ограничения, tail recursion optimization. Scoping, namespaces, замыкания и их устройство. Декораторы функции и классы, декораторы с аргументами, вложенные декораторы.
28 декабря, 20:00 — 21:30
Internals. Часть 1
CPython, внутренности и архитектура, байткод, stack virtual machine, интерпретация. Имплементация основных типов данных: строки, числа, списки, словари. Оптимизации.
31 декабря, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-2: CPython (опционально)
Добавляем новый опкод и пару операторов, собираем свой Python. Понадобятся знания С.
Internals. Часть 2
Memory model, allocation, reference counting, garbage collection. GIL, реализация и последствия, методы обхода.
4 января, 20:00 — 21:30
OOP. Часть 1
Object model, new-style classes, MRO, super. Множественное наследование, slots, new, name mangling. Дескрипторы, data и non-data дескрипторы, descriptor protocol, property.
7 января, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-3.0: Scoring API
Создаем декларативный язык описания и систему валидации запросов к HTTP API
OOP. Часть 2
Интроспекция. Магические методы. Модуль ABC, абстрактные классы. Metaclasses и "черная магия". Design patterns, ключевые принципы, примеры.
11 января, 20:00 — 21:30
Testing. Часть 1
Пирамида тестирования. Test design, coverage. Unit testing, integration testing. Mocking, monkey patching. Фикстуры. Нагрузочное тестирование.
14 января, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-3.1: API Testing
Дописываем тесты API
Testing. Часть 2
Автоматизация тестирования. Continuous integration, continuous delivery, continuous deployment. Canary deployment, feature flags, staged rollouts. Документирование.
18 января, 20:00 — 21:30
Automatization. Часть 1
Базы данных, коннекторы, ping-reconnect, конкурентное использование, connection pooling, "отстреливание" долгих запросов. Кеширование. Networking, socket, UDP, TCP/IP. HTTP, timeouts, requests.
21 января, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-4: Web Server
Создаем свой сервер на "ванильном" Python, частично реализующий протокол HTTP (будет корректно отдавать страницу wikipedia). Проводим нагрузочное тестирование.
Automatization. Часть 2
Архитектуры web-server'ов. Демонизация, конфиги, логирование. Setup tools и дистрибуция, менеджмент зависимостей. Пакеты и пакетные менеджеры, сборка.
25 января, 20:00 — 21:30
Web
Dynamic Web
Dynamic Web, CGI, FastCGI, WSGI, Gunicorn. uWSGI, обзор основных особенностей. Tiered architecture.
28 января, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-5: uWSGI Daemon/ Django Tutorial (опционально)
Пишем стандартного "промышленного" демона, который будет отвечать по HTTP, ходить в базу, писать логи и собираться в пакет. Те, кто не знаком с Django, проходят tutorial.
Django
Паттерн MVC\MTV, coding style, настройка окружения, структура Django проекта, конфигурация проектов, зависимости, маршрутизация URL.
1 февраля, 20:00 — 21:30
ORM и "зло"
Модели, CRUD, Query sets, lazy evaluation, prefetch\preload, join'ы, сложные запросы и raw SQL. Object managers.
4 февраля, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-6.0: Django project
Создание web-приложения аналога Stack Overflow. Определяемся со структурой и схемой данных.
Database
Индексы. Транзакции и уровни изоляции. Миграции схемы и миграции данных, большие объемы данных. Репликация, перенос сложных запросов на slave'ы, распределение нагрузки. Шардирование. NoSQL.
8 февраля, 20:00 — 21:30
Views
Views, представления, виды представлений, function/class based views, generic views.
11 февраля, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-6.1: Django project
Начинаем рисовать красивые странички
Формы
Формы, поля, процесс валидации, model form. Widgets. Templates, язык шаблонов, архитектура шаблонизатора. Фильтры, тэги. Jinja2
15 февраля, 20:00 — 21:30
REST API. Часть 1
Принципы REST, архитектурные стили, ограничения. Проектирование API, ресурсы, методы ошибки, версионирование. Django REST framework.
18 февраля, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-6.2: Django REST API (опционально)
Добавляем к разрабатываемому приложению API.
REST API. Часть 2
Rate limiting. Документация, swagger. Web Performance. Фронтэнд оптимизация, масштабирование бекэнда.
22 февраля, 20:00 — 21:30
Data engineering
NumPy. Часть 1
IPython, базовое использование, интроспекция, поиск, история, макросы, магические методы, взаимодействие с ОС, разработка. NumPy. ndarray, индексирование, маски, векторизация. Universal functions.
25 февраля, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-7: LogRegression
Дописываем логистический регрессор, используем его для классификации отзывов о еде из Amazon.
NumPy. Часть 2
Reshaping, broadcasting, structured и record массивы, хранение и загрузка данных. Внутренности ndarray. Memmap, HDF5.
1 марта, 20:00 — 21:30
Pandas
Pandas. Series. Dataframe, иерархические индексы, missing data, агрегация.
4 марта, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-8: Open Data Analysis (опционально)
Выбираем один из открытых dataset'ов и анализируем его с помощью pandas в IPython notebook.
Matplotlib
Построение графиков, гистограммы, subplots, аннотации, стили. Data visualization, принципы правильных визуализаций.
8 марта, 20:00 — 21:30
Highload
Concurrency. Часть 1
Concurrency, parallelism. IO/CPU bound задачи. Multithreading, sharing, communication.
11 марта, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-9: MemcLoad
Реализуем конкурентную заливку данных в memcache'ы
Concurrency. Часть 2
Multiprocessing, IPC, shared memory, Manager. Distributed computing
15 марта, 20:00 — 21:30
C extensions
Написание расширений на C, C API.
18 марта, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-10: Protobuf (de)serializer (опционально)
Пишем свое расширение, которое будет писать файлы с protobuf сериализованным содержимым. Понадобятся знания C.
ffi. Cython. Pypy
22 марта, 20:00 — 21:30
Async. Часть 1
Generators, coroutines, yield from. Event loop. Future.
25 марта, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-11: YCrawler
Пишем асинхронный краулер для новостного сайта news.ycombinator.com
Async. Часть 2
async/await. Error handling
29 марта, 20:00 — 21:30
Golang. Часть 1
Производительность Python. Golang. Toolchain, структура проекта, менеджмент зависимостей, тур по языку.
1 апреля, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-12: MemcLoad v2
Создаем простого демона на Go, проводим сравнение с аналогичным на Python.
Golang. Часть 2
Внутренности: горутины, сборщик мусора, оптимизации.
5 апреля, 20:00 — 21:30
Profiling
Особенности архитектуры, характеристики железа. Антипаттерны профилирования. Методология. cProfile, line_profiler, memory_profiler. Инструменты Linux, perf.
8 апреля, 20:00 — 21:30
Python 3
Обзор изменений, новые фичи. Миграция проектов с 2 на 3 версию.
12 апреля, 20:00 — 21:30
Проектная работа
Заключительный месяц курса посвящен разработке проекта. В качестве темы выбирается то, что интересно писать студенту и то, что потенциально можно будет потом включить в свое резюме. Участие в разработке некоего open source продукта тоже может рассматриваться в качестве выпускного проекта. При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.

Примеры тем проекта:
- система мониторинга ПК в корпоративной сети
- свой ORM
- web приложение по поиску групп с целевой аудиторией в ВК
- исследование dataset’а с визуализацией
Расписание занятий
Ваша группа
(cтарт 24 декабря)
Понедельник и пятница
20:00—21:30
Группа: Python-2018-12
Другие группы
Среда и пятница
20:00—21:30
Группа: Python-2018-10
Понедельник и суббота
20:00—21:30 и 11:00—12:30
Группа: Python-2018-08
Подглядеть
Асинхронное программирование в Python
Андрей Кравчук
Как не нужно писать на Python
Станислав Ступников
Аннотации типов в Python 3
Трудности перевода 2 и 3 версии
Станислав Ступников
Больше материалов
Видеоматериалы по теме
День открытых дверей
11 октября в 20:00
День открытых дверей
9 августа в 20:00
День открытых дверей
18 мая в 20:00
После обучения вы

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

  • существенно повысите свою компетенцию в сфере промышленной разработки на Python

  • научитесь разрабатывать коммерческие приложения самостоятельно и в команде

  • получите сертификат об окончании курса

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

Ваш сертификат
otus.ru
Константин Константинопольский
успешно закончил курс
«Разработчик Python»
Успешных заданий:
16 из 16
Проектная работа:
Распределённая система сетевого мониторинга
Виталий Чибриков
Генеральный директор
№ 0001
otus.ru
Константин Константинопольский
успешно закончил курс
«Разработчик Python»
Успешных заданий:
16 из 16
Проектная работа:
Распределённая система сетевого мониторинга
Виталий Чибриков
Генеральный директор
№ 0001
Общая стоимость
60 000 ₽
В месяц: 15 000 ₽
В рассрочку: около ₽ в месяц
Продолжительность
5 месяцев
Начало занятий
24 декабря