Чему вы научитесь
- Мерить производительность кода: профилировать узкие места, находить где тормозит, оценивать улучшения в миллисекундах
- Выбирать структуры данных под задачу: понимать когда массив быстрее словаря, когда Bloom filter экономит память
- Работать с потоками данных: обрабатывать миллионы событий без утечек памяти, находить Top-K элементов
- Защищать сервисы от перегрузок: настраивать кеши, лимиты запросов, graceful degradation
- Считать стоимость решений: переводить оптимизации в рубли (сколько сэкономили на железе)
- Настраивать мониторинг: метрики в Prometheus, дашборды в Grafana
О курсе
Курс про алгоритмы которые нужны в реальной работе, а не только для решения задачек на LeetCode.
Обычно алгоритмы учат так: вот binary search, вот его сложность O(log n), вот код. Всё, дальше сами. Но это не отвечает на вопросы которые возникают в работе:
- Ваш сервис тормозит на поиске — что быстрее: heap, hash-table или отсортировать массив?
- Нужен Top-100 элементов из миллионов событий в стриме — какой алгоритм не съест всю память?
- Под нагрузкой всё падает — где добавить кеш, где rate limiting, где circuit breaker?
- Профайлер показал узкое место — как понять что именно оптимизировать и насколько это поможет?
Курс отвечает на эти вопросы через практику. Берём задачу, пробуем несколько подходов, мерим latency и память, смотрим что быстрее, считаем экономию в рублях.
Разбираем не только классику (сортировки, деревья, графы), но и то что реально используется в production:
- Вероятностные структуры (Bloom filter, Count-Min Sketch, HyperLogLog) — когда точность не критична, но память ограничена
- Top-K алгоритмы для потоков (Misra-Gries, Space-Saving) — как находить популярные элементы без сохранения всего
- Политики кешей (LRU, LFU, TinyLFU) — какая даёт лучший hit rate на вашем трафике
- Rate limiting (token bucket, leaky bucket) — как не упасть под нагрузкой
Каждый модуль построен одинаково: теория (коротко, без воды) → реализация на Python → бенчмарк с профилировщиками → отчёт "было/стало" в миллисекундах и рублях.
Весь код запускается в Docker, все метрики идут в Prometheus/Grafana. Финальный проект — сервис который обрабатывает запросы с p95 latency ≤100ms, с полным мониторингом и отчётом сколько сэкономили на железе.
Курс не про "напиши quicksort с нуля". Курс про "у тебя есть проблема со скоростью/памятью, вот как её решить и посчитать выгоду".
Для кого этот курс
Начальные требования
Обязательно:
- Python на базовом уровне — циклы, функции, списки, словари. Если решали задачки на Stepik/Codeforces - достаточно.
Желательно (научим по ходу):
- Умение запускать команды в терминале
- Базовое понимание Docker
НЕ нужно:
- Глубокое знание алгоритмов или математики
- Опыт с production системами
- Знание других языков программирования
Наши преподаватели
Как проходит обучение
Типичная структура урока:
1. Теория — короткое объяснение концепции без воды (5-10 минут чтения)
2. Реализация — пишем код на Python, разбираем как работает (10-15 минут)
3. Бенчмарк — запускаем тесты производительности, смотрим цифры latency/памяти (5-10 минут)
4. Практика — интегрируем в Docker окружение, смотрим метрики в Grafana (15-20 минут)
5. Отчёт — заполняете табличку "было/стало", считаете улучшения Весь код и окружение предоставляются. Вы скачиваете, запускаете, экспериментируете. В конце модуля — практическое задание с автопроверкой и тестовые задачи.
Программа курса
Сертификат
Что вы получаете
- Понимание когда какую структуру данных использовать в реальных задачах, а не только в теории
- Навык профилирования кода и поиска узких мест которые тормозят программу
- Умение оптимизировать под конкретные метрики: latency, память, стоимость запроса
- Опыт работы с вероятностными структурами: Bloom filter, Count-Min Sketch, HyperLogLog
- Навык обработки потоков данных: Top-K алгоритмы без утечек памяти
- Понимание когда добавлять кеш, rate limiting, circuit breaker чтобы сервис не падал под нагрузкой
- Умение настраивать мониторинг: Prometheus для метрик, Grafana для дашбордов
- Финальный проект в портфолио: сервис с p95 latency ≤100ms, Docker окружение, отчёт с цифрами
- Способность переводить технические улучшения в бизнес-метрики (экономия в рублях на железе)