07.02.2018       Выпуск 216 (05.02.2018 - 11.02.2018)       Учебные материалы

Профессиональный курс “Разработчик Python” в OTUS.

Изучай Python на настоящих задачах!
Освой за 5 месяцев основные инструменты и практики разработчика, и получи приглашение на собеседование в топовую IT компанию. (Avito компенсирует обучение в случае трудоустройства)
Получай опыт напрямую от разработчиков Mail_ru Group и Sunlight и становись специалистом.

Читать>>



Экспериментальная функция:

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

Просим обратить внимание, что текст по ссылке и здесь может не совпадать.

Занятие 1: Advanced basics. Часть 1
Кодировки, Unicode в Python 2, coercion. Floating point numbers, IEEE-754, особенности реализации, основные ошибки и особенности использования. Itertools, iterable, iterator, iterator protocol, sequence protocol. Generators: pipelines, routing, coroutines.

Занятие 2: Advanced basics. Часть 2
Функциональное программирование, рекурсия и ее ограничения, tail recursion optimization. Scoping, namespaces, замыкания и их устройство. Декораторы функции и классы, декораторы с аргументами, вложенные декораторы.

ДЗ

ДЗ-1. (1) Несколько упражнений на тему занятия: итераторы, генераторы, декораторы; (2) Делаем анализатор логов веб-сервера.

Занятие 3: Internals. Часть 1
CPython, внутренности и архитектура, байткод, stack virtual machine, интерпретация. Имплементация основных типов данных: строки, числа, списки, словари. Оптимизации.

Занятие 4: Internals. Часть 2
Memory model, allocation, reference counting, garbage collection. GIL, реализация и последствия, методы обхода.

ДЗ

ДЗ-2 (опционально). Добавляем новый опкод и пару операторов, собираем свой Python. Понадобятся знания С.

Занятие 5: OOP. Часть 1
Object model, new-style classes, MRO, super. Множественное наследование, slots, new, name mangling. Дескрипторы, data и non-data дескрипторы, descriptor protocol, property.

Занятие 6: OOP. Часть 2
Интроспекция. Магические методы. Модуль ABC, абстрактные классы. Metaclasses и "черная магия". Design patterns, ключевые принципы, примеры.

ДЗ

ДЗ-3.0. Создаем декларативный язык описания и систему валидации запросов к HTTP API

Занятие 7: Testing. Часть 1
Пирамида тестирования. Test design, coverage. Unit testing, integration testing. Mocking, monkey patching. Фикстуры. Нагрузочное тестирование.

Занятие 8: Testing. Часть 2
Автоматизация тестирования. Continuous integration, continuous delivery, continuous deployment. Canary deployment, feature flags, staged rollouts. Документирование.

Занятие 9: Automatization. Часть 1
Базы данных, коннекторы, ping-reconnect, конкурентное использование, connection pooling, "отстреливание" долгих запросов. Кеширование. Networking, socket, UDP, TCP/IP. HTTP, timeouts, requests.

Занятие 10: Automatization. Часть 2
Архитектуры web-server'ов. Демонизация, конфиги, логирование. Setup tools и дистрибуция, менеджмент зависимостей. Пакеты и пакетные менеджеры, сборка.

ДЗ

ДЗ-4. Создаем свой сервер на "ванильном" Python, частично реализующий протокол HTTP (будет корректно отдавать страницу wikipedia). Проводим нагрузочное тестирование.

Занятие 11: Dynamic Web
Dynamic Web, CGI, FastCGI, WSGI, Gunicorn. uWSGI, обзор основных особенностей. Tiered architecture.

Занятие 12: Django
Паттерн MVC\MTV, coding style, настройка окружения, структура Django проекта, конфигурация проектов, зависимости, маршрутизация URL.

ДЗ

ДЗ-5 (опционально). Пишем стандартного "промышленного" демона, который будет отвечать по HTTP, ходить в базу, писать логи и собираться в пакет. Те, кто не знаком с Django, проходят tutorial.

