После окончания базового курса Python мы рекомендуем нашим слушателям продолжить изучения этого популярного языка программирования на продвинутом курсе Python . Преподаватели академии ITSTAR помогут вам освоить продвинуты навыки программирования на Python и выполнять с его помощью действительно сложные задачи.
Кроме того курс будет полезен и уже изучавшим ранее Python специалистам, так как позволит структурировать, обновить и расширить имеющиеся знания. Большая часть курса отводится на практические занятия, чтобы наши выпускники были отлично подготовлены для реальной работы в IT-компаниях и могли претендовать на должность Python-разработчика.
После окончания продвинутого курса Python вы сможете:
- Работать с различными типами данных на языке Python;
- Разрабатывать полноценные программы;
- Создавать функции и процедуры;
- Понимать принципы объектно-ориентированного программирования;
- Управлять создание экземпляров класса;
- Проверять на ошибки собственный и чужой код;
- Работать с модулями и пакетами в Python;
- Пользоваться системой контроля версий;
- Создавать и управлять процессами в Python;
- Понимать принципы асинхронного программирования.
Формат обучения: онлайн-уроки с преподавателем индивидуально или в мини-группе
Пробный урок бесплатно
Быстрое введение в процедурное программирование
Создание и запуск программ на языке Python
Правила оформления кода PEP8
Встроенные контейнеры: строки, списки, кортежи, словари, множества
Логические операции, циклы
Функции в Python
Строки документации и док-тесты
Рекурсивные функции
Порядок поиска имен, правило LEGB
Элементы функционального программирования: map, filter, reduce, карринг и композиция
Использование файлов
Открытие, чтение и запись данных в файл
Файлы с последовательным и произвольным доступом
Сериализация средствами стандартной библиотеки: pickle, json
Временные файлы и файлы в формате csv
Объектно-ориентированное программирование
Определение класса и создание экземпляра
Поля и методы класса, magic-методы, конструкторы
Множественное наследование и MRO
Инкапсуляция и полиморфизм
Управление поведением экземпляров класса
Определение операций сравнения и хеширования
Переопределение арифметических операций
Изменение порядка сериализации/десериализации
Функторы и декораторы с использованием классов
Управление созданием классов
Управление доступом к атрибутам класса
Метод-конструктор __new__()
Метаклассы, абстрактные базовые классы
Использование свойств для управления доступом к атрибутам
Пользовательские контейнеры
Определение пользовательского контейнера путем наследования и путем агрегации
Определение методов доступа к элементам контейнера
Протоколы итераторов
Сопрограммы
Приемы объектно-ориентированного программирования
Введение в объектно-ориентированный анализ Язык UML
Принципы SOLID
Паттерны объектно-ориентированного проектирования
Модули и пакеты
Определение и способы запуска модуля
Связность и сцепленность
Определение и импортирование пакета
Менеджер пакетов pip и виртуальные среды virtualenv
Параллельное программирование
Создание и синхронизация потоков
Очереди задач
Ограничение GIL
Использование процессов, пуллы процессов
Программирование сетевого взаимодействия
Запрос удаленного ресурса по протоколу HTTP
Парсинг HTML-файлов
Многопоточный сервер на сокетах
Асинхронный сервер на сокетах
Средства стандартной библиотеки
Представление числовых данных и точность арифметических операций
Даты и время
Коллекции в стандартной библиотеке: очередь, именованный кортеж, упорядоченный словарь
Модульные тесты и использование мок-объектов
Реляционные базы данных
Основы реляционных баз данных
Стандарт PEP249
Пример работы с СУБД Sqlite и СУБД MySQL
ORM системы на примере SQLAlchemy
NoSQL базы данных
Теорема CAP
Основные типы NoSQL баз данных
Взаимодействие с СУБД Redis и СУБД MongoDB
Запись и чтение данных в формате XML DOM, StAX и SAX-парсеры
Разработка графических интерфейсов пользователя
Пакет Tkinter
Окна и элементы управления
События и таймеры
Диалоговые окна
Разработка web-приложений
Введение в web-фреймворк Flask
Язык шаблонов Jinja2
Обработка форм
Использование сессии
Разработка асинхронных web-приложений
Библиотека Twisted
Пример разработки web-приложения на Twisted
Тестирование приложения с использованием пакета selenium
Нагрузочное тестирование web-приложений
Разработка распределенных и высокопроизводительных приложений
Подключение модулей, написанных на языках C/C++
Библиотеки numpy, pandas
Распределенные приложения на основе MPI
Распределенный приложения на очередях сообщений Celery