Курс Python Pro
Изучите основы языка и начните разрабатывать сложные программы на Python
Простой в изучении, мощный и удобный в использовании — все это о Python. На этом языке хорошо пишется практически все, он отлично чувствует себя в вебе и почти незаменим в современных отраслях IT.
Помимо десктопного ПО и сайтов, его используют в программировании контроллеров, смарт технологий и Data Science, где он по праву считается лучшим.
После прохождения курса Python Pro вы научитесь добиваться желаемого результата при помощи чистого и правильного кода, а после — будете готовы к дальнейшему обучению более продвинутых вещей и созданию своих проектов. После окончания курса вы будете понимать, как устроено программирование, сможете создавать грамотную структуру программы и писать правильный рабочий код без ошибок, который будет понятным даже для стороннего разработчика.
Вы создадите небольшие инструментальные программы на Python, а также сможете использовать в работе приемы объектно-ориентированного программирования и разбираться в продвинутых аспектах языка.
Программное обеспечение, необходимое для обучения на курсе:
1. Python. Для освоения языка нам понадобится интерпретатор Python.
2. PyCharm или VSCode. Это так называемая интегрированная среда разработки, предназначенная для полного цикла написания и тестирования программ на определенном языке.
- Теории без практики
- Устаревших механик работы
- Пересказа чужих лекций и книг
- Вопросов без ответа
Это будет увлекательно и эффективно!
- Программирование как творческий процесс
- Архитектура компьютера
- В чем суть программирования?
- Процесс «общения» с Python
- Интерпретатор и компилятор
- Процесс написания программ
- Что же такое программа?
- Принципы программирования
- Парадигмы программирования
- Упражнения
- Понятие «значение» и «тип»
- Переменные
- Имена переменных и ключевые (зарезервированные) слова
- Операторы
- Операторы и операнды
- Выражения
- Порядок операций
- Строковые операции
- Ввод данных
- Комментарии
- Упражнения
- Логические выражения
- Логические операторы
- Условное выполнение
- Последовательность условий
- Вложенные условия
- Перехват исключений с использованием try и except
- Упражнения
- Обновления переменной
- Инструкция while
- Бесконечные циклы
- «Бесконечные циклы» и break
- Завершение итерации с помощью continue
- Списки
- Определение циклов с помощью for
- Обход списков с помощью цикла for
- Упражнения
- Вызов функции
- Встроенные функции
- Функции приведения типов
- Случайные числа
- Математические функции
- Добавление новых функций
- Определение и использование
- Параметры функции
- Модульные тесты
- Имена файлов и пути
- Создание собственных модулей и пакетов
- Инициализация пакета
- Обработка аргументов командной строки
- Определение параметров среды выполнения
- Создание виртуальных сред
- Автоматическая инициализация пакетов
- Упражнения
- Строка — это последовательность
- Получение длины строки с использованием len
- Обход через строку с помощью цикла
- Срез строки
- Строки являются неизменными
- Оператор in
- Сравнение строк
- Строчные методы
- Разбор (parsing) строк
- Оператор форматирования
- Регулярные выражения
- Упражнения
- Введение
- Открытие файлов
- Текстовый файл и строки
- Чтение файлов
- Поиск через файл
- Оператор with
- Запись файлов
- Упражнения
- Что такое коллекция в 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
- Разработка модулей (определение и запуск)
- Система импорта
- Разработка повторно используемых пакетов
- Менеджер пакетов pip и виртуальные среды virtualenv
- Setup.py
- Написание документации к пакету, модулю
- Создание приложений на основе пакетов
- Работа с системой контроля версий Git
- Форматирования строк
- Context-managers
- Работа с файловой системой (os, os.path, shutil)
- Сериализация с помощью pickle
- Управление порядком сериализации/десериализации объектов Python
- Сериализация данных в json
- Сериализация данных в xml
- Работа с datetime и calendar
- Работа с collections (очереди, именуемые кортежи, вложенные словари)
- Работа с heapq, array, enum
- Работа с числовыми данными (numbers, math, decimal, random)
- Работа с contextlib
- Работа с functools
- Logging
- Unittest
- Sockets (основы работы, примеры серверов)
- Socket server
- Socket Client
- Global Interpreter Loc (GIL)
- Создание потоков в Python
- Контроль доступа к ресурсам
- Синхронизация потоков
- Создание потоков с помощью пакета concurent
- Пул потоков
- Пакет multiprocessing
- Interprocess communication
- Очереди задач
- Создание процессов с помощью пакета concurent
- Пул процессов
- Отсрочка задач с помощью пакета sched
- Asyncio
- Пакет Twisted
- Асинхронный фреймворк Aiohttp
- Основы реляционных баз данных
- 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
- Основы работы с SQLAlchemy
- Механизм сессий в SQLAlchemy
- Создание базы данных с помощью моделей SQLAlchemy
- Миграции баз данных с помощью Alembic
- CAP теорема
- Типы NoSQL баз данных
- Работа с Redis
- Работа с Memcached
- Брокер сообщений RabbitMQ
- Основы работы с Celery
- Классификация web frameworks
- HTTP
- HTML, парсинг HTML-файлов
- XML
- Сбор данных с помощью фреймворка Scrapy
- Язык шаблонов Jinja2
- Основы API
- Стандарты API (REST, XML-RPC, Swagger, JSON API)
- Архитектурный подход API First
- Основы работы с Flask
- Структура резюме
- Часто задаваемые вопросы
- Как вести себя на собеседовании
- Основные ошибки на собеседовании
- Бонусное занятие по английскому языку
- Урок поиска работы

Python и С/С++ Developer
Профессиональный коммерческий опыт 3 года. Принимал участие в разработке социального робота Triol. Занимаюсь разработкой программного обеспечения с использованием искусственного интеллекта. Руковожу проектом TEASIER TRIOL.
Техническая часть: С/С++ 11/14, Python, QT, QML, Boost, OpenCV, DLib, cmake/qmake, Linux, CNN, DNN, GAN.

Более 5 лет опыта. Имеет сертификации Python/Django. Работает с такими языками и технологиями, как Python 2.x, 3.x, Django, Odoo, DRF, MySQL, PostgreSQL и Git. Имеет опыт в преподавании языка Python и знает, как лучше объяснить материал уроков.

12+ лет в разработке программного обеспечения и преподавании
Практикующий разработчик, в багаже которого множество успешных проектов от топовых компаний. Денис разработал и реализовал масштабируемые алгоритмы машинного обучения и анализа данных (ASP.NET, Oracle) для Верховного суда Украины.
Поддерживал программную архитектуру информационно-аналитической системы, разрабатывал масштабируемые алгоритмы для интеллектуального анализа данных (Python / Django, MySQL).
Внимательный преподаватель с творческим подходом к обучению, который поделится ценным наработанным опытом со студентами, рассмотрит на практике все принципы программирования на Python, а также расскажет о современных тенденциях разработки в целом. На занятиях Денис уделяет максимум времени на решение практических задач, а также подготавливает студентов к разработке и реализации собственного проекта.
- Обучение в формате просмотра стрима или записи занятий
- Личный кабинет с доступом к материалам курса
- Помощь ментора курса
- Актуальную программу обучения

