Skip to content

Latest commit

 

History

924 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Курс по Python

Этот репозиторий — курс по Python: от синтаксиса, модели объектов и работы с памятью до системного программирования, сети, асинхронности, качества кода, архитектуры и практик разработчика.

Структура курса

Модуль 0100. Введение в язык и среду выполнения

  • 0101) Что такое Python и области применения
  • 0102) Интерпретатор байткод и модель выполнения
  • 0103) Установка Python и управление версиями
  • 0104) REPL и запуск скриптов
  • 0105) Venv и изоляция окружения
  • 0106) IDE редактор терминал и инструменты разработки
  • 0107) Структура проекта
  • 0108) Python 2 vs 3 и совместимость
  • 0109) IPython

Модуль 0200. Базовый синтаксис и примитивы

  • 0201) Токены и ключевые слова
  • 0202) Переменные и модель имен
  • 0203) int
  • 0204) float
  • 0205) bool
  • 0206) str immutability и slicing
  • 0207) None и отсутствие значения
  • 0208) input
  • 0209) print
  • 0210) f string и format
  • 0211) Приведение типов
  • 0212) id ссылки и основы модели памяти
  • 0213) Динамическая типизация в Python
  • 0214) Объектная модель Python
  • 0215) Классификация типов данных
  • 0216) Изменяемые и неизменяемые объекты
  • 0217) is и оператор равенства
  • 0218) Интернирование строк и чисел
  • 0219) Присваивание и ссылки на объекты
  • 0220) Reference counting и garbage collector
  • 0221) Циклические ссылки
  • 0222) complex

Модуль 0300. Операторы и выражения

  • 0301) Арифметические операторы
  • 0302) Логические операторы
  • 0303) Операторы сравнения
  • 0304) Побитовые операции
  • 0305) Операторы принадлежности и идентичности
  • 0306) Приоритет операций
  • 0307) Тернарные выражения
  • 0308) Walrus operator

Модуль 0400. Управляющие конструкции

  • 0401) if elif else
  • 0402) match case
  • 0403) for
  • 0404) while
  • 0405) range и итерации
  • 0406) break continue pass
  • 0407) Вложенные конструкции
  • 0408) Основы алгоритмического мышления
  • 0409) truthy falsy
  • 0410) else в циклах

Модуль 0500. Структуры данных

  • 0501) list внутреннее устройство и операции
  • 0502) tuple и immutability
  • 0503) set хеширование и операции
  • 0504) dict ключи коллизии и операции
  • 0505) Вложенные структуры
  • 0506) Сравнение структур
  • 0507) Поверхностное и глубокое копирование
  • 0508) collections Counter и defaultdict
  • 0509) List comprehension
  • 0510) Dict comprehension
  • 0511) Set comprehension
  • 0512) Вложенные comprehensions
  • 0513) Условия в comprehensions
  • 0514) Производительность list set dict
  • 0515) frozenset
  • 0516) Вложенные списки
  • 0517) Матрицы
  • 0518) Встроенные функции для коллекций
  • 0519) deque
  • 0520) missing в dict

Модуль 0600. Функции и абстракции

  • 0601) Определение и вызов функций
  • 0602) Позиционные и именованные параметры
  • 0603) args и kwargs
  • 0604) Возврат значений
  • 0605) LEGB и области видимости
  • 0606) Замыкания closures
  • 0607) Рекурсия
  • 0608) Аргументы по умолчанию
  • 0609) Проблема mutable аргументов
  • 0610) Функции как объекты первого класса
  • 0611) global и nonlocal
  • 0612) Вложенные функции
  • 0613) Пространства имен и shadowing
  • 0614) Positional only и keyword only параметры

Модуль 0700. Модули и пакеты

  • 0701) import и его варианты
  • 0702) Создание собственных модулей
  • 0703) Пакеты и init
  • 0704) Относительные и абсолютные импорты
  • 0705) pip uv и управление зависимостями
  • 0706) main и точка входа
  • 0707) Структура Python файла
  • 0708) sys path
  • 0709) math
  • 0710) datetime
  • 0711) random
  • 0712) string
  • 0713) decimal
  • 0714) fractions
  • 0715) turtle
  • 0716) setup py и pyproject toml
  • 0717) Создание пакета
  • 0718) Установка и распространение
  • 0719) entry points и console scripts
  • 0720) poetry
  • 0721) pip tools
  • 0722) lock файлы и репродуцируемость
  • 0723) time и monotonic clock
  • 0724) Таймеры и задержки
  • 0725) Проблемы времени и таймзоны
  • 0726) UTC vs local time
  • 0727) DST и летнее время
  • 0728) Как работает import под капотом
  • 0729) importlib и динамические импорты
  • 0730) Кэширование модулей
  • 0731) Запуск через python m
  • 0732) zipapp
  • 0733) pex и самодостаточные бинарники
  • 0734) import
  • 0735) sys meta path и custom importers

