Update: Geron's book is much longer than this one (856 pages vs 400) and almost two-thirds of Geron's is about deep learning. This review is comparing this book to the first third of Geron's book. This book only provides several pages on deep learning (neural nets), similar to the other models. I would suggest this book for a basic foundation and if you want to dig into the minutiae of deep learning read the last 430 pages of Geron.<br><br>I read the Geron book "Hands-on Machine Learning with Scikit-learn &amp; TensorFlow" before reading this book. This book provides a better start for several reasons. First, it is better organized. Second, the code implementations rely primarily on Python modules, instead of custom programming.<br><br>Regarding the first, this book is set-up so that a reader can get an understanding of Machine Learning (ML) step-by-step from the bottom-up. For instance, supervised learning, feature engineering, and model evaluation all get separate chapters. The model evaluation chapter provides an entire section, as well as graphics, for understanding the roles of training, validation, and test data, which are probably the most important bedrock concepts in ML. In contrast to this, Geron throws you right into an entire ML pipeline in the second chapter. It's a mix of feature engineering, linear models, stochastic gradient descent, random forest models, cross-validation, grid search, and even object oriented programming for custom transformers! This might be useful for quickly understanding what ML is like in practice. If later sections of Geron then went step-by-step and elaborated on the second chapter, it would be great. Instead, for instance, the second chapter is randomly about binary classification for image data. You only get two paragraphs in the first chapter on cross-validation and validation sets, and a sentence or two later in the book. I had to go to Wikipedia to ensure that I understood it correctly and robustly. I wish I had read this book instead.<br><br>Regarding the second, this book does not assume a heavy programming background. Most of the ML pipeline is taught through the Python module Scikit-Learn. This is useful because the programming does not distract from learning fundamentals of ML. In contrast, in the second chapter of Geron, there is object oriented programming code involving concepts like constructors and inheritance. For this book, the most sophisticated chapter at the end, which is on pipelines and which expertly explains why feature engineering should be performed during model evaluation, doesn't even go into this. Some reviews mention that the author uses an mglearn Python package that he wrote. It is true that when he uses functions from this package the code is concealed. Arguably, this prevents readers who aren't familiar with Python from getting distracted by code that is unrelated to machine learning (such as creating visualizations). At times I was curious about how some of the code was working in the background (it is all available on GitHub), but the book's job is not to cover all aspects of data analysis with Python (which would be a separate book).<br><br>In summary Geron teaches more advanced topics interspersed with the basics without an entirely coherent organizational structure. This book has an intuitive structure that elaborates at length on core ML concepts. It doesn't overburden with code, but may leave computer scientists wanting a bit more.