spinner-it

Курс Python (поглиблений)

Старт навчання
Старт курсу запитуйте в адміністрації
54 год. по 2-3 рази на тиждень

Опис курсу

Цей курс призначений для програмістів, які хочуть освоїти техніку програмування на мові 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

Лектори:

Денис Замятін (Експерт в області розробки ПО)

* Примітка: зазначені знижки не сумуються з іншими діючими акціями та спеціальними пропозиціями. Знижка застосовується тільки до нових заявок та при умові повної оплати курсу. Якщо у Вас виникли питання, звертайтеся за консультацією до наших менеджерів!

У зв'язку з карантином всі наші курси читаються у online-форматі.