A great collection of short columns on programming problem-solving; that is, how to analyse the problem, pick an appropriate solution, and implement it efficiently with the right algorithms and data structures. I once had a manager who was very surprised when he tried out what he thought was a reasonably hard interview question on me, and I came up with the answer he was looking for immediately. I explained it was basically covered in Chapter 1 of Programming Pearls. After a pause, he said that testing for whether or not someone had read this book was just as useful.