Модуль 0800. Работа со строками и текстом

  • 0801) Методы строк
  • 0802) Unicode и кодировки
  • 0803) re регулярные выражения
  • 0804) Парсинг текста
  • 0805) Очистка и нормализация текста
  • 0806) Внутреннее устройство строк
  • 0807) Escape последовательности
  • 0808) Сравнение строк
  • 0809) Метасимволы и квантификаторы
  • 0810) locale и региональные настройки
  • 0811) Normalization NFC NFD
  • 0812) Парсинг HTML

Модуль 0900. Исключения и обработка ошибок

  • 0901) SyntaxError vs Exception
  • 0902) try except else finally
  • 0903) raise и повторное пробрасывание
  • 0904) Пользовательские исключения
  • 0905) Иерархия исключений
  • 0906) Best practices обработки ошибок
  • 0907) traceback и чтение стека вызовов
  • 0908) Модель исключений в Python
  • 0909) Обработка нескольких исключений

Модуль 1000. Работа с файлами и данными

  • 1001) open close и with для файлов
  • 1002) Режимы файлов
  • 1003) Чтение и запись текста
  • 1004) Чтение и запись байтов
  • 1005) JSON
  • 1006) CSV
  • 1007) pickle и сериализация
  • 1008) Безопасность при работе с данными
  • 1009) Типичные ошибки при работе с файлами
  • 1010) Потоковый ввод и вывод
  • 1011) YAML
  • 1012) TOML
  • 1013) Injection и валидация входа
  • 1014) Опасности pickle и десериализации
  • 1015) bytes bytearray memoryview
  • 1016) struct упаковка и распаковка данных
  • 1017) endianness и бинарные форматы
  • 1018) XML
  • 1019) msgpack
  • 1020) protobuf обзор
  • 1021) Сравнение форматов сериализации
  • 1023) zipfile и tarfile
  • 1024) io StringIO и BytesIO
  • 1025) secrets
  • 1026) hashlib
  • 1027) hmac

Модуль 1100. Итераторы и генераторы

  • 1101) Протокол итерации
  • 1102) iter и next
  • 1103) Собственные итераторы
  • 1104) yield и генераторы
  • 1105) Генераторные выражения
  • 1106) itertools
  • 1107) Ленивые вычисления и экономия памяти
  • 1108) Итератор vs итерируемый объект
  • 1109) Потоковая обработка данных
  • 1110) Конвейеры генераторов
  • 1111) send throw close у генераторов
  • 1112) Двунаправленные генераторы

Модуль 1200. ООП в Python

  • 1201) Классы и объекты
  • 1202) Атрибуты экземпляра и класса
  • 1203) Методы и init
  • 1204) Инкапсуляция
  • 1205) Наследование
  • 1206) Полиморфизм
  • 1207) Абстракция
  • 1208) property и управление доступом к атрибутам
  • 1209) Магические методы
  • 1210) dataclass
  • 1211) Композиция vs наследование
  • 1212) Статические методы методы класса и экземпляра
  • 1213) Абстрактные классы и методы
  • 1214) slots
  • 1215) MRO и super
  • 1216) Числовые протоколы

Модуль 1300. Типизация и продвинутые механизмы языка

  • 1301) Аннотации типов
  • 1302) typing
  • 1303) Protocol и Generic
  • 1304) Декораторы
  • 1305) contextlib и собственные контекстные менеджеры
  • 1306) Дескрипторы
  • 1307) functools partial wraps и singledispatch
  • 1308) Метаклассы обзор
  • 1309) dir vars type id
  • 1310) getattr setattr hasattr
  • 1311) inspect
  • 1312) Динамическое создание объектов
  • 1313) init_subclass и class_getitem
  • 1314) TypeVar ParamSpec TypeVarTuple
  • 1315) Annotated Literal TypeGuard
  • 1316) overload
  • 1317) NewType vs type alias
  • 1318) typing extensions
  • 1319) Дескрипторы get set delete
  • 1320) enter exit изнутри
  • 1321) ast
  • 1322) tokenize
  • 1323) exec eval риски и применение

