Title: Head First Design Patterns
Subtitle: Building Extensible and Maintainable Object-Oriented Software