Problem-solving principles for programmers applied logic, psychology, and grit - Lewis, William E. (Hayden, 1980)