A few months ago, I picked up Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow by Aurelien Geron. I'd heard it was the best practical ML book out there, and after working through most of it, I can confirm -- it lives up to the hype.

Why This Book

I wanted to learn ML properly. Not just watching YouTube tutorials and copy-pasting code, but actually understanding what's happening under the hood. Why does gradient descent work? What makes a random forest "random"? When should you use an SVM vs a neural network?

Geron's book strikes the perfect balance between theory and practice. Every concept comes with runnable Jupyter notebooks, and the explanations build on each other in a way that makes complex ideas feel approachable.

The Scikit-Learn Chapters

The first part of the book covers classical ML with scikit-learn: linear regression, decision trees, SVMs, ensemble methods. This was where I had the most "aha" moments. Things I'd heard about but never truly understood suddenly clicked.

The difference between knowing the name of a model and understanding how it works is the difference between using a tool and being a craftsman.

The housing price prediction project in Chapter 2 was a turning point for me. Going through a complete ML pipeline -- data cleaning, feature engineering, model selection, hyperparameter tuning -- gave me a framework I now apply to every project.

Into Deep Learning

The deep learning chapters with Keras and TensorFlow are where things get intense. Building neural networks from scratch, understanding backpropagation, implementing CNNs and RNNs -- it's a lot to take in. My approach was to:

What Math Actually Matters

Here's the thing nobody tells you: you don't need to be a math genius to do ML. But you do need to be comfortable with linear algebra (matrix operations, dot products), calculus (derivatives, chain rule), and probability (Bayes' theorem, distributions). My math classes at Notre Dame have been incredibly useful here -- all those proofs in Discrete Math and Calculus weren't for nothing.

What's Next

I'm currently working on a Kaggle competition to put these skills to the test. There's a huge gap between following along in a textbook and building something on your own with messy real-world data. That's where the real learning happens.

If you're interested in ML and come from a CS + Math background, this book is the best starting point I've found. Fork my handson-ml3 repo on GitHub if you want to see my notes and modified notebooks.