1- Dive Into Design Patterns

2- Dive Into Refactoring

3- Clean Code