How to Solve It by George Polya.

Polya's book provides the following rubric and sample problems to test/improve your problem-solving. He does assume a familiarity with high school mathematics (nothing burnt brain cells and wikipedia can't handle).

His section on mathematical notation gives programmers much to think on with respect to the languages they use. And not just the part where he says "modern computers" and means people doing math long-hand in the 1940's.

Marilyn vos Savant has a good quote as well:

My first thought, maybe not thought, it's almost like a feeling, is overview ... It's like, almost, a wartime decision. I keep thinking about all of the fronts, what's supplying what, where are the most important points ....
-- Financial Times, April 10, 2009 in "Is a high IQ a burden as much as a blessing?"

  1. UNDERSTANDING THE PROBLEM
  2. DEVISING A PLAN
  3. CARRYING OUT THE PLAN
  4. Looking Back