Курс 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
Лектори:
Денис Замятін (Експерт в області розробки ПО)
* Примітка: зазначені знижки не сумуються з іншими діючими акціями та спеціальними пропозиціями. Знижка застосовується тільки до нових заявок та при умові повної оплати курсу. Якщо у Вас виникли питання, звертайтеся за консультацією до наших менеджерів!