Reading list Design Patterns Refactoring Refactorying to Pattern Effective C++ More Effective C++ Code Complete