Learn Design Patterns.