EngineerSpock

Полное руководство по Python 3: от новичка до специалиста

999 

Изучи Python 3 с нуля — один из самых популярных языков программирования в мире + Введение в SQL и PostgreSQL

Python стабильно входит в ТОП-10 наиболее популярных языков программирования. Это именно тот язык с которого стоит начинать изучать программирование. Благодаря своей простоте и элегантности, Python позволяет новичкам не вникать во множество сложных программных понятий и конструкций, присущих другим языкам.  Короче говоря, если вы только начинаете своё путешествие в мир программирования, Python станет отличным выбором в качестве вашего первого языка программирования.

Популярность Python объясняется не только тем, что его легко изучать, но и реальными преимуществами языка в смысле его профессионального применения для решения сложных проблем автоматизации. Python — кросс-платформенный язык и работает под Windows, Linux, Mac OS. Множество архитектурных конструкций в этом языке строятся без нагромождения абстракций, как часто происходит в других ЯП (языках программирования).  Огромное количество уже готовых библиотек даёт возможность не изобретать велосипеды на каждом шагу.

Этот курс покрывает все основные возможности Python и даёт рекомендации по написанию грамотного, «чистого» кода. Данный курс покрывает следующие темы:

  • Введение в Python: в чём преимущества Python, Python 2 vs Python 3, технические особенности, инсталляция дистрибутива
  • Основы Python: обзор типов данных, числа и простая математика, переменные, bool и None, основы работы со строками,
    форматирование строк, операторы сравнения, работа с файлами
  • Коллекции в Python: list, dict, tuple, set, for-цикл, while-цикл, генераторы, логика с условиями
  • Функции и модули: помощь по API, основы написания функций, лямбда-выражения,  вложенные функции и область видимости переменных, декораторы
  • Обработка ошибок: ошибки и исключения, выброс исключений, их обработка, очистка ресурсов, юнит-тестирование
  • Классы: наследование и полиморфизм, множественное наследование, миксины, магические методы, абстрактные классы, проблема инкапсуляции
  • Модули и пакеты:  PyPi, pip, создание модулей и пакетов, импорт модулей, типов и функций, __name__ и __main__
  • Дополнительные материалы: отладка, реализуем stack, namedtuple, декораторы, datetime, enum, интроспекция, управление памятью
  • Встроенные модули: json, itertools, requests
  • Инфраструктура и новые фичи: линтеры, виртуальные окружения, data classes, type hints
  • PyCharm: установка, создание проекта, отладка, рефакторинг, quick fixes
  • Введение в SQL и PostgreSQL: запросы, подзапросы, виды отношений, соединения, подключение к БД из Python и т.д.
  • Множество домашних заданий с решениями!
  • Живой чат для студентов — более 1000 участников!

Зачисляйтесь на курс прямо сейчас и начинайте новую жизнь, программируя на Python!

Видео о курсе

Материалы курса

Введение в Python
  • Скачать исходный код
  • Присоединиться к чату в Telegram
  • Почему Python?
  • Python с технической точки зрения
  • Python 2 vs Python 3
  • Стандартная библиотека
  • Редакторы кода для Python
  • Инсталлируем дистрибутив Anaconda
  • Введение в Anaconda
  • Jupyter Notebook не запускается через Anaconda Navigator?
  • Базовые сведения о Python
Основы Python
  • Обзор основных типов данных
  • Числа и элементарная математика
  • Переменные
  • bool и None
  • Тип string
  • Функции string
  • Форматирование строк
  • Операторы сравнения
  • Операции над файлами
  • Строки и байты: str, bytes, bytearray
  • Основы Python
  • Элементарная арифметика
  • Объявление переменных
  • Работа со строками
  • Решение ДЗ 1-3
  • ДЗ: Основы
  • ДЗ: Основы - Решение
