Этот репозиторий — курс по Python: от синтаксиса, модели объектов и работы с памятью до системного программирования, сети, асинхронности, качества кода, архитектуры и практик разработчика.
- 0101) Что такое Python и области применения
- 0102) Интерпретатор байткод и модель выполнения
- 0103) Установка Python и управление версиями
- 0104) REPL и запуск скриптов
- 0105) Venv и изоляция окружения
- 0106) IDE редактор терминал и инструменты разработки
- 0107) Структура проекта
- 0108) Python 2 vs 3 и совместимость
- 0109) IPython
- 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
- 0301) Арифметические операторы
- 0302) Логические операторы
- 0303) Операторы сравнения
- 0304) Побитовые операции
- 0305) Операторы принадлежности и идентичности
- 0306) Приоритет операций
- 0307) Тернарные выражения
- 0308) Walrus operator
- 0401) if elif else
- 0402) match case
- 0403) for
- 0404) while
- 0405) range и итерации
- 0406) break continue pass
- 0407) Вложенные конструкции
- 0408) Основы алгоритмического мышления
- 0409) truthy falsy
- 0410) else в циклах
- 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
- 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 параметры
- 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
- 0801) Методы строк
- 0802) Unicode и кодировки
- 0803) re регулярные выражения
- 0804) Парсинг текста
- 0805) Очистка и нормализация текста
- 0806) Внутреннее устройство строк
- 0807) Escape последовательности
- 0808) Сравнение строк
- 0809) Метасимволы и квантификаторы
- 0810) locale и региональные настройки
- 0811) Normalization NFC NFD
- 0812) Парсинг HTML
- 0901) SyntaxError vs Exception
- 0902) try except else finally
- 0903) raise и повторное пробрасывание
- 0904) Пользовательские исключения
- 0905) Иерархия исключений
- 0906) Best practices обработки ошибок
- 0907) traceback и чтение стека вызовов
- 0908) Модель исключений в Python
- 0909) Обработка нескольких исключений
- 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
- 1101) Протокол итерации
- 1102) iter и next
- 1103) Собственные итераторы
- 1104) yield и генераторы
- 1105) Генераторные выражения
- 1106) itertools
- 1107) Ленивые вычисления и экономия памяти
- 1108) Итератор vs итерируемый объект
- 1109) Потоковая обработка данных
- 1110) Конвейеры генераторов
- 1111) send throw close у генераторов
- 1112) Двунаправленные генераторы
- 1201) Классы и объекты
- 1202) Атрибуты экземпляра и класса
- 1203) Методы и init
- 1204) Инкапсуляция
- 1205) Наследование
- 1206) Полиморфизм
- 1207) Абстракция
- 1208) property и управление доступом к атрибутам
- 1209) Магические методы
- 1210) dataclass
- 1211) Композиция vs наследование
- 1212) Статические методы методы класса и экземпляра
- 1213) Абстрактные классы и методы
- 1214) slots
- 1215) MRO и super
- 1216) Числовые протоколы
- 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 риски и применение
- 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
- 1501) Big O
- 1502) Сортировки
- 1503) Поиск
- 1504) Стек и очередь
- 1505) Связные списки
- 1506) Деревья
- 1507) Графы
- 1508) Хеш таблицы
- 1509) sorted и sort
- 1510) key функции сортировки
- 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
- 1711) TCP клиент и сервер
- 1712) UDP датаграммы
- 1713) Таймауты буферы порты
- 1714) Многоклиентский сервер
- 1715) Бинарные форматы протоколов
- 1716) DNS резолюция getaddrinfo
- 1721) IPv4 IPv6 и подсети
- 1722) Валидация и разбор адресов
- 1731) urllib parse url разбор
- 1732) Query params и URL encoding
- 1741) HTTP методы
- 1742) Headers и Content Type
- 1743) Status Codes
- 1744) Request Response модель
- 1745) keep alive и pipelining
- 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 как дизайн решение
- 1761) Асинхронный HTTP клиент
- 1762) Работа с API и JSON
- 1763) WebSocket клиент
- 1771) ssl и TLS вручную
- 1781) http server
- 1791) xmlrpc
- 1792) imaplib
- 1793) smtplib
- 1801) Конкурентность vs параллелизм
- 1802) GIL глубоко
- 1831) Thread
- 1832) Жизненный цикл потока
- 1833) Lock
- 1834) RLock
- 1835) Semaphore
- 1836) Event
- 1837) Condition
- 1838) Barrier
- 1839) ThreadPool
- 1840) Координация задач в threading
- 1841) Process
- 1842) Жизненный цикл процесса
- 1843) Pool
- 1844) Queue
- 1845) Pipe
- 1846) IPC
- 1847) CPU bound задачи
- 1848) shared memory
- 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
- 1901) pdb и breakpoint
- 1902) logging
- 1903) warnings
- 1904) traceback
- 1905) assert и инварианты
- 1906) Основы тестирования
- 1907) Отладка deadlock и race condition
- 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
- 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
- 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 подход
- 2301) Abstract Factory
- 2302) Builder
- 2303) Factory Method
- 2304) Prototype
- 2305) Singleton
- 2306) Adapter
- 2307) Bridge
- 2308) Composite
- 2309) Decorator
- 2310) Facade
- 2311) Flyweight
- 2312) Proxy
- 2313) Chain of Responsibility
- 2314) Command
- 2315) Interpreter
- 2316) Iterator
- 2317) Mediator
- 2318) Memento
- 2319) Observer
- 2320) State
- 2321) Strategy
- 2322) Template Method
- 2323) Visitor
- 2401) numpy
- 2402) pandas
- 2403) matplotlib
- 2501) Как читать документацию
- 2502) Как искать ошибки
- 2503) Как дебажить проекты
- 2504) Как писать код в команде
- 2505) Код ревью
- 2506) Семантическое версионирование
- 2507) Changelog и release notes
- 2508) Git workflow
- 2509) README и документация для open source
- 2601) DB API 2 0
- 2602) sqlite3
- 2603) psycopg
- 2604) asyncpg
- 2605) SQLAlchemy Core
- 2606) SQLAlchemy ORM
- 2607) Alembic
- 2608) PyMongo
- 2609) redis py