Python Algorithms, Second Edition explains the Python approach to algorithm analysis and design. Written by Magnus Lie Hetland, author of Beginning Python , this book is sharply focused on classical algorithms, but it also gives a solid understanding of fundamental algorithmic problem-solving techniques. The book deals with some of the most important and challenging areas of programming and computer science in a highly readable manner. It covers both algorithmic theory and programming practice, demonstrating how theory is reflected in real Python programs. Well-known algorithms and data structures that are built into the Python language are explained, and the user is shown how to implement and evaluate others. The book is intended for Python programmers who need to learn about algorithmic problem-solving, or who need a refresher. Data and computational scientists employed to do big data analytic analysis should find this book useful. Game programmers and financial analysts/engineers may find this book applicable too. And, students of computer science, or similar programming-related topics, such as bioinformatics, may also find the book to be quite useful.
Pros: - Very clear explanation of a complex subject. - Each chapter builds upon the previous chapters so that this is more like a class than a reference manual. - More approachable that the Sedgewick and Cormen.
Cons: - The almost constant parenthetical phrases distract from the text and quickly become irritating. After page 20 I just skipped them and found that I understood the concepts more quickly. - The use of single letter variables in the code examples makes it more difficult to understand the structure of a new concept. When there are several of them, it can become confusing. (See page 207.) Why not just use descriptive variable names?
There are sections that make note of how to implement certain algorithms using Python specific features, and this is very helpful, but this is first and foremost a book on algorithmic theory that happens to use Python for code examples.
Since this is my final year of college, I had to prepare for technical interviews. Python has always been the language of my choice and I bought this book to read good quality algorithmic program's source code. (which unfortunately, I couldn't find online anywhere).
I didn't read it to learn algorithms or exercise interview problems. I was already familiar with those, and just wanted to go through the source codes to learn some tricks, design pattern .. etc.
For example, for creating graph using adjacency list, I learnt a more pythonic way of structuring it.
Great book. He uses humor and a genuine love of the material to what can be challenging stuff. My only problem was the over-use of singe-char variable names.
It is just a wonderful book on algorithms. I was happy to read it because there is everything necessary about algorithms. The author put a lot of effort to describe everything in a very clear way.
The author didn't write the book for others, he'd written it for himself. He constantly distracts and talks to himself, touching core topics only superficially.
As a result, the book is poorly structured, patchy, incomplete, and even repetitive!
There's a little "meat" in the book, maybe, 100 pages of core content scattered/hidden across a vaguely relevant chatter, distractions, and forward/backward references. I didn't know that one can cram so much unnecessary information in so tiny volume.
Even worse, there's a little code in the book. And when there is, you can bet that it will be: 1. Abstract and didactic 2. Unreadable (single letter variable names, Carl!) 3. More often than not, without call examples (don't you even dream about unit tests) 4. Eventually, unpythonic
All in all, I'm tempted to rate it 2/5. Nevertheless, there is some valuable information, not to mention references and exercises, so the final score is 3/5.