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

Best Practice по решению прикладных задач и освоению инструментов, применяемых программистом при разработке инфраструктурных решений, веб-приложений, систем контроля качества и аналитических систем
Начало занятий
В июне
О курсе и о себе
Хотелось создать такой курс, на котором не будет грустно, на котором вы не будете изучать в сотый раз одни и те же базовые вещи, а получите знания, которые вас левелапнут с джуниора до миддла, позволят вам развиваться дальше, делать то, что вы не делали раньше, это — наша основная цель в рамках курса.
Что даст вам этот курс

Python course предназначен для программистов, уже имеющих опыт разработки и желающих повысить свой уровень за счет получения знаний и навыков в различных областях разработки. Если вы уверенно чувствуете себя с Python, помните C, имеете представление о сетевом взаимодействии и реляционных СУБД, умеете обращаться с Linux, git’ом и прочими стандартными инструментами девелопера - Python course для вас.


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


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


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


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


После прохождения курса у вас будет:

- 9-12 (в зависимости от желания выполнять опциональные задания) выполненных ДЗ на все темы курса,

- 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-подобные языки.
Отзывы
13
Алексей
Гребенщиков
Хочу сказать спасибо за курс «Разработчик 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 и куча всего по чуть-чуть. Искал интересный и насыщенный курс, нашёл ОТУС. Сомневался недели две, вывезу или нет. Решился прыгнуть.
Учиться интересно, это факт, но чертовски сложно. У меня уже есть пару хвостов, не поспеваю, но пока не отчаялся)) Курс у меня в декабре заканчивается.
Чувствую себя альпинистом, карабкающимся по скале с отрицательным наклоном, интерес подогревает любопытство, что же мол там, на вершине?
Или возможно боязнь сорваться вниз. =)
Читать целиком
Sabirov
Ruslan
В целом курс очень понравился. В самом начале курса, я думал о том куда я попал, задания сложные, интенсивность высокая, в течении недели нужно освоить материалы 2-х лекций со средней длительностью по 2 часа и выполнить домашнее задание, про выходные можно вообще забыть! Было сложно, но все же себя переборол и дошел до конца, приобретенный опыт с потом это большая награда)! Стас практикующий преподаватель, приводил много примеров как делать не надо, и варианты best practices! Домашние задания проверяются строго, даже если я считал свой код идеальным, Стас все равно находил что можно доработать или исправить. Не знаю как у других но из 15 заданий с первого раза удалось сдать всего несколько раз, хоть это и не важно! После отпуска начал отставать по дз от основной группы, но в конце догнал. Спасибо за курс!
Читать целиком
Антон
Лыткин
Курс очень насыщенный и сложный. И в этом вся его прелесть. Был охвачен не только python, но и другие языки, такие как C и Go. Кроме того, после прохождения курса (конечно, если выполнять домашние задания), прокачиваются также и навыки администрирования.
Станислав Ступников и Андрей Кравчук - сильные преподаватели, которые знают python "по косточкам" и преподают на очень высоком уровне.
Стоит отметить, что на всем протяжении курса времени на расслабления не было. Поскольку я совмещал курсы с работой, нередко приходилось делать домашние задания ночью, не говоря уже про выходные, поскольку хотелось разобраться в материале досконально.
Общее впечатление о курсе - крайне положительное.
Читать целиком
Роман
Болховитин
Про этот курс ходит много страшилок в чате Отуса, и он действительно тяжелый, даже очень, - подумывал не претворить ли в жизнь шутку "уволился чтобы закончить курс на Отус", но не уволился.

В общем то про курс все уже написано в других отзывах, напишу что я заметил лично у себя - после (на самом деле еще во время прохождения) курса я стал писать более складные, развернутые и информативные код-ревью, в формате похожем на тот, который используется при проверке домашних заданий. Надеюсь это заметил не только я, но и коллеги.

Но это скорее про софт-скиллы, а как сферический разработчик в вакууме я очень подтянул понимание того как работает ОС, и если до курса на слова "процессы, потоки, сигналы и эвенты" почтительно смотрел издалека, то сейчас испытываю к ним гораздо более дружеские чувства.

Понравились не только разделы про всякие низкоуровневые штуки, секции про Asyncio и Go тоже зашли очень хорошо, особенно про Go. Никогда бы в голову не пришло учить этот язык, а домашку поделал и проникся, читаю теперь книжку Кернигана-Донована.

