Disclaimer: The publisher sent me a copy of this book for review. I promise that everything said here is my own opinion regardless. All reviews at the Cross Trained Mind are open and honest.
About This Book
This book covers many common algorithms using the Python programming language. As it’s about an important topic, it needs to have both breadth and depth without going too far in either direction. This book has enough depth to make it useful for any Python developer but covers too many topics to be able to focus on what every programmer truly needs to know. The more advanced algorithms also use open source libraries to do most of the work, which takes away from some of the understanding.
Who Is This For?
The author says that this is a good book for any serious programmer, though I would contend that this is for the self-taught programmer who wants to get a handle on algorithms. The first section of this book looks at this. The rest of the book strays into topics that many programmers don’t really need to know or would get a more in-depth book about if it becomes relevant.
The macrostructure of this book is organized into three sections: Fundamentals and Core Algorithms, Machine Learning Algorithms, and Advanced Topics. This is a good structure, though I’m surprised that Data Algorithms (Chapter 11) is in the advanced section since all modern programs run on data. The microstructure of the book is fairly simple. Each chapter starts with a section about ‘introducing’ or ‘understanding’ the topic. Some consistency would have aided readability here. Each chapter also ends with a summary to aid retention. Everything in between is different for each chapter and it’s difficult to see where each of the 40 algorithms are, as they are not numbered.
Did This Book Succeed?
This is a very useful book that focuses on some core algorithms. It also looks at some advanced algorithms, but I feel the advanced topics detract from what the author is intending. Not every programmer needs to know about cryptography or even machine learning. I think this should have been two volumes with the first being a more detailed look into core algorithms and the second covering the advanced topics. It would have been more useful for programmers if they only wanted the first half and then consider buying the second half later.
Rating and Final Thoughts
Overall, I give this book a 4 out of 5.
It covers a little too wide range of topics, many of which are not needed by every programmer. The structure of the book is somewhat inconsistent which makes it harder to find the algorithms you might be looking up. That said, it covers a lot of useful topics without becoming too academic. It might not be for everyone, but a self-taught programmer who is considering going into artificial intelligence would very much want to buy this.