Содержание курса
1. Введение
1 урок
2
2
0м
0
Открытый
1.1
Добро пожаловать на курс
↗
2
2
-
0
2. Инструменты измерения производительности
5 уроков
6
6
0м
0
Закрытый
2.1
Три принципа оптимизации
↗
2
2
-
0
Закрытый
2.2
Инструменты измерения времени
↗
1
1
-
0
Закрытый
2.3
Профилирование CPU
↗
1
1
-
0
Закрытый
2.4
Профилирование памяти
↗
1
1
-
0
Закрытый
2.5
Интерпретация результатов
↗
1
1
-
0
3. Big O - Алгоритмическая сложность
6 уроков
6
6
0м
0
Открытый
3.1
Введение в Big O. Классы O(n) и O(n²)
↗
1
1
-
0
Закрытый
3.2
O(1), O(log n).Константная и логарифмическая сложность
↗
1
1
-
0
Закрытый
3.3
Правила определения сложности. Анализ структуры кода
↗
1
1
-
0
Закрытый
3.4
O(n log n). Сложность встроенных операций Python
↗
1
1
-
0
Закрытый
3.5
Оптимизация через замену алгоритма. bisect
↗
1
1
-
0
Закрытый
3.6
Границы применимости Big O
↗
1
1
-
0
4. Внутреннее устройство структур данных
5 уроков
5
5
0м
0
Закрытый
4.1
Список - динамический массив
↗
1
1
-
0
Закрытый
4.2
Словарь - хеш-таблица
↗
1
1
-
0
Закрытый
4.3
Множество и кортеж
↗
1
1
-
0
Закрытый
4.4
Специализированные коллекции
↗
1
1
-
0
Закрытый
4.5
Выбор структуры данных
↗
1
1
-
0
5. Оптимизация циклов и итераций
5 уроков
5
5
0м
0
Закрытый
5.1
Как работает цикл for в Python
↗
1
1
-
0
Закрытый
5.2
Оптимизация циклов - приемы
↗
1
1
-
0
Закрытый
5.3
Comprehensions
↗
1
1
-
0
Закрытый
5.4
Встроенные функции быстрее циклов
↗
1
1
-
0
Закрытый
5.5
Антипаттерны циклов
↗
1
1
-
0
6. Микрооптимизации
7 уроков
7
7
0м
0
Закрытый
6.1
Байткод и его инструкции
↗
1
1
-
0
Закрытый
6.2
Импорт модулей - что происходит при запуске скрипта
↗
1
1
-
0
Закрытый
6.3
Создание объектов
↗
1
1
-
0
Закрытый
6.4
Арифметика и вызовы функций
↗
1
1
-
0
Закрытый
6.5
Переменные, атрибуты и цепочки доступа
↗
1
1
-
0
Закрытый
6.6
Условия, исключения и проверки
↗
1
1
-
0
Закрытый
6.7
Что Python оптимизирует сам. Чек-лист модуля
↗
1
1
-
0
7. Генераторы и ленивые вычисления
5 уроков
5
5
0м
0
Закрытый
7.1
Проблема - всё в памяти
↗
1
1
-
0
Закрытый
7.2
Генераторы
↗
1
1
-
0
Закрытый
7.3
Генераторные выражения и цепочки
↗
1
1
-
0
Закрытый
7.4
Обработка больших файлов
↗
1
1
-
0
Закрытый
7.5
itertools
↗
1
1
-
0
8. Строки, объекты и управление памятью
5 уроков
5
5
0м
0
Закрытый
8.1
Строки - неизменяемые объекты
↗
1
1
-
0
Закрытый
8.2
Эффективная работа со строками
↗
1
1
-
0
Закрытый
8.3
Как Python управляет памятью
↗
1
1
-
0
Закрытый
8.4
Оптимизация памяти объектов
↗
1
1
-
0
Закрытый
8.5
Диагностика и исправление проблем с памятью
↗
1
1
-
0
9. Кеширование и мемоизация
5 уроков
5
5
0м
0
Закрытый
9.1
Концепция кеширования
↗
1
1
-
0
Закрытый
9.2
@lru_cache и @cache
↗
1
1
-
0
Закрытый
9.3
Кеширование за пределами функций
↗
1
1
-
0
Закрытый
9.4
Инвалидация кеша
↗
1
1
-
0
Закрытый
9.5
Антипаттерны кеширования
↗
1
1
-
0
10. Параллелизм и конкурентность
6 уроков
6
6
0м
0
Закрытый
10.1
CPU-bound vs I/O-bound
↗
1
1
-
0
Открытый
10.2
GIL - что это и как влияет
↗
1
1
-
0
Закрытый
10.3
Threading для I/O-bound задач
↗
1
1
-
0
Закрытый
10.4
Multiprocessing для CPU-bound задач
↗
1
1
-
0
Закрытый
10.5
Замеры параллелизма
↗
1
1
-
0
Закрытый
10.6
Когда параллелизм НЕ помогает
↗
1
1
-
0
11. Практическая часть
4 урока
4
4
0м
0
Закрытый
11.1
Обработка большого CSV
↗
1
1
-
0
Закрытый
11.2
Парсинг и анализ логов
↗
1
1
-
0
Закрытый
11.3
Параллельное скачивание и обработка
↗
1
1
-
0
Закрытый
11.4
Разбор AI-сгенерированного кода
↗
1
1
-
0
12. Финал
2 урока
2
2
0м
0
Закрытый
12.1
Программист в век ИИ. Методология, чек-лист и валидация AI-кода
↗
1
1
-
0
Закрытый
12.2
Что дальше. План развития
↗
1
1
-
0