Goal: Start thinking at scale — system design foundations and Python OOP for the language round. This week flips your mindset from “how does this function work” to “how does this system work.”
Topics
| Day | Focus | Topics |
|---|---|---|
| Mon | HLD Intro | What Is System Design? · How to Approach System Design · Requirements Gathering |
| Tue | HLD Estimation | Back-of-the-Envelope Estimation · Design Principles and Trade-offs |
| Wed | Python OOP Basics | Classes and Objects · Inheritance and MRO · @staticmethod vs @classmethod |
| Thu | Python OOP Advanced | Dunder Methods · Abstract Classes and Interfaces |
| Fri | DSA Trees | Tree Construction and Serialization · Lowest Common Ancestor |
Key Concepts
- The system design interview framework: requirements -> estimation -> high-level design -> deep dive
- Back-of-envelope math — estimating QPS, storage, and bandwidth without a calculator
- Python MRO (C3 linearization) — how Python decides which parent method to call
- Dunder methods for operator overloading — making your objects behave like built-in types
@staticmethodvs@classmethod— when you needclsand when you don’t- Tree serialization patterns — preorder with null markers is the classic approach
Practice
- Estimate QPS for a URL shortener (100M URLs/month, read-heavy, 100:1 read/write ratio)
- Design a Python class hierarchy for a simple card game — use inheritance, dunder methods, and abstract classes
- Implement tree serialization/deserialization using preorder traversal
- Find the LCA of two nodes in a binary tree — both recursive and iterative
~12 topics · ~1.5-2 hrs/day · Focus: read the linked notes, then code each concept