Коллекции, циклы и логика в Python
  • list - список
  • dict - словарь
  • OrderedDict vs dict
  • tuple - кортеж
  • namedtuple - именованные кортежи
  • Логика с условиями
  • set - множество
  • Цикл for
  • list comprehension
  • Цикл while, continue, break
  • Замечания к последующим ДЗ
  • Циклы. ДЗ-1-2
  • Циклы. ДЗ-1-2. Решение
  • Циклы. ДЗ-3 Division by 3 or 5
  • Циклы. ДЗ-4-Joined List
  • Циклы. ДЗ-5-Cards Sum
  • Циклы. ДЗ 3-5. Решение
  • Циклы. ДЗ 6. Определяем Flush
  • Циклы. ДЗ-6-Флеш. Решение
  • Циклы. ДЗ 7. Палиндром
  • Циклы. ДЗ 7 - Палиндром. Решение
  • Домашнее задание: угадай число
  • Решение ДЗ: пишем игру "угадай число"
  • ДЗ "Камень-ножницы-бумага"
  • Решение ДЗ "Камень-ножницы-бумага"
  • Коллекции и циклы
Функции и модули
  • Помощь по функциям
  • Встроенные функции
  • Основы функций
  • Лямбды
  • Вложенные функции и область видимости переменных
  • Декораторы
  • Декоратор @wraps
  • Опросник по функциям
  • Примечание к последующим ДЗ
  • ДЗ: Кто выстрелил быстрее?
  • ДЗ: Ханойские башни
  • ДЗ: Без дуплетов!
  • ДЗ: Мини-судоку
  • Решения ДЗ по функциям
  • Домашнее задание: игра в палочки
  • Решение ДЗ: пишем игру в палочки
Ошибки и исключения. Автоматизированные тесты
  • Основы обработки ошибок
  • Выброс исключений. Кастомные типы исключений.
  • Основы юнит-тестирования
  • Работа с ошибками
ООП в Python
  • Основы классов
  • Атрибуты и методы
  • Константы. Защищённые и приватные атрибуты. Свойства.
  • Статические методы - @staticmethod, @classmethod
  • Наследование и полиморфизм
  • Множественное наследование
  • Миксины
  • Абстрактный класс и модуль ABC
  • Магические методы
  • Примечание к последующим ДЗ
  • ДЗ-1: ФИО
  • ДЗ-2: Класс калькулятора
  • ДЗ-3: Парсинг сотрудника
  • ДЗ-4 "Пицца"
  • ДЗ-5: Окружность
  • ДЗ-6: Смузи
  • ДЗ: 1-3 Решения
  • ДЗ: 4-6. Решения
  • Домашнее задание: крестики-нолики
  • Решение ДЗ: реализуем крестики-нолики
  • ООП в Python
Модули и пакеты
  • PyPi и Pip
  • Модули и пакеты
  • Ещё раз о __name__ и __main__
  • Модули и пакеты
Дополнительно
  • Отладка
  • Реализуем Stack
  • datetime - даты и время
  • Singleton Design Pattern: __new__ и __init__
  • Pickle - консервирование
  • repr and str, eq and ne, eval
  • Deep copy vs Shallow copy
  • Enum - перечисления
  • Работаем с JSON
  • Генераторы
  • Модуль itertools
  • Интроспекция
  • Модуль requests
  • Управление памятью
  • Advanced Topics
Движемся дальше
  • Введение в Линтеры
  • Установка "системного" Python
  • Виртуальное окружение
  • Установка PyCharm
  • Создаём проект в PyCharm
  • Refactoring, Quick Fixes, Debugging в PyCharm
  • Type Hints
  • Введение в dataclasses
Что нового в Python 3.8
  • Обзор нововведений
  • Устанавливаем Python 3.8 и создаём проект
  • Walrus-оператор
  • Навязывание позиционных аргументов
  • Улучшения в системе type hints
  • Перегрузка с @overload
  • Duck Typing и протоколы
  • Упрощённый вывод значений в интерполированных строках
Финальная практика
  • ДЗ-1: считаем гласные
  • ДЗ-2: определяем FULL HOUSE
  • ДЗ-3: уровни сладости
  • ДЗ-4: возрастает или убывает
  • ДЗ-5: Пагинация
  • ДЗ: 1-4 Решения
  • ДЗ-5: Решение
  • Домашнее задание: парсинг римских чисел
  • Решение ДЗ: парсим римские числа
  • ДЗ - Виселица
  • Решение ДЗ - Виселица
  • ДЗ - Верю-не-верю (истина или ложь)
  • Решение ДЗ: верю-не-верю
Допматериалы-1. Введение в многопоточное программирование
  • Терминология
  • Процессы и потоки
  • Виды процессинга
  • GIL
