System Design Fundamentals

4 lessons · 2 hours of content · advanced level · English · certificate of completion

Learn how large-scale systems are designed — scalability, availability, caching, databases, messaging and API design — with freeCodeCamp's System Design for Beginners course and the open-source System Design Primer.

What you'll learn

  • Explain vertical vs horizontal scaling
  • Use load balancers, caches and CDNs
  • Choose between SQL and NoSQL databases
  • Reason about consistency, availability and trade-offs

Course content

Getting started

  • Course overview

Video lessons

  • System Design for Beginners — full course (freeCodeCamp.org)

Official resources

  • The System Design Primer (GitHub)

Practice

  • Practice quiz

Enroll in System Design Fundamentals