Расширенный курс Python

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

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

После курса вы сможете:

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

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

Функции

  • Типы данных
  • Встроенные контейнеры
  • Операторы контроля выполнения
  • Обработка ошибок (try ... except ...)
  • Операторы циклов
  • Comprehensions (list, dict, set)
  • Создание функции и процедур
  • Аргументы функций
  • Рекурсивные функции
  • Functors, Currying
  • Декораторы
  • Lambda-функции
  • PEP8

Объектно-ориентированный подход

  • Объявление класса и создание экземпляра
  • Принципы ООП (подражание, инкапсуляция, полиморфизм) в Python
  • Область видимости (Namespaces, Scope, правило LEGB)
  • Method Resolution Order (MRO)
  • Магические методы
  • Определение математических операций для объектов Python
  • Определение операций сравнения для объектов Python
  • Определение операций хеширования для объектов Python
  • Создание копии экземпляра класса, deep copy, shallow copy
  • Инкапсуляция (Setters and getters)

Управление созданием экземпляров класса

  • Doc strings
  • Meta-классы
  • Abstract Bases-классы
  • __new__
  • __init__
  • Context-managers
  • Использованием декораторов с классами
  • Контейнеры, созданные путем наследования (UserList, UserDict, UserString)
  • Контейнеры, созданные путем агрегации
  • Методы доступа к элементам контейнера
  • Iterators, Generators

Приемы объектно-ориентированного программирования

  • Software Engineering как процесс
  • Язык UML
  • Принципы SOLID
  • Метрики качества кода
  • Design Patterns (категории, примеры использования)
  • Singletone
  • Facade
  • Interface
  • Proxy
  • Abstract Factory
  • Factory Method
  • Command
  • Observer

Модули и пакеты

  • Разработка модулей (определение и запуск)
  • Система импорта
  • Разработка повторно используемых пакетов
  • Менеджер пакетов pip и виртуальные среды virtualenv
  • Setup.py
  • Написание документации к пакету, модулю
  • Создание приложений на основе пакетов

Работа с файлами

  • Работа с системой контроля версий Git
  • Форматирования строк
  • Context-managers
  • Работа с файловой системой (os, os.path, shutil)
  • Сериализация с помощью pickle
  • Управление порядком сериализации/десериализации объектов Python
  • Сериализация данных в json
  • Сериализация данных в xml

Встроенные пакеты Python.

  • Работа с datetime и calendar
  • Работа с collections (очереди, именуемые кортежи, вложенные словари)
  • Работа с heapq, array, enum
  • Работа с числовыми данными (numbers, math, decimal, random)
  • Работа с contextlib
  • Работа с functools
  • Logging
  • Unittest

Networking

  • Sockets (основы работы, примеры серверов)
  • Socket server
  • Socket Client
  • HTTP
  • HTML, парсинг HTML-файлов
  • XML

Многопоточность в Python

  • Global Interpreter Loc (GIL)
  • Создание потоков в Python
  • Контроль доступа к ресурсам
  • Синхронизация потоков
  • Создание потоков с помощью пакета concurent
  • Пул потоков

Процессы в Python

  • Пакет multiprocessing
  • Interprocess communication
  • Очереди задач
  • Создание процессов с помощью пакета concurent
  • Пул процессов
  • Отсрочка задач с помощью пакета sched

Асинхронное программирование

  • Asyncio
  • Пакет Twisted
  • Асинхронный фреймворк Aiohttp
  • Сбор данных с помощью фреймворка Scrapy

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

Object Relational Mapping

  • Основы работы с SQLAlchemy
  • Механизм сессий в SQLAlchemy
  • Создание базы данных с помощью моделей SQLAlchemy
  • Миграции баз данных с помощью Alembic

NoSQL-базы данных

  • CAP теорема
  • Типы NoSQL баз данных
  • Работа с Redis
  • Работа с Memcached
  • Работа с MongoDB
  • Брокер сообщений RabbitMQ
  • Основы работы с Celery

Web-разработка

  • Классификация web frameworks
  • Язык шаблонов Jinja2
  • Основы API
  • Стандарты API (REST, XML-RPC, Swagger, JSON API)
  • Архитектурный подход API First
  • Основы работы с Flask

Предварительные требования

  • Базовые знания языка Python в рамках курса «Базовый курс Python»

Информация о курсе

дистанционно
11-15 января; 22-26 марта

2172 бел.р. с НДС 20%

Вендор: Python, Java, JS и др.
Код курса: Python-Adv
Продолжительность: 5 дней / 40 ак. часов
Направление: Python
Экзамен :

n/a

Все расписание
Общий курс английского языка. Уровень Intermediate
GE-Int
очно, Минск, набор группы (Пн, ср: 19:50-21:10; 9:30-10:50; Вт, чт: 18:30-19:50)
Общий курс английского языка. Уровень Upper Intermediate
GE-UpInt
очно, Минск, набор группы (Пн, ср: 18:30-19:50; Вт, чт: 9:30-10:50)
Продвинутый курс JavaScript (вечерний курс)
JS-Adv
дистанционно, c 3 декабря
Все предложения
Записаться на курс

Название курса и комментарии*

Имя*

Фамилия*

Отчество*

Компания

Телефон*

Email*

Настоящим, в соответствии с ч.2.ст.18 Закона Республики Беларусь от 10.11.2008 N 455-З(ред. от 11.05.2016) "Об информации, информатизации и защите информации", отправляя данную форму, вы подтверждаете свое согласие на сбор, обработку и хранение ООО «СофтЛайнБел» Ваших персональных данных. ООО «СофтЛайнБел» гарантирует конфиденциальность получаемой от Вас информации. Сбор, обработка и хранение персональных данных осуществляется в целях эффективного оказания услуг, исполнения договоров и пр.