И конечно же бонусом к курсу прилагается общая для Отуса фишка - чат в телеграме и Slack. Иногда спасают даже когда Stackoverflow не помогает.

Из того что я не оценил - домашка про логистическую регрессию. Об нее моск можно сломать, а зачем непонятно )
Читать целиком
Михаил
Лукин
Я было сомневался, выбирая курс «Разработчик Python». Меня смущала длительность обучения и цена – ведь свободного времени всегда не хватает, а оплачивать пришлось из собственных средств.

Спустя месяц я забыл о своих сомнениях. Хоть едва удавалось успевать выполнять домашние задания, даже опциональные задачи были настолько нестандартными и интересными, что отказать себе в удовольствии и не залипнуть в них было просто невозможно. Несколько раз я морально готовился проплачивать переход в следующую группу, чтобы «отдышаться», но в последний момент вытягивал и все-таки сдавал. И так каждую неделю…

Отдельно хочу отметить преподавателя. Нелегко совмещать качества хорошего педагога и профессионального разработчика. Но именно такой преподаватель ведет этот курс. Станислав квалифицированный программист с богатым опытом, престижным образованием и прекрасным чувством юмора. Сходите на открытый урок и поймете, что я не преувеличиваю. Разработанный Станиславом курс уникален. А еженедельные ламповые «посиделки» в вебинарной комнате вечером в пятницу стали такой доброй традицией, что в первую неделю после окончания лекций приходилось пересматривать записи :)

Затраченные время и деньги окупились еще до окончания курса – я устроился на работу в крутую компанию и теперь применяю все полученные знания и навыки на практике. Я смело могу порекомендовать пройти курс всем, кто не только любит программировать на Python, но и хочет заниматься этим на профессиональном уровне, даже если кажется, что уровень знания языка уже довольно хороший.

Удачи всем питонистам на этом замечательном курсе!
Читать целиком
Алексей
Гребенщиков
Хочу сказать спасибо за курс «Разработчик 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 и куча всего по чуть-чуть. Искал интересный и насыщенный курс, нашёл ОТУС. Сомневался недели две, вывезу или нет. Решился прыгнуть.
Учиться интересно, это факт, но чертовски сложно. У меня уже есть пару хвостов, не поспеваю, но пока не отчаялся)) Курс у меня в декабре заканчивается.
Чувствую себя альпинистом, карабкающимся по скале с отрицательным наклоном, интерес подогревает любопытство, что же мол там, на вершине?
Или возможно боязнь сорваться вниз. =)
Читать целиком
Sabirov
Ruslan
В целом курс очень понравился. В самом начале курса, я думал о том куда я попал, задания сложные, интенсивность высокая, в течении недели нужно освоить материалы 2-х лекций со средней длительностью по 2 часа и выполнить домашнее задание, про выходные можно вообще забыть! Было сложно, но все же себя переборол и дошел до конца, приобретенный опыт с потом это большая награда)! Стас практикующий преподаватель, приводил много примеров как делать не надо, и варианты best practices! Домашние задания проверяются строго, даже если я считал свой код идеальным, Стас все равно находил что можно доработать или исправить. Не знаю как у других но из 15 заданий с первого раза удалось сдать всего несколько раз, хоть это и не важно! После отпуска начал отставать по дз от основной группы, но в конце догнал. Спасибо за курс!
Читать целиком
Антон
Лыткин
Курс очень насыщенный и сложный. И в этом вся его прелесть. Был охвачен не только python, но и другие языки, такие как C и Go. Кроме того, после прохождения курса (конечно, если выполнять домашние задания), прокачиваются также и навыки администрирования.
Станислав Ступников и Андрей Кравчук - сильные преподаватели, которые знают python "по косточкам" и преподают на очень высоком уровне.
Стоит отметить, что на всем протяжении курса времени на расслабления не было. Поскольку я совмещал курсы с работой, нередко приходилось делать домашние задания ночью, не говоря уже про выходные, поскольку хотелось разобраться в материале досконально.
Общее впечатление о курсе - крайне положительное.
Читать целиком
Роман
Болховитин
Про этот курс ходит много страшилок в чате Отуса, и он действительно тяжелый, даже очень, - подумывал не претворить ли в жизнь шутку "уволился чтобы закончить курс на Отус", но не уволился.

