Курс Python (продвинутый)
Описание курса
Курс предназначен для тех, кто уже владеет основами разработки на Python и желает освоить продвинутые умения и навыки программирования на Python. Курс также будет полезен уже квалифицированным пользователям. Программа построена по принципу 20% лекционного материала, 80% лабораторные работы.
После курса Python Advanced ты сможешь разрабатывать более сложные программы на Python, использовать в работе приемы объектно-ориентированного программирования и разбираться в продвинутых аспектах языка. Ты получишь всю необходимую информацию для последнего этапа обучения — курса Python/Django, после которого ты сможешь претендовать на позицию Junior Python Web Developer.
После курса вы сможете:
- Разрабатывать программы на языке Python
- Подготовишся к курсу "Фреймворк Python / Django", после которого ты сможешь претендовать на позицию Junior Python Web Developer.
Программа курса:
1. Функции.
- Типы данных
- Встроенные контейнеры
- Операторы контроля выполнения
- Обработка ошибок (try ... except ...)
- Операторы циклов
- Comprehensions (list, dict, set)
- Создание функции и процедур
- Аргументы функций
- Рекурсивные функции
- Functors, Currying
- Декораторы
- Lambda-функции
- PEP8
2. Объектно-ориентированный подход
- Объявление класса и создание экземпляра
- Принципы ООП (подражание, инкапсуляция, полиморфизм) в Python
- Область видимости (Namespaces, Scope, правило LEGB)
- Method Resolution Order (MRO)
- Магические методы
- Определение математических операций для объектов Python
- Определение операций сравнения для объектов Python
- Определение операций хеширования для объектов Python
- Создание копии экземпляра класса, deep copy, shallow copy
- Инкапсуляция (Setters and getters)
3. Управление созданием экземпляров класса
- Doc strings
- Meta-классы
- Abstract Bases-классы
- __new__
- __init__
- Context-managers
- Использованием декораторов с классами
- Контейнеры, созданные путем наследования (UserList, UserDict, UserString)
- Контейнеры, созданные путем агрегации
- Методы доступа к элементам контейнера
- Iterators, Generators
4. Приемы объектно-ориентированного программирования
- Software Engineering как процесс
- Язык UML
- Принципы SOLID
- Метрики качества кода
- Design Patterns (категории, примеры использования)
- Singletone
- Facade
- Interface
5. Модули и пакеты
- Разработка модулей (определение и запуск)
- Система импорта
- Разработка повторно используемых пакетов
- Менеджер пакетов pip и виртуальные среды virtualenv
- Setup.py
- Написание документации к пакету, модулю
- Создание приложений на основе пакетов
6. Работа с файлами
- Работа с системой контроля версий Git
- Форматирования строк
- Context-managers
- Работа с файловой системой (os, os.path, shutil)
- Сериализация с помощью pickle
- Управление порядком сериализации/десериализации объектов Python
- Сериализация данных в json
- Сериализация данных в xml
7. Встроенные пакеты Python.
- Работа с datetime и calendar
- Работа с collections (очереди, именуемые кортежи, вложенные словари)
- Работа с heapq, array, enum
- Работа с числовыми данными (numbers, math, decimal, random)
- Работа с contextlib
- Работа с functools
- Logging
- Unittest
8. Networking
- Sockets (основы работы, примеры серверов)
- Socket server
- Socket Client
9. Многопоточность в Python
- Global Interpreter Loc (GIL)
- Создание потоков в Python
- Контроль доступа к ресурсам
- Синхронизация потоков
- Создание потоков с помощью пакета concurent
- Пул потоков
10. Процессы в Python
- Пакет multiprocessing
- Interprocess communication
- Очереди задач
- Создание процессов с помощью пакета concurent
- Пул процессов
- Отсрочка задач с помощью пакета sched
11. Асинхронное программирование
- Asyncio
- Пакет Twisted
- Асинхронный фреймворк Aiohttp
12. SQL
- Основы реляционных баз данных
- ER-диаграммы
- Стандарт PEP249
- Работа с СУБД SQLite, PostgreSQL
- Основы языка SQL (SELECT, LIKE, ORDER BY, LIMIT)
- INSERT
- UPDATE
- DELETE
- JOIN (INNER, LEFT, OUTER)
- GROUP BY
- Функции SQL (mean, min, max, avg, count)
- Subqueries
13. Object Relational Mapping
- Основы работы с SQLAlchemy
- Механизм сессий в SQLAlchemy
- Создание базы данных с помощью моделей SQLAlchemy
- Миграции баз данных с помощью Alembic
14. NoSQL-базы данных
- CAP теорема
- Типы NoSQL баз данных
- Работа с Redis
- Работа с Memcached
- Брокер сообщений RabbitMQ
- Основы работы с Celery
15. Веб-разработка
- Классификация web frameworks
- HTTP
- HTML, парсинг HTML-файлов
- XML
- Сбор данных с помощью фреймворка Scrapy
- Язык шаблонов Jinja2
- Основы API
- Стандарты API (REST, XML-RPC, Swagger, JSON API)
- Архитектурный подход API First
- Основы работы с Flask
Минимальные требования:
- Наличие собственного ноутбука для занятий в аудиториях
- Базовые знания языка Python
Лекторы:
* Примечание: указанные скидки не суммируются с другими действующими акциями и специальными предложениями. Скидка применяется только к новым заявкам и при условии полной оплаты. Если у Вас возникли вопросы, обращайтесь за консультацией к нашим менеджерам!