Head First 
Design Patterns Demos practices