1 Refactoring: Improving the Design of Existing Code (Martin Fowler)
2 Header First Design Patterns (Eric Freeman, Elisabeth Freeman)
3 Design Patterns: Elements of Reusable Object-Oriented Software (GOF)
4 The Pragmatic Programmer (Andrew Hunt, David Thomas)
5 The Practice of Programming (Brian kernighan, Rob Pike)
6 The Art of Computer Programming (Donald Knuth)
7 Literate Programming(Donald Knuth)
8 Code Complete: A Practical Handbook of Software Construction (Steve McConnell)
9 Code Reading (Diomidis Spinellis)