Python: от основ до собеседования и работы
Полный курс Python для тех, кто хочет пройти собеседование и уверенно работать разработчиком. Синтаксис и коллекции, функции и декораторы, модель данных и память, ООП, генераторы, исключения, типизация, тестирование, асинхронность, устройство CPython, алгоритмы для live coding, инструменты для работы (Git, SQL, HTTP, FastAPI, Docker) и подготовка к интервью. Код запускается прямо в браузере, есть пошаговый визуализатор выполнения и задания с автотестами.
Старт и основы синтаксиса
Как работает Python, переменные и типы, строки, условия, циклы и первые функции.
Коллекции
Списки, кортежи, словари, множества, включения, сортировка и модуль collections.
Функции глубже
Все виды аргументов, области видимости, замыкания, функции высшего порядка, декораторы и рекурсия.
Модель данных и память
Самая «собеседовательная» тема: объекты и ссылки, изменяемость, копирование, хеширование и классические ловушки.
Объектно-ориентированное программирование
Классы, наследование и MRO, инкапсуляция, магические методы, dataclasses, протоколы, дескрипторы, метаклассы и SOLID.
- Классы и объекты
- Наследование, super() и MRO
- Инкапсуляция и property
- Магические методы
- classmethod, staticmethod и альтернативные конструкторы
- dataclasses и NamedTuple
- Абстрактные классы, утиная типизация и Protocol
- Дескрипторы и __slots__
- Метаклассы, type и __init_subclass__
- SOLID и паттерны проектирования в Python
Итераторы, генераторы и контекстные менеджеры
Как работает for, ленивые вычисления, yield, itertools и with.
Исключения, логирование и отладка
Обработка ошибок, собственные исключения, logging и отладчик.
Модули, пакеты и окружение
Как работает import, пакеты, виртуальные окружения, зависимости и стандартная библиотека.
Файлы и данные
Файлы и pathlib, JSON и CSV, дата и время, регулярные выражения.
Типизация и качество кода
Аннотации типов и mypy, продвинутая типизация, PEP 8 и инструменты.
Тестирование
pytest, фикстуры и параметризация, моки, TDD и покрытие.
Конкурентность и асинхронность
Потоки, процессы и GIL, concurrent.futures, asyncio от основ до практики.
Внутреннее устройство и производительность
Байткод и интерпретатор CPython, память и сборщик мусора, сложность операций, профилирование.
Алгоритмы и структуры данных для собеседований
Всё, что спрашивают на live coding: от оценки сложности до динамического программирования.
- Оценка сложности алгоритмов
- Массивы: два указателя и скользящее окно
- Хеш-таблицы в задачах
- Стек, очередь и монотонный стек
- Бинарный поиск
- Алгоритмы сортировки
- Связные списки
- Деревья и обходы
- Кучи и heapq
- Графы: BFS, DFS и топологическая сортировка
- Перебор с возвратом
- Динамическое программирование
- Жадные алгоритмы и интервалы
Python в работе
Инструменты повседневной работы разработчика: Git, CLI, SQL, ORM, HTTP, FastAPI, Docker и командная разработка.
Подготовка к собеседованию
Как проходит интервью, топ вопросов с ответами, каверзный код, live coding, system design, поведенческое интервью и пробное собеседование.