Описание курса:

Курс предназначен для тех, кто уже владеет основами разработки на Pythonи желает освоить продвинутые умения и навыки программирования на Python. Курс также будет полезен уже квалифицированным пользователям. Программа построена по принципу 20% лекционного материала, 80% лабораторные работы.

После изучения курса Вы сможете:

  • Разрабатывать программы на языке Python

Программа курса:

  1. Процедурный подход
  • Запуск программ на Python.
  • Семантика языка.
  • Оформление кода, PEP8.
  • Типы данных.
  • Структуры данных (основы).
  • Встроенные контейнеры (string, list, tuple, set, dict).
  • Операторы контроля исполнения (разветвления и циклов).
  • Основы работы с GIT.
  1. Функциональный подход
  • Основы работы с Comprehension, Generators, Iterators.
  • Функции в Python (built-in, user-defined, lambda, recursive).
  • Composition, Closure, Decorators.
  1. Объектно-ориентированный подход
  • Объявление класса и создание экземпляра.
  • Принципы ООП (подражание, инкапсуляция, полиморфизм) в Python.
  • Область видимости (Namespaces, Scope, правило LEGB).
  • Method Resolution Order (MRO).
  • Обработка ошибок (exception).
  1. Модули и пакеты
  • Разработка модулей (определение и запуск).
  • Система импорта.
  • Разработка повторно используемых пакетов.
  • Менеджер пакетов pip.
  • Виртуальные среды virtualenv.
  1. Типы данных, математические модули
  • Работа с datetime и calendar.
  • Работа с collections (очереди, именуемые кортежи, упорядоченные словари).
  • Работа с heapq, array, enum.
  • Работа с числовыми данными (numbers, math, decimal, random).
  1. Ввод / Вывод
  • Форматирования строк.
  • Context-managers.
  • Работа с файлами (открытие, чтение, запись).
  • Работа с файловой системой.
  • Основы сериализации и десериализации данных.
  • Работа с файлами csv, json, xml.
  1. Управление поведением экземпляра класса
  • Магические методы.
  • Операции сравнения и хеширования.
  • Переопределения арифметических операций.
  • Создание копии экземпляра класса.
  • Управление порядком сериализации/десериализации данных.
  • Functors, Currying.
  1. Управление созданием экземпляров класса
  • Meta-классы.
  • Abstract Bases классы.
  • Использованием декораторов с классами.
  • Properties, статические методы.
  1. Приемы объектно-ориентированного программирования
  • Software Engineering как процесс.
  • Язык UML.
  • Принципы SOLID.
  • Design Patterns (категории, примеры использования).
  • Software Code Metrics.
  • Software Quality Attributes.
  1. User-defined Containers
  • Контейнеры, созданные путем наследования.
  • Контейнеры, созданные путем агрегации.
  • Методы доступа к элементам контейнера.
  • Iterators, Generators.
  • Co-programs.
  1. Параллельное программирование (Concurrent Execution)
  • Global Interpreter Loc (GIL).
  • Threads (создание, синхронизация).
  • Processes (передача данных, пулы процессов).
  • Очереди задач.
  • Основы работы с Celery.
  1. Networking and Interprocess Communication
  • Sockets (основы работы, примеры серверов).
  • Работа с удаленными ресурсами по протоколу HTTP.
  • Парсинг HTML-файлов.
  • Работа с XML.
  1. Реляционные базы данных
  • Основы реляционных баз данных.
  • ER-диаграммы.
  • Стандарт PEP249.
  • Работа с СУБД SQLite, PostgreSQL.
  • Object Relational Mapping.
  1. NoSQL Базы данных
  • CAP теорема.
  • Типы NoSQL баз данных.
  • Работа с Redis, Memcached, MongoDB, DynamoDB.
  1. Web-разработка
  • Классификация web frameworks.
  • Python web frameworks.
  • Основы работы с Flask.
  • Язык шаблонов Jinja2.
  1. Web Async разработка
  • Асинхронные фреймворки.
  • Основы работы с Sanic.
  • Основы работы с asyncio.
  1. Remote API
  • Основы API.
  • Стандарты API (REST, XML-RPC, Swagger, JSON API).
  • Архитектурный подход API First.
  • Разработка API с использованием web frameworks.
  1. Development Tools
  • PyDoc, генерация документации из исходных кодов, пакет Sphinx.
  • Unit Test.
  • Doc Test.
  • Unit tests с использованием mock-objects.
  • Debugging, profiling.
  • Logging.

Минимальные требования:

  • Наличие собственного ноутбука для занятий в аудиториях
  • Базовые знания языка Python

* Указанные скидки не суммируются с другими действующими акциями и специальными предложениями. Если у Вас возникли вопросы, обращайтесь за консультацией к нашим менеджерам!