Модуль 1400. Функциональное программирование

  • 1401) lambda
  • 1402) map
  • 1403) filter
  • 1404) reduce
  • 1405) Чистые функции
  • 1406) Иммутабельность
  • 1407) Композиция функций
  • 1408) Функции высшего порядка
  • 1409) zip
  • 1410) any all enumerate
  • 1411) Парадигмы программирования
  • 1412) operator
  • 1413) toolz и more itertools

Модуль 1500. Алгоритмы и структуры данных

  • 1501) Big O
  • 1502) Сортировки
  • 1503) Поиск
  • 1504) Стек и очередь
  • 1505) Связные списки
  • 1506) Деревья
  • 1507) Графы
  • 1508) Хеш таблицы
  • 1509) sorted и sort
  • 1510) key функции сортировки

Модуль 1600. Системное программирование

  • 1601) os
  • 1602) sys
  • 1603) pathlib
  • 1604) subprocess
  • 1605) shutil
  • 1606) tempfile
  • 1607) signal
  • 1608) argparse
  • 1609) stdin stdout и pipe
  • 1610) exit codes и завершение программ
  • 1611) signal handling в CLI
  • 1612) chmod и umask
  • 1613) Символические ссылки
  • 1614) Работа с большими директориями
  • 1615) Переменные окружения глубже
  • 1616) PID и работа с процессом
  • 1617) Демонизация процессов
  • 1618) mmap
  • 1619) ctypes и cffi
  • 1620) fcntl и termios
  • 1621) resource
  • 1622) atexit

Модуль 1700. Сетевое программирование

1701. socket

  • 1711) TCP клиент и сервер
  • 1712) UDP датаграммы
  • 1713) Таймауты буферы порты
  • 1714) Многоклиентский сервер
  • 1715) Бинарные форматы протоколов
  • 1716) DNS резолюция getaddrinfo

1702. ipaddress

  • 1721) IPv4 IPv6 и подсети
  • 1722) Валидация и разбор адресов

1703. urllib

  • 1731) urllib parse url разбор
  • 1732) Query params и URL encoding

1704. http

  • 1741) HTTP методы
  • 1742) Headers и Content Type
  • 1743) Status Codes
  • 1744) Request Response модель
  • 1745) keep alive и pipelining

1705. requests

  • 1751) GET
  • 1752) POST
  • 1753) PUT
  • 1754) PATCH
  • 1755) DELETE
  • 1756) Session Cookies Headers
  • 1757) Timeout Retry и Error Handling
  • 1758) Безопасность HTTP клиентов
  • 1759) REST API дизайн на клиенте
  • 1760) Пагинация и rate limit
  • 1761) Аутентификация basic token oauth
  • 1762) Backoff и стратегии повтора
  • 1763) Idempotency
  • 1764) Timeout как дизайн решение

1706. aiohttp

  • 1761) Асинхронный HTTP клиент
  • 1762) Работа с API и JSON
  • 1763) WebSocket клиент

1707. ssl

  • 1771) ssl и TLS вручную

1708. http server

  • 1781) http server

1709. rpc и mail

  • 1791) xmlrpc
  • 1792) imaplib
  • 1793) smtplib

Модуль 1800. Параллелизм и асинхронность

  • 1801) Конкурентность vs параллелизм
  • 1802) GIL глубоко

1803. threading

  • 1831) Thread
  • 1832) Жизненный цикл потока
  • 1833) Lock
  • 1834) RLock
  • 1835) Semaphore
  • 1836) Event
  • 1837) Condition
  • 1838) Barrier
  • 1839) ThreadPool
  • 1840) Координация задач в threading

1804. multiprocessing

  • 1841) Process
  • 1842) Жизненный цикл процесса
  • 1843) Pool
  • 1844) Queue
  • 1845) Pipe
  • 1846) IPC
  • 1847) CPU bound задачи
  • 1848) shared memory

