spinner-it

Курс Python (продвинутый)

Старт обучения
Дату уточните у администрации
54 час. по 2-3 раза в неделю

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

Курс предназначен для тех, кто уже владеет основами разработки на 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

Лекторы:

1. Алексей Шиян (Python и С/С++ Developer)

2. Денис Замятин (Python и С/С++ Developer)

 

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