The Week-by-Week Syllabus
This syllabus is structured to take you from foundational concepts to practical applications in system design, breaking down complex ideas into manageable weekly goals.
Week 1: Introduction to System Design
What to learn: Basic concepts like scalability, reliability, and availability. Key terms: scale-up, scale-out.
Why this comes before the next step: Understanding these fundamental terms lays the groundwork for designing systems that meet user demands.
Mini-project/Exercise: Create a one-page summary of what scalability means, including examples of scale-up and scale-out strategies.
Week 2: Databases Fundamentals
What to learn: Types of databases—SQL vs. NoSQL, and when to use each. Key technologies: MySQL, MongoDB.
Why this comes before the next step: Knowing the database types is crucial for determining how to store and retrieve data efficiently in your designs.
Mini-project/Exercise: Set up a simple MySQL and MongoDB database, and compare their use cases by designing a small application.
Week 3: Web Application Architecture
What to learn: Basic web app components—frontend, backend, and APIs. Key concepts: REST, CRUD.
Why this comes before the next step: Understanding how web apps interact will help you design systems that efficiently connect users with backend services.
Mini-project/Exercise: Design a simple web application architecture diagram (using draw.io) that illustrates the interaction between client, server, and database.
Week 4: Caching and Load Balancing
What to learn: Concepts and importance of caching mechanisms and load balancing. Technologies: Redis, Nginx.
Why this comes before the next step: These mechanisms are essential for optimizing performance and availability in larger systems.
Mini-project/Exercise: Implement a basic caching layer using Redis for the web application you designed in Week 3 and simulate load balancing with Nginx.
Week 5: Performance Analysis and Trade-offs
What to learn: Identifying bottlenecks and making trade-offs in design decisions. Key concepts: latency, throughput.
Why this comes before the next step: Recognizing performance issues and understanding trade-offs will empower you to make informed decisions in real-world scenarios.
Mini-project/Exercise: Analyze your previous mini-project for performance bottlenecks and suggest improvements with a focus on trade-offs.
Week 6: Mock Interviews and Feedback
What to learn: The structure of a system design interview and how to articulate your thought process effectively.
Why this comes before the next step: Practicing in a mock interview setting prepares you for the real thing, helping you gain confidence and receive constructive feedback.
Mini-project/Exercise: Conduct a mock system design interview with peers or mentors, focusing on articulating your design decisions and responding to feedback.