I keep meeting people who have completed three or four paid machine learning courses and have never read the scikit-learn user guide, and it is genuinely one of the great missed opportunities in self taught ML. This is not API documentation in the ordinary sense. The user guide is a structured explanation of supervised learning, unsupervised learning, model selection, preprocessing and evaluation, written by people who understand both the mathematics and the practical failure modes, with a working implementation attached to every idea. Take the section on cross validation and model evaluation.
It explains why a naive train test split misleads you, what nested cross validation is actually protecting against, when stratification matters, how grouped data breaks your assumptions, and what each scoring metric optimises for. That is a graduate seminar's worth of material presented plainly, and it is better than the equivalent chapter in most textbooks because every claim comes with code you can run against your own data in thirty seconds. The common pitfalls page is another highlight and should be required reading. Data leakage through preprocessing before splitting, the mistakes people make with pipelines, misinterpreting feature importances, and the difference between fitting on the whole dataset and fitting on training folds.
Every one of these is a bug I have watched competent people ship. The linear model chapter is quietly excellent on regularisation, explaining ridge, lasso and elastic net in terms of the geometry rather than as three functions with different letters. The ensemble chapter is good on why boosting and bagging fail in different ways. The preprocessing material takes categorical encoding, scaling and missing values seriously as modelling decisions rather than housekeeping.
The obvious limitation is scope. scikit-learn is classical machine learning, so nothing here covers deep learning, transformers, or anything modern in generative AI. If your goal is LLM engineering this is foundational rather than direct. I would still argue it is worth reading, because the evaluation discipline transfers completely and evaluation discipline is precisely what most LLM work is missing.
The second limitation is structural. Documentation is organised for lookup, not for learning. There is no sequence, no prerequisite ordering, no sense of what to read first. My own recommendation, having done it, is to read the user guide in order, supervised learning, then unsupervised, then model selection and evaluation, then preprocessing, treating the example gallery as exercises.
That takes maybe a week of evenings and is worth more than most three month bootcamp modules. Third, there is no assessment. Nothing checks whether you understood. You have to impose that on yourself by taking a dataset and applying each technique as you meet it, which is a discipline most people lack.
Fourth, some sections presume statistical vocabulary. The Gaussian process and manifold learning chapters in particular will lose a reader who has not met the underlying concepts elsewhere. My four point seven reflects material that is technically outstanding, free, maintained and more useful than most paid courses, marked down only for the absence of any pedagogical scaffolding and for a scope that stops before deep learning. If I could make every self taught ML practitioner read one thing, it would probably be this.