My review of Programming Pearls is going to require a little personal background. My undergraduate degree is in Finance, not Computer Science, and my focus has always been on programming, not computer science. However, I have enough experience now that I’m running into those things that CS majors need to know.
When I first started reading the book, it was dry and academic, and I quickly lost interest. The first few chapters focused on algorithms. It went into my bag, not to be read. Recently I was bored on the train and tried to keep reading it. I was quickly drawn in, nodding my head as I read the problem descriptions he sets about to solve. The book quickly became much more compelling to me and I was excited to keep reading. The book is a collection of articles from Communications of the ACM that actually read pretty quickly. The focus is on "thinking" about difficult programming problems to come to elegant solutions. The "pearls" are born from irritating programming problems. The book is split into
I realized, that for myself, the first part was a bit too academic, and the third part was a bit contrived, while the middle chapters about Performance were just what I needed. At the end of the book (currently second edition) there was a compendium of common algorithms and it’s easy to compare/contrast them. After reading this, the first chapters were much more meaningful. If you are finding it difficult to follow this book, jump ahead to another chapter or section that may interest you more.