В общем то про курс все уже написано в других отзывах, напишу что я заметил лично у себя - после (на самом деле еще во время прохождения) курса я стал писать более складные, развернутые и информативные код-ревью, в формате похожем на тот, который используется при проверке домашних заданий. Надеюсь это заметил не только я, но и коллеги.

Но это скорее про софт-скиллы, а как сферический разработчик в вакууме я очень подтянул понимание того как работает ОС, и если до курса на слова "процессы, потоки, сигналы и эвенты" почтительно смотрел издалека, то сейчас испытываю к ним гораздо более дружеские чувства.

Понравились не только разделы про всякие низкоуровневые штуки, секции про Asyncio и Go тоже зашли очень хорошо, особенно про Go. Никогда бы в голову не пришло учить этот язык, а домашку поделал и проникся, читаю теперь книжку Кернигана-Донована.

И конечно же бонусом к курсу прилагается общая для Отуса фишка - чат в телеграме и Slack. Иногда спасают даже когда Stackoverflow не помогает.

Из того что я не оценил - домашка про логистическую регрессию. Об нее моск можно сломать, а зачем непонятно )
Читать целиком
Михаил
Лукин
Я было сомневался, выбирая курс «Разработчик Python». Меня смущала длительность обучения и цена – ведь свободного времени всегда не хватает, а оплачивать пришлось из собственных средств.

Спустя месяц я забыл о своих сомнениях. Хоть едва удавалось успевать выполнять домашние задания, даже опциональные задачи были настолько нестандартными и интересными, что отказать себе в удовольствии и не залипнуть в них было просто невозможно. Несколько раз я морально готовился проплачивать переход в следующую группу, чтобы «отдышаться», но в последний момент вытягивал и все-таки сдавал. И так каждую неделю…

Отдельно хочу отметить преподавателя. Нелегко совмещать качества хорошего педагога и профессионального разработчика. Но именно такой преподаватель ведет этот курс. Станислав квалифицированный программист с богатым опытом, престижным образованием и прекрасным чувством юмора. Сходите на открытый урок и поймете, что я не преувеличиваю. Разработанный Станиславом курс уникален. А еженедельные ламповые «посиделки» в вебинарной комнате вечером в пятницу стали такой доброй традицией, что в первую неделю после окончания лекций приходилось пересматривать записи :)

Затраченные время и деньги окупились еще до окончания курса – я устроился на работу в крутую компанию и теперь применяю все полученные знания и навыки на практике. Я смело могу порекомендовать пройти курс всем, кто не только любит программировать на Python, но и хочет заниматься этим на профессиональном уровне, даже если кажется, что уровень знания языка уже довольно хороший.

Удачи всем питонистам на этом замечательном курсе!
Читать целиком
Минимальные знания
Курсы Python рассчитаны на определённый уровень подготовки, поэтому чтобы начать познавать прекрасный мир 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/
Подготовительный курс
Данный курс позволит вам овладеть базовым набором знаний и навыков, необходимых для старта карьеры разработчика на Python и подготовки к основному курсу «Разработчик Python».

Материалы курса представляют собой предварительно записанные в студии лекции с теоретической частью и наглядной практической работой. После каждой лекции вам будет предложен тест для проверки усвоенного материала.

Курс состоит из 12 блоков, в рамках которых рассмотрены следующие темы:

— Базовые типы и структуры данных;
— Функциональное программирование и работа с данными;
— Организация кода в модули. Исключения и классы;
— Файлы и сеть. HTTP;
— Django;
— NumPy;
— Pandas;
— Shell, virtualenv, git.