1805. asyncio

  • 1851) Event Loop
  • 1852) coroutines
  • 1853) async
  • 1854) await
  • 1855) Task
  • 1856) Gather
  • 1857) TaskGroup
  • 1858) Async Queue
  • 1859) Async Lock
  • 1860) Async Semaphore
  • 1861) I O bound задачи
  • 1862) asyncio Protocol
  • 1863) loop run in executor
  • 1864) asyncio timeout
  • 1865) Отмена задач и CancelledError
  • 1866) contextvars

Модуль 1900. Отладка логирование и диагностика

  • 1901) pdb и breakpoint
  • 1902) logging
  • 1903) warnings
  • 1904) traceback
  • 1905) assert и инварианты
  • 1906) Основы тестирования
  • 1907) Отладка deadlock и race condition

Модуль 2000. Качество кода и статический анализ

  • 2001) PEP8
  • 2002) PEP257 и docstrings
  • 2003) Flake8
  • 2004) Ruff
  • 2005) Black
  • 2006) isort
  • 2007) Mypy
  • 2008) Pyright и Pylance
  • 2009) SonarQube
  • 2010) Bandit
  • 2011) Radon и Vulture
  • 2012) pre commit

Модуль 2100. Производительность и оптимизация

  • 2101) timeit
  • 2102) cProfile
  • 2103) tracemalloc
  • 2104) Оптимизация алгоритмов
  • 2105) lru cache и мемоизация
  • 2106) Работа с памятью
  • 2107) Поиск утечек памяти
  • 2108) array
  • 2109) memoryview глубже
  • 2110) slots и влияние на память
  • 2111) Cython и Numba обзор
  • 2112) del и финализаторы
  • 2113) weakref
  • 2114) sys getsizeof и реальный размер объектов
  • 2115) dis и байткод CPython

Модуль 2200. Архитектура и best practices

  • 2201) SOLID в Python
  • 2202) Чистый код
  • 2203) Рефакторинг
  • 2204) Разделение слоев
  • 2205) Проектирование CLI приложений
  • 2206) Конфигурация через env и settings
  • 2207) Docstrings и Sphinx
  • 2208) Структура пакетов и расширяемость
  • 2209) CLI дизайн и user experience
  • 2210) Форматирование вывода tabulate и rich
  • 2211) Цветной вывод и progress bar
  • 2212) dotenv и переменные окружения
  • 2213) Идиомы Python и Pythonic подход

Модуль 2300. GoF 23 классических паттерна проектирования

2301. Abstract Factory

  • 2301) Abstract Factory

2302. Builder

  • 2302) Builder

2303. Factory Method

  • 2303) Factory Method

2304. Prototype

  • 2304) Prototype

2305. Singleton

  • 2305) Singleton

2306. Adapter

  • 2306) Adapter

2307. Bridge

  • 2307) Bridge

2308. Composite

  • 2308) Composite

2309. Decorator

  • 2309) Decorator

2310. Facade

  • 2310) Facade

2311. Flyweight

  • 2311) Flyweight

2312. Proxy

  • 2312) Proxy

2313. Chain of Responsibility

  • 2313) Chain of Responsibility

2314. Command

  • 2314) Command

2315. Interpreter

  • 2315) Interpreter

2316. Iterator

  • 2316) Iterator

2317. Mediator

  • 2317) Mediator

2318. Memento

  • 2318) Memento

2319. Observer

  • 2319) Observer

2320. State

  • 2320) State

2321. Strategy

  • 2321) Strategy

2322. Template Method

  • 2322) Template Method

2323. Visitor

  • 2323) Visitor

Модуль 2400. Библиотеки для анализа данных

  • 2401) numpy
  • 2402) pandas
  • 2403) matplotlib

Модуль 2500. Как работать разработчиком

  • 2501) Как читать документацию
  • 2502) Как искать ошибки
  • 2503) Как дебажить проекты
  • 2504) Как писать код в команде
  • 2505) Код ревью
  • 2506) Семантическое версионирование
  • 2507) Changelog и release notes
  • 2508) Git workflow
  • 2509) README и документация для open source

Модуль 2600. Библиотеки для работы с базами данных

  • 2601) DB API 2 0
  • 2602) sqlite3
  • 2603) psycopg
  • 2604) asyncpg
  • 2605) SQLAlchemy Core
  • 2606) SQLAlchemy ORM
  • 2607) Alembic
  • 2608) PyMongo
  • 2609) redis py

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages