The examples aren't untrue, they're just not intuitive to a modern reader. It's nothing that ruins the book, but examples have things that seem slightly silly today like "big" computers with just a meg or two of memory available. Or the practice problem that asks you how you send an image from one place to another. (I first took that to mean I needed to implem ...more
The second edition has bee ...more
The book teaches through a thorough discussion of solutions of several problems coming from several domains (algorithms, data structures, probability theory, ...). Some of the things - binary search being the most obvious example - look easy, but the sad truth is that many people can't write a correct implementation, not even speaking about effectivi ...more
Part I: Preliminaries
Column 1: Cracking The Oyster (defining the problem correctly)
Principles: Defining the right problem is critical Problem: How do I sort a large file?
The programmer wanted to sort a large file with limited memory but the critical piece of information was that the numbers are in a specific range (7 digits only) and so the solution was to use a bit vector.
Column 2: AHA! Algorithms (designing the algorithm for the problem)
Principles: Sorti ...more
Unfortunately, this book, even after the second edition, is already rather outdated again. Far too much of the performance discussion is irrelevant now that we have optimizing compilers. For instance, C and C++ coders shouldn't spend their time today unrolling loops or doing shifts instead of divisions by powers of 2. For perfo ...more
The book describes problems in an interesting story telling format and then progresses towards finding solution to a problem. This is not as intense as Knuth where you will find rigorous Mathematical proofs for proving bounds on algorithms. The lang ...more
Most of the time, the author has discussed practical problems which were complex to start with and how easily they were solved (with 20-50 lines of code representing the main idea).
The book is fun to read and comprises of columns (read chapters). Although some columns are not as good as others. I had to gallop my way through the book due to various reasons, but it would be wise to heed author's advice to do 1 column per sitting. I intend to revisit this book, fo ...more
Targeted to experienced programmers, Programming Pearls reminds how important it is to think hard before approaching any problem, and to strive for elegance and efficiency.
Even years after its publication date, this book is full of insightful advice about programming as an art.
It is the best proof that programming languages may become obsolete, but good ideas never get old.
This book is best read in the following way:
1. Solve each problem that makes up the main story of the chapter before finishing the chapter
2. Do at least some of the exercises at the end of each chapter
Goodreads is hiring!
Learn more »