При успешном прохождении курса вы получите приглашение в Slack сообщество и возможность приобрести со скидкой основной курс «Разработчик Python» без прохождения вступительного теста (при 80 % и более правильных ответов на тесты подготовительного курса).
Записаться
Программа обучения
Модуль 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.
Домашние задания: 1
1 ДЗ-1: Log Analyzer
(1) Несколько упражнений на тему занятия: итераторы, генераторы, декораторы; (2) Делаем анализатор логов веб-сервера.
Advanced basics. Часть 2
Функциональное программирование, рекурсия и ее ограничения, tail recursion optimization. Scoping, namespaces, замыкания и их устройство. Декораторы функции и классы, декораторы с аргументами, вложенные декораторы.
Internals. Часть 1
CPython, внутренности и архитектура, байткод, stack virtual machine, интерпретация. Имплементация основных типов данных: строки, числа, списки, словари. Оптимизации.
Домашние задания: 1
1 ДЗ-2: CPython (опционально)
Добавляем новый опкод и пару операторов, собираем свой Python. Понадобятся знания С.
Internals. Часть 2
Memory model, allocation, reference counting, garbage collection. GIL, реализация и последствия, методы обхода.
OOP. Часть 1
Object model, new-style classes, MRO, super. Множественное наследование, slots, new, name mangling. Дескрипторы, data и non-data дескрипторы, descriptor protocol, property.
Домашние задания: 1
1 ДЗ-3.0: Scoring API
Создаем декларативный язык описания и систему валидации запросов к HTTP API
OOP. Часть 2
Интроспекция. Магические методы. Модуль ABC, абстрактные классы. Metaclasses и "черная магия". Design patterns, ключевые принципы, примеры.
Testing. Часть 1
Пирамида тестирования. Test design, coverage. Unit testing, integration testing. Mocking, monkey patching. Фикстуры. Нагрузочное тестирование.
Домашние задания: 1
1 ДЗ-3.1: API Testing
Дописываем тесты API
Testing. Часть 2
Автоматизация тестирования. Continuous integration, continuous delivery, continuous deployment. Canary deployment, feature flags, staged rollouts. Документирование.
Automatization. Часть 1
Базы данных, коннекторы, ping-reconnect, конкурентное использование, connection pooling, "отстреливание" долгих запросов. Кеширование. Networking, socket, UDP, TCP/IP. HTTP, timeouts, requests.
24 апреля, 20:00 — 21:30
Лектор: Станислав Ступников
Домашние задания: 1
1 ДЗ-4: Web Server
Создаем свой сервер на "ванильном" Python, частично реализующий протокол HTTP (будет корректно отдавать страницу wikipedia). Проводим нагрузочное тестирование.
Automatization. Часть 2
Архитектуры web-server'ов. Демонизация, конфиги, логирование. Setup tools и дистрибуция, менеджмент зависимостей. Пакеты и пакетные менеджеры, сборка.
26 апреля, 20:00 — 21:30
Лектор: Станислав Ступников
Web
Dynamic Web
Dynamic Web, CGI, FastCGI, WSGI, Gunicorn. uWSGI, обзор основных особенностей. Tiered architecture.
8 мая, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-5: uWSGI Daemon/ Django Tutorial (опционально)
Пишем стандартного "промышленного" демона, который будет отвечать по HTTP, ходить в базу, писать логи и собираться в пакет. Те, кто не знаком с Django, проходят tutorial.
Django
Паттерн MVC\MTV, coding style, настройка окружения, структура Django проекта, конфигурация проектов, зависимости, маршрутизация URL.
15 мая, 20:00 — 21:30
ORM и "зло"
Модели, CRUD, Query sets, lazy evaluation, prefetch\preload, join'ы, сложные запросы и raw SQL. Object managers.
17 мая, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-6.0: Django project
Создание web-приложения аналога Stack Overflow. Определяемся со структурой и схемой данных.
Database
Индексы. Транзакции и уровни изоляции. Миграции схемы и миграции данных, большие объемы данных. Репликация, перенос сложных запросов на slave'ы, распределение нагрузки. Шардирование. NoSQL.
22 мая, 20:00 — 21:30
Views
Views, представления, виды представлений, function/class based views, generic views.
24 мая, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-6.1: Django project
Начинаем рисовать красивые странички
Формы
Формы, поля, процесс валидации, model form. Widgets. Templates, язык шаблонов, архитектура шаблонизатора. Фильтры, тэги. Jinja2
29 мая, 20:00 — 21:30
REST API. Часть 1
Принципы REST, архитектурные стили, ограничения. Проектирование API, ресурсы, методы ошибки, версионирование. Django REST framework.
31 мая, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-6.2: Django REST API (опционально)
Добавляем к разрабатываемому приложению API.
REST API. Часть 2
Rate limiting. Документация, swagger. Web Performance. Фронтэнд оптимизация, масштабирование бекэнда.
5 июня, 20:00 — 21:30
Data engineering
NumPy. Часть 1
IPython, базовое использование, интроспекция, поиск, история, макросы, магические методы, взаимодействие с ОС, разработка. NumPy. ndarray, индексирование, маски, векторизация. Universal functions.
7 июня, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-7: LogRegression
Дописываем логистический регрессор, используем его для классификации отзывов о еде из Amazon.
NumPy. Часть 2
Reshaping, broadcasting, structured и record массивы, хранение и загрузка данных. Внутренности ndarray. Memmap, HDF5.
14 июня, 20:00 — 21:30
Pandas
Pandas. Series. Dataframe, иерархические индексы, missing data, агрегация.
19 июня, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-8: Open Data Analysis (опционально)
Выбираем один из открытых dataset'ов и анализируем его с помощью pandas в IPython notebook.
Matplotlib
Построение графиков, гистограммы, subplots, аннотации, стили. Data visualization, принципы правильных визуализаций.
21 июня, 20:00 — 21:30
Highload
Concurrency. Часть 1
Concurrency, parallelism. IO/CPU bound задачи. Multithreading, sharing, communication.
26 июня, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-9: MemcLoad
Реализуем конкурентную заливку данных в memcache'ы
Concurrency. Часть 2
Multiprocessing, IPC, shared memory, Manager. Distributed computing
28 июня, 20:00 — 21:30
C extensions
Написание расширений на C, C API.
3 июля, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-10: Protobuf (de)serializer (опционально)
Пишем свое расширение, которое будет писать файлы с protobuf сериализованным содержимым. Понадобятся знания C.
ffi. Cython. Pypy
5 июля, 20:00 — 21:30
Async. Часть 1
Generators, coroutines, yield from. Event loop. Future.
10 июля, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-11: YCrawler
Пишем асинхронный краулер для новостного сайта news.ycombinator.com
Async. Часть 2
async/await. Error handling
12 июля, 20:00 — 21:30
Golang. Часть 1
Производительность Python. Golang. Toolchain, структура проекта, менеджмент зависимостей, тур по языку.
17 июля, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-12: MemcLoad v2
Создаем простого демона на Go, проводим сравнение с аналогичным на Python.
Golang. Часть 2
Внутренности: горутины, сборщик мусора, оптимизации.
19 июля, 20:00 — 21:30
Profiling
Особенности архитектуры, характеристики железа. Антипаттерны профилирования. Методология. cProfile, line_profiler, memory_profiler. Инструменты Linux, perf.
24 июля, 20:00 — 21:30
Python 3
Обзор изменений, новые фичи. Миграция проектов с 2 на 3 версию.
26 июля, 20:00 — 21:30
Проектная работа
Заключительный месяц курса посвящен разработке проекта. В качестве темы выбирается то, что интересно писать студенту и то, что потенциально можно будет потом включить в свое резюме. Участие в разработке некоего open source продукта тоже может рассматриваться в качестве выпускного проекта. При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.

