
How to Solve It, by Georg Polya. A famous Hungarian mathematician. A text on general problem solving principles or techniques. A classic.
How to Solve It by Computer, by Dromey, an AU CS professor. In the same spirit as the Polya book, but applied to iteratively working out algorithms and pseudocode for common important programming problems.
The K&R C book. What to say.
The Unix Programming Environment, by Kernighan and Pike. Ditto.
Programming Pearls, and More Programming Pearls, by Jon Bentley. Among many other things, some clever / advanced uses of awk.
Writing Efficient Programs, also by Bentley. I had mentioned it on HN earlier, and someone replied saying they had used it in real life, and it was gold.
SQL for Professionals, by authors whose names I forget.
The Object Primer, by can't remember who, but good.
A Unix book by Kochan, IIRC.
Object-Oriented Software Construction, by Bertrand Meyer, creator of the Eiffel programming language.
A book on object-oriented analysis / design, can't remember the name, by Rebecca Wirfs-Brock (?) and others. Learned about CRC cards from it. Very cool concept and technique.
A book on Object-Oriented Design, by Grady Booch, from a time before he co-invented UML. Forget the exact name.
There is also Dromey's How to Solve it by Computer, which was inspired by Polya's book.
I have both, from quite a while ago, and think both are good.
- Annotated Turing by Petzold
- Code by Petzold
Maybe influential?
- Designing Data Intensive Applications by Kleppmann
- Digital Design and Computer Architecture by Harris
- How to Solve It by Computer
- Algorithms + Data Structures = Programs by Wirth
BTW, for others who might not know, it is not applicable just to math (although Polya was a mathematician). It's good for general problem solving.
And there is a book that was inspired by it, called How to Solve it by Computer. I had and read that one too. It is very good too. See descriptions of both books below.
https://en.wikipedia.org/wiki/How_to_Solve_It