A useful read for anyone who likes to have a deeper understanding of algorithm design The book covers many aspects such as time space complexity, NP completeness, and many other concepts The part that I personally really appreciate was the first few chapters about how to set our mindset to design an algorithm.This book, like most academic books, is hard to read and comprehend and needs the reader to doresearch about the subjects I wish people who write these books, they come out of thei A useful read for anyone who likes to have a deeper understanding of algorithm design The book covers many aspects such as time space complexity, NP completeness, and many other concepts The part that I personally really appreciate was the first few chapters about how to set our mindset to design an algorithm.This book, like most academic books, is hard to read and comprehend and needs the reader to doresearch about the subjects I wish people who write these books, they come out of their academic cave It doesn t need to use complex writing structures or tough vocabularies to explain a simple idea.This book, of course, is not something you read from A to Z It s probably good as a reference This is not an introductory book You should have some previous knowledge of algorithms to enjoy it The book builds a way of thinking towards solving algorithms problems, instead of just stating the algorithms and data structures in a mechanical way, but in many parts it is not very clear and you have to read a passage multiple times to understand what the author meant The book can be used as a reference that you can use to understand a specific topic. This book is a practical, example driven book on computer science algorithms, which is very readable and has a wealth of ready to use examples The tutorial material in the first half of the book covers the essentials data structures such as lists, arrays, stacks, queues, binary trees, etc The book spends a lot of time emphasizing the utility of graph algorithms and how to model various classes of problems with them, as well as lot of time on dynamic programming and backtracking enumeration A This book is a practical, example driven book on computer science algorithms, which is very readable and has a wealth of ready to use examples The tutorial material in the first half of the book covers the essentials data structures such as lists, arrays, stacks, queues, binary trees, etc The book spends a lot of time emphasizing the utility of graph algorithms and how to model various classes of problems with them, as well as lot of time on dynamic programming and backtracking enumeration A unique and illuminating feature of this book is an extensive collection of war stories describing the author s personal experiences with applying these algorithmic tools in various circumstances quite fascinating, and some a bit darkly humorous The extensive collections of problems at the end of each tutorial chapter provide excellent practice in particular, the lists of interview problems for drilling are very valuable preparation The second half of the book is collection of short essays on various kinds of problems and sketches of techniques to handle them This is very useful for gaining a broad overview of what tools are available, though the coverage can be somewhat brief e.g., I felt that some aspects of string algorithms were treated quite telegraphically, e.g., suffix trees, and also the Hungarian algorithm for assignments was barely mentioned Also, there were not that many examples in the second half It is really intended as a set of pointers to get you started on where to look up details for approaches to a particular problem, and in that respect succeeds quite well and has a lot of up to date references.I would give this book 4 1 2 stars it has a fair share of typos, and sometimes problems are duplicated in different sections this probably reflects how the book was updated The book is rather lighter on proofs than, say Cormen Leiserson Rivest etc., and so one should probably have arigorous book at hand to fill in some details when necessary The choice of topics and the style reflect the author s extensive consulting experience, as well has his work on contest programming he wrote another entire book dedicated to Programming Challenges The fact that this book focuses on working source code in examples as opposed to just pseudo code makes it extremely useful for drilling for programming interviews.In fact, I learned about it from Steve Yegge s blog post remainder of his advice is also invaluable Here are a couple of other very valuable resources both the books and the forums.Overall, essential reading if you are studying for a programming interview I can t think of an occasion when I d recommend this over Intro to Algorithms CLRS It does a fraction of what CLRS does and worse in most cases And in the rest of the cases, it does them exactly the same There were some instances graph algorithms where the code in Skiena was taken straight out of CLRS Not only did CLRS explain the algorithm better but it had the proofs to back it up.Speaking of proofs, this is what I hated about Skiena It has barely any proofs in comparison to CLRS A l I can t think of an occasion when I d recommend this over Intro to Algorithms CLRS It does a fraction of what CLRS does and worse in most cases And in the rest of the cases, it does them exactly the same There were some instances graph algorithms where the code in Skiena was taken straight out of CLRS Not only did CLRS explain the algorithm better but it had the proofs to back it up.Speaking of proofs, this is what I hated about Skiena It has barely any proofs in comparison to CLRS A lot of people might enjoy this, but I feel that having the mathematical understanding of algorithms and the proofs to back it up will greatly increase your understanding of the material A short proof instead of a little hand waving goes a long way.Basically, get CLRS and don t look back A rare book on algorithms that is actually fun to read