1. Head First Design Patterns
  2. Fundamentals of Software Architecture
  3. Software Architecture: The Hard Parts
If you like System Design, buy at least one of these.