Занятие 13: ORM и "зло"
Модели, CRUD, Query sets, lazy evaluation, prefetch\preload, join'ы, сложные запросы и raw SQL. Object managers.

Занятие 14: Database
Индексы. Транзакции и уровни изоляции. Миграции схемы и миграции данных, большие объемы данных. Репликация, перенос сложных запросов на slave'ы, распределение нагрузки. Шардирование. NoSQL.

ДЗ

ДЗ-6.0. Создание web-приложения аналога Stack Overflow. Определяемся со структурой и схемой данных.

Занятие 15: Views
Views, представления, виды представлений, function/class based views, generic views.

Занятие 16: Формы
Формы, поля, процесс валидации, model form. Widgets. Templates, язык шаблонов, архитектура шаблонизатора. Фильтры, тэги. Jinja2

Занятие 17: REST API. Часть 1
Принципы REST, архитектурные стили, ограничения. Проектирование API, ресурсы, методы ошибки, версионирование. Django REST framework.

Занятие 18: REST API. Часть 2
Rate limiting. Документация, swagger. Web Performance. Фронтэнд оптимизация, масштабирование бекэнда.

ДЗ

ДЗ-6.2 (опционально). Добавляем к разрабатываемому приложению API.

Занятие 19: NumPy. Часть 1
IPython, базовое использование, интроспекция, поиск, история, макросы, магические методы, взаимодействие с ОС, разработка. NumPy. ndarray, индексирование, маски, векторизация. Universal functions.

Занятие 20: NumPy. Часть 2
Reshaping, broadcasting, structured и record массивы, хранение и загрузка данных. Внутренности ndarray. Memmap, HDF5.

ДЗ

ДЗ-7. Дописываем логистический регрессор, используем его для классификации отзывов о еде из Amazon.

Занятие 21: Pandas
Pandas. Series. Dataframe, иерархические индексы, missing data, агрегация.

Занятие 22: Matplotlib
Построение графиков, гистограммы, subplots, аннотации, стили. Data visualization, принципы правильных визуализаций.

ДЗ

ДЗ-8. Выбираем один из открытых dataset'ов и анализируем его с помощью pandas в IPython notebook.

Занятие 23: Concurrency. Часть 1
Concurrency, parallelism. IO/CPU bound задачи. Multithreading, sharing, communication.

Занятие 24: Concurrency. Часть 2
Multiprocessing, IPC, shared memory, Manager. Distributed computing

ДЗ

ДЗ-9. Реализуем конкурентную заливку данных в memcache'ы

Занятие 25: C extensions
Написание расширений на C, C API.

Занятие 26: ffi. Cython. Pypy

ДЗ

ДЗ-10 (опционально). Пишем свое расширение, которое будет писать файлы с protobuf сериализованным содержимым. Понадобятся знания C.

Занятие 27: Async. Часть 1
Generators, coroutines, yield from. Event loop. Future.

Занятие 28: Async. Часть 2
async/await. Error handling

Занятие 29: Golang. Часть 1
Производительность Python. Golang. Toolchain, структура проекта, менеджмент зависимостей, тур по языку.

Занятие 30: Golang. Часть 2
Внутренности: горутины, сборщик мусора, оптимизации.

ДЗ

ДЗ-12. Создаем простого демона на Go, проводим сравнение с аналогичным на Python.

Занятие 31: Profiling
Особенности архитектуры, характеристики железа. Антипаттерны профилирования. Методология. cProfile, line_profiler, memory_profiler. Инструменты Linux, perf.

Занятие 32: Python 3
Обзор изменений, новые фичи. Миграция проектов с 2 на 3 версию.



Лучшая Python рассылка



Разместим вашу рекламу

Пиши: mail@pythondigest.ru

Нашли опечатку?

Выделите фрагмент и отправьте нажатием Ctrl+Enter.

Система Orphus