Start with Design Patterns.