Язык программирования Python
Курс предназначен как для начинающих программистов, так и для уже состоявшихся специалистов, желающих освоить язык программирования Python. Минимальный уровень подготовки слушателя может быть как практически нулевым, так и весьма высоким. Курс начинается с основ языка и шаг за шагом проводит слушателя по всем ступеням и особенностям Python.
Приобретаемые навыки
- разрабатывать программы на языке программирования Python;
- создавать программы на python как в процедурном, так и в объектно-ориентированном стиле;
- разрабатывать системные скрипты;
- использовать в своих скриптах стандартные и сторонние библиотеки;
- использовать для установки сторонних библиотек виртуальное окружение virtualenv;
- работать с файлами, базой данных MySQL и SQLite;
- создавать веб-сайты на python.
Курс для системных администраторов и DevOps-специалистов. Позволяет получить достаточный объем навыков программирования и использования библиотечных средств языка Python для автоматизации процессов администрирования, развертывания и мониторинга вычислительных систем.
Модуль 1. Введение в программирование на языке Python
- базовые типы данных языка и операции над данными;
- встроенные контейнеры: списки, кортежи, словари, множества;
- операторы ветвления и циклов;
- обработка исключений;
- описание функций, области видимости переменных и передача параметров.
- функция как объект первого класса;
- функции с произвольным количеством параметров, параметры по умолчанию;
- лямбда-функции и замыкания;
- создание декораторов.
- модули и пакеты;
- создание виртуального окружения virtualenv;
- установка пакетов с помощью менеджера пакетов pip;
- генерирование документации и тестирование;
- средства статического анализа программного кода;
- системы контроля версий.
- объявление класса и создание экземпляров;
- свойства и методы экземпляра класса, инкапсуляция;
- наследование классов и переопределение методов;
- “магические” методы __init__(), __repr__(), __str__() и др.
- чтение и запись данных в файл;
- встроенные средства сериализации: pickle, json;
- работа с данными в форматах csv и xml;
- функции работы с объектами файловой системы;
- средства логирования.
- представление строковых данных в различных кодировках;
- встроенные методы для работы со строками;
- регулярные выражения;
- встроенные средства сравнения файлов;
- обработка данных типа дата/время, часовые пояса.
- отправка электронной почты;
- запрос данных по протоколу HTTP;
- использование telnet;
- использование ssh, библиотеки paramiko, netmiko.
- интерфейс для работы с реляционными СУБД;
- взаимодействие с NoSQL СУБД: MongoDB, Redis, ElasticSearch.
- использование многопоточности для распараллеливания запросов;
- использование процессов для распараллеливания продолжительных операций;
- асинхронное программирование;
- выполнение отложенных задач с использованием celery.
- консольный ввод/вывод;
- обработка параметров командной строки;
- запуск пользовательских процессов;
- обзор средств построения графических и веб-интерфейсов.
- базовые типы данных языка и операции над данными;
- встроенные контейнеры: списки, кортежи, словари, множества;
- операторы ветвления и циклов;
- обработка исключений;
- описание функций, области видимости переменных и передача параметров.
- функция как объект первого класса;
- функции с произвольным количеством параметров, параметры по умолчанию;
- лямбда-функции и замыкания;
- создание декораторов.
- модули и пакеты;
- создание виртуального окружения virtualenv;
- установка пакетов с помощью менеджера пакетов pip;
- генерирование документации и тестирование;
- средства статического анализа программного кода;
- системы контроля версий.
- объявление класса и создание экземпляров;
- свойства и методы экземпляра класса, инкапсуляция;
- наследование классов и переопределение методов;
- “магические” методы __init__(), __repr__(), __str__() и др.
- чтение и запись данных в файл;
- встроенные средства сериализации: pickle, json;
- работа с данными в форматах csv и xml;
- поиск данных в xml-документах при помощи XPath.
- представление строковых данных в различных кодировках;
- встроенные методы для работы со строками;
- регулярные выражения.
- основы протокола HTTP;
- введение в языки разметки и стилей html|/css;
- построение логики приложения на примере фреймворка Flask;
- понятие о cookie и сессиях.
- интерфейс для работы с реляционными СУБД;
- взаимодействие с NoSQL СУБД: MongoDB, Redis, ElasticSearch.
- использование многопоточности для распараллеливания запросов;
- использование процессов для распараллеливания продолжительных операций;
- асинхронное программирование;
- библиотека unittest, подмена объектов с помощью unittest.mock;
- тестирования веб-приложения с использованием selenium;
- нагрузочное тестирование на примере locust.
- объекты, типы и значения, управление памятью и сборка мусора;
- особенности реализации встроенных контейнеров;
- операторы ветвления и циклов;
- порядок обработки исключений;
- описание функций, области видимости переменных и передача параметров.
- функция как объект первого класса;
- функции с произвольным количеством параметров, параметры по умолчанию;
- лямбда-функции и замыкания;
- карринг и композиция;
- объявление декораторов, декораторы с параметрами.
- объявление класса и создание экземпляров;
- множественное наследование и MRO, миксины;
- порядок вызова super();
- управление доступом к атрибутам класса.
- переопределение операторов сравнения и функции хеширования;
- переопределение арифметических операторов;
- управление сериализацией и копированием;
- протокол контекст-менеджеров;
- циклические ссылки, метод __del__();
- метод __call__(), определение декораторов при помощи классов.
- реализация контейнера при помощи наследования;
- реализация контейнера при помощи агрегации;
- доступ к элементам контейнера по индексу;
- протокол итераторов.
- реализация итераторов на генераторах;
- модуль itertools и ленивые вычисления;
- сопрограммы (coroutine).
- декораторы классов;
- протокол дескрипторов;
- метаклассы;
- переопределение методов __init__(), __new__(), __call__() в метаклассах.
- принципы SOLID;
- паттерны Абстрактная фабрика, Синглтон и NullObject;
- паттерны Стратегия и Команда;
- паттерн Наблюдатель.
- использование многопоточности для распараллеливания запросов;
- использование процессов для распараллеливания продолжительных операций;
- реализация многопоточного и асинхронного сервера;
- операторы async/await.
- способы импортирования модулей;
- абсолютные и относительные импорты;
- порядок импорта пакетов.
- базовые типы данных языка и операции над данными;
- встроенные контейнеры: списки, кортежи, словари, множества;
- операторы ветвления и циклов;
- обработка исключений;
- описание функций, области видимости переменных и передача параметров.
- функция как объект первого класса;
- функции с произвольным количеством параметров, параметры по умолчанию;
- лямбда-функции и замыкания;
- создание декораторов.
- модули и пакеты;
- создание виртуального окружения virtualenv;
- установка пакетов с помощью менеджера пакетов pip;
- генерирование документации и тестирование;
- средства статического анализа программного кода;
- системы контроля версий.
- объявление класса и создание экземпляров;
- свойства и методы экземпляра класса, инкапсуляция;
- наследование классов и переопределение методов;
- “магические” методы __init__(), __repr__(), __str__() и др.
- основы протокола HTTP, интерфейс WSGI;
- введение в языки разметки и стилей html|/css;
- построение логики приложения на примере фреймворка Flask;
- заголовки HTTP, понятие о cookie и сессиях.
- интерфейс для работы с реляционными СУБД;
- использование ORM-систем на примере SQLAlchemy;
- взаимодействие с NoSQL СУБД: MongoDB, Redis, ElasticSearch.
- шаблонизатор Jinja2;
- создание и обработка веб-форм;
- использование cookies;
- использование сессий.
- рейтинг уязвимостей OWASP;
- атаки типа инъекций программного кода, пример применения и защита;
- безопасная идентификация и аутентификация, пример применения атаки и защита;
- CSRF-атаки, пример применения и защита;
- XSS-атаки, пример применения и защита.
- библиотека unittest, подмена объектов с помощью unittest.mock;
- тестирования веб-приложения с использованием selenium;
- сканеры уязвимостей и fuzzing;
- нагрузочное тестирование на примере locust.
- работа с данными в форматах json и xml;
- реализация REST-интерфейса;
- выполнение отложенных задач с использованием celery;
- протокол OAuth.
- базовые типы данных языка и операции над данными;
- встроенные контейнеры: списки, кортежи, словари, множества;
- операторы ветвления и циклов;
- обработка исключений;
- описание функций, области видимости переменных и передача параметров;
- модули и пакеты.
- функция как объект первого класса;
- функции с произвольным количеством параметров, параметры по умолчанию;
- лямбда-функции и замыкания;
- создание декораторов.
- объявление класса и создание экземпляров;
- свойства и методы экземпляра класса, инкапсуляция;
- наследование классов и переопределение методов;
- “магические” методы __init__(), __repr__(), __str__() и др.
- реализация паука на основе пакета scrapy;
- парсинг статических веб-страниц;
- парсинг динамических веб-страниц при помощи selenium;
- идентификация html-блоков при помощи XPath;
- извлечение строковых данных при помощи регулярных выражений.
- NoSQL СУБД;
- масштабируемые системы типа ключ-значения на примере Redis;
- система атрибутивного и полнотекстового поиска Elasticsearch.
- определение кодировки текста;
- получение базовой формы слова, стемминг;
- расстояние Левенштейна;
- пакет nltk.
- пакет numpy;
- пакет pandas.
- распараллеливание запросов при помощи потоков;
- параллельные вычисления на основе процессов;
- асинхронные запросы к сети.
- протокол AMQP;
- архитектура celery-кластера;
- распределение задач между celery-воркерами.
- основы использования Hadoop;
- распределенная файловая система HDFS;
- реализация MapReduce-приложений.
- Желателен опыт программирования на любом из языков высокого уровня.
Запись на курс
Код курса | EA-Python |
---|---|
Длительность | 5д (40ч) |
Код экзамена | |
Стоимость без НДС | 9 300 000 UZS |