EXERCISE
1Learn when to start with the big picture and when to start with technical details.
Different problems require different starting points. Here's how to choose:
Top-Down Approach (Start with features) Use when: Given a big, complex problem Examples: "Design Facebook", "Design Uber", "Design Netflix" Process: Features → Components → Technical Details
Bottom-Up Approach (Start with technical details)
Use when: Given a specific, focused problem
Examples: "Design a cache", "Design a database", "Design a load balancer"
Process: Database → Components → System Architecture
Example of Top-Down: "Design Twitter" → (Tweet, Follow, Timeline) → Components → choices
Example of Bottom-Up: "Design a rate limiter" → Algorithm choice → Data structure → Integration points
The key is recognizing which type of problem you're dealing with and starting at the right level of abstraction.
Pro Tip: The best engineers intuitively know whether to zoom out to see the forest or zoom in to see the trees.