Head First Design Patterns: A Brain-Friendly Guide