Допматериалы-1. Модуль Threading
  • Однопоточность. Демо проблемы
  • Foreground & Background потоки
  • "Параллельное" исполнение против последовательного
  • Executor API
  • submit-демо
  • map-демо
  • Синхронизация потоков
  • Гонка и Lock
  • Deadlock
  • Демо дэдлока
  • Синхронизация сигналами
  • Применяем Event
  • Семафор
  • Моделируем ночной клуб семафором
  • Барьер
  • Атомические операции
  • Отмена потоков
  • Отмена убийством процесса
  • Базовая отмена с флагом
  • Имплементируем отмену через Unit of Work-паттерн
  • Подытоги
  • Обработка исключений
  • Обработка исключений - Демо
Допматериалы-1. Модуль asyncio
  • Введение в asyncio
  • Простейший пример с asyncio
  • Event Loop. Введение
  • Event Loop. Демо
  • Демо с aiohttp
  • Демо с aiofiles
  • Futures & Tasks
  • Task API - Демо
  • Обёртываем Thread через Future
  • async for
  • Обработка исключений
  • Обработка исключений - Демо
  • Отмена. Введение
  • Отмена с gather
  • Отмена с wait. Кооперативная отмена
  • async IO vs sync IO
Введение в SQL
  • Основные концепции
  • Реляционная модель и SQL
  • Почему PostgreSQL
  • Инсталируем PostgreSQL
  • Типы данных в PostgreSQL
  • Создание БД
  • Создание таблиц
  • Отношение "один ко многим"
  • Отношение "один к одному"
  • Отношение "многие ко многим"
  • Создаём Northwind
Простые запросы с SELECT
  • Полная выборка
  • Выборка и элементарные арифметические операции
  • DISTINCT
  • COUNT
  • ДЗ "простые выборки"
  • ДЗ "простые выборки" - Решение
  • WHERE
  • AND, OR
  • BETWEEN
  • IN & NOT IN
  • ORDER BY
  • MIN, MAX, AVG
  • ДЗ "простые выборки-2"
  • ДЗ "простые выборки-2" - Решение
  • LIKE
  • LIMIT
  • Check on NULL
  • GROUP BY
  • HAVING
  • UNION, INTERSECT, EXCEPT
  • ДЗ "группировка, сопоставление, сортировка"
  • ДЗ "группировка, сопоставление, сортировка" -
  • Решение
Соединения - Joins
  • Знакомство с соединениями
  • INNER JOIN
  • LEFT, RIGHT JOIN
  • SELF JOIN
  • USING & NATURAL JOIN
  • AS - псевдонимы
  • ДЗ "JOINS"
  • ДЗ "JOINS" - Решение
Подзапросы
  • Введение в подзапросы
  • WHERE EXISTS
  • Подзапросы с квантификаторами ANY, ALL
  • ДЗ "Подзапросы"
  • ДЗ "Подзапросы" - Решение
DDL - управляем БД и таблицами
  • Управляем таблицами
  • ДЗ 1 по DDL
  • ДЗ 1 по DDL - Решение
  • Primary Key
  • Foreign Key
  • Check
  • Default
  • Sequences
  • Sequences & Tables
  • INSERT
  • UPDATE, DELETE, RETURNING
  • ДЗ 2 по DDL
  • ДЗ 2 по DDL - Решение
Python & SQL
  • Введение
  • psycopg2
  • ORM и SQLAlchemy
BONUS
  • Бонусная лекция

Чему вы научитесь

  • Писать простые программы на Python 3
  • Как писать простые игры типа крестиков-ноликов
  • Логика с условиями и циклами
  • Объектно-ориентированное программирование на Python
  • Использование Jupyter Notebook
  • Использование коллекций в Python: списки, словари и так далее
  • Декораторы
  • Неизменяемые объекты
  • Лучшие практики по написанию «чистого» кода на Python
  • Введение в SQL и PostgreSQL
  • Смогут общаться в чате с коллегами, изучающими Python (более 1000 человек!)

Для кого этот курс

  • Новички, которые никогда не пробовали программировать
  • Программисты, которые хотят вникнуть в новый для себя язык программирования
Это видео курс?

Это видео курс.

Будут ли вебинары?

Нет. Это видео курс.

Можно ли будет задавать вопросы?

На образовательной платформе можно будет задавать вопросы.

Есть ли какие-либо ограничения по времени?

Никаких ограничений по времени нет. Вообще никаких.