Чему вы научитесь
Из ноутбука — в код, который не стыдно отдать
ООП обычно объясняют на кошках и автомобилях, а заканчивают тремя словами: инкапсуляция, наследование, полиморфизм. После такого курса непонятно главное — зачем это аналитику, у которого всё и так работает.
Этот курс начинается не с определения класса, а с кода, который выглядит правильно и молча даёт неверный результат:
def normalize(values):
m = sum(values) / len(values)
return [x - m for x in values]
print(normalize(train)) # [-10.0, 0.0, 10.0]
print(normalize(test)) # [-5.0, 5.0] — среднее посчиталось по тесту
Исключения нет, числа приличные, метрика на валидации может даже вырасти. В бою качество упадёт, и искать причину будут в витрине данных. Правило «среднее считается один раз, по обучающей выборке» существует — но живёт в голове того, кто писал ноутбук. В коде его нет. Объект нужен ровно для этого: он хранит данные вместе с правилами обращения с ними.
Так устроен каждый урок: сначала цена ошибки, потом синтаксис.
| 135 задач с автопроверкой Заготовка, мгновенная проверка и разбор с эталонным решением |
763 теста 493 скрыты: два примера показаны, остальные границы надо додумать |
| 92 вопроса на понимание Разбор к каждому варианту, а не только к верному |
55 анимаций Что происходит с объектом по шагам |
Задачи проверяют поведение, а не строки кода
Считается не только то, что вы напечатали, но и следы работы: сколько раз позвали модель, что попало в реестр, осталась ли запись после отказа, повторился ли внешний вызов. Решение с другим кодом, но тем же контрактом, засчитывается.
Числа в курсе тоже проверяемые. В разделе про sklearn не «наследуйте
BaseEstimator и всё заработает», а конкретно: правильный трансформер даёт
0 несовместимостей из 47 проверок check_estimator, версия без
return self — 8 из 47, версия с **params в конструкторе —
2 из 47 и пустой get_params().
Что внутри
- инкапсуляция без догм: что прятать, что показывать и почему;
- современный Python: dataclass, Protocol, ABC, контекстные менеджеры;
- композиция против наследования и зависимости, приходящие снаружи;
- стратегия, фабрика и переходник — без переусложнения;
- совместимость с sklearn и воспроизводимость экспериментов;
- тесты, понятные ошибки, журналирование;
- дескрипторы, MRO и кооперативный
super(),__slots__, копирование объектов, безопасный повтор запроса; - сквозной проект: превратить ноутбук в пакет, который ставится одной командой и импортируется из любого места.
Каждый раздел заканчивается лабораторной: собрать работающий кусок целиком, а не по кусочкам.
Курс бесплатный. Если что-то объяснено плохо или задача кажется нерешаемой — напишите в комментариях к шагу, отвечаю на все.
Дополнительная практика
| Python-тренажёр Закрепить синтаксис и короткие задачи. Открыть практику → |
Продуктовые кейсы Перенести решение в бизнес-сценарий. Выбрать кейс → |
| Конспекты аналитика Повторить Python, ML и статистику. Открыть конспекты → |
Мок-интервью Проговорить архитектурные решения вслух. Начать интервью → |