Примеры тем проекта:
- система мониторинга ПК в корпоративной сети
- свой ORM
- web приложение по поиску групп с целевой аудиторией в ВК
- исследование dataset’а с визуализацией
Предлагаемые темы выпускного проекта:
- система мониторинга ПК в корпоративной сети
- web приложение (например, по поиску групп с целевой аудиторией в ВК)
- исследование dataset’а с визуализацией
- разработка open source проектов
- своя тема
Вводное занятие
Домашние задания: 1
1 Проектная работа
Консультация
Защита
Подглядеть
Как не нужно писать на Python
Станислав Ступников
Асинхронное программирование в Python
Андрей Кравчук
Аннотации типов в Python 3
Внутреннее устройство интерпретатора CPython
Андрей Кравчук
Release it: практические аспекты выпуска надёжного софта
Станислав Ступников
Трудности перевода 2 и 3 версии
Станислав Ступников
Больше материалов
Видеоматериалы по теме
День открытых дверей
13 марта в 20:00
День открытых дверей
18 декабря 2018 года в 20:00
День открытых дверей
11 октября 2018 года в 20:00
После обучения вы

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

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

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

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

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

Дата выдачи сертификата:
Ваш сертификат
otus.ru
Константин Константинопольский
успешно закончил курс
«Разработчик Python»
Успешных заданий:
16 из 16
Проектная работа:
Распределённая система сетевого мониторинга
Виталий Чибриков
Генеральный директор
№ 0001
otus.ru
Константин Константинопольский
успешно закончил курс
«Разработчик Python»
Успешных заданий:
16 из 16
Проектная работа:
Распределённая система сетевого мониторинга
Виталий Чибриков
Генеральный директор
№ 0001