On this page
The four terms the answer uses
What System Design Fundamentals teaches
What Grokking the System Design Interview teaches
Grokking System Design vs Grokking System Design Fundamentals: the two names
The two courses compared
Which course to take first: a decision table
What each course does not teach
Three study sequences by starting point
Taking both courses: order and time
Frequently asked questions
Related reading
System Design Fundamentals vs Grokking the System Design Interview: Which to Take First


On This Page
The four terms the answer uses
What System Design Fundamentals teaches
What Grokking the System Design Interview teaches
Grokking System Design vs Grokking System Design Fundamentals: the two names
The two courses compared
Which course to take first: a decision table
What each course does not teach
Three study sequences by starting point
Taking both courses: order and time
Frequently asked questions
Related reading
Take System Design Fundamentals first if you cannot yet explain what a load balancer, a cache, a replica, and a message queue each do. Start with Grokking the System Design Interview if you can explain all four and your interview is within about six weeks.
The two courses teach different things. System Design Fundamentals teaches the parts of a large system, one part per chapter. Grokking the System Design Interview teaches a method for the interview and then applies it to real design problems.
This article defines the four terms, describes each course, explains the two names, gives a decision table, and gives three study orders.
The four terms the answer uses
The answer above depends on four terms. Here is what each one means.
A load balancer is a server that distributes incoming requests across several application servers. A cache is a fast copy of data, kept in memory so reads avoid the database.
A replica is a second copy of a database that can serve reads or take over when the first copy fails. A message queue is a buffer that stores work until the program that handles it is ready.
If you can describe all four in your own words, you already have the vocabulary the interview course assumes. If any of them is new, System Design Fundamentals teaches it in its own chapter: load balancing, caching, replication, and messaging systems.
For a longer checklist of the terms an interview expects, read System Design Fundamentals: 25 Core Concepts.
What System Design Fundamentals teaches
System Design Fundamentals is a text-based course that teaches the building blocks of large systems, one block per chapter. There are no video lessons. Each chapter is a set of short written lessons on a single part.
The chapters come in a fixed order:
- The key characteristics of distributed systems (systems that run on many machines): scalability, availability, latency, and fault tolerance.
- Back-of-the-envelope estimation, which is rough arithmetic on request rates and storage sizes.
- Network essentials (HTTP, TCP vs UDP, and DNS) and real-time delivery (long-polling, WebSockets, and server-sent events).
- Proxies, load balancing, the API gateway, rate limiting, caching, and the CDN.
- Data partitioning, redundancy and replication, the CAP and PACELC theorems, SQL vs NoSQL databases, indexes, and Bloom filters.
- Quorum, leader and follower, heartbeat, and checksum.
- Distributed messaging (including Kafka), distributed file systems, and security: authentication, authorization, OAuth vs JWT, and encryption.
Every topic chapter ends with a flashcards review and an adaptive assessment. A flashcard is a short question with the answer hidden until you choose to see it. An adaptive assessment is a quiz that adjusts to your answers.
The course ends with a final quiz. Its questions come from a bank that covers every chapter. The whole course takes about 20 hours.
It needs only basic programming knowledge. The course was formerly named Grokking System Design Fundamentals, and the content did not change with the name.
What Grokking the System Design Interview teaches
Grokking the System Design Interview is the original interview course, and it teaches a step-by-step method for answering a system design question. It also takes about 20 hours.
The course has a chapter on trade-offs. A trade-off is a choice where gaining one property costs another, like faster reads in exchange for data that may be out of date.
The course also works real design problems as case studies. A case study is a real design problem worked from requirements to a finished design. The case studies include a URL shortener, a news feed, a chat app, a video platform, and others.
The lessons use video and interactive diagrams. A glossary of basics is included for reference. You get a certificate when you complete the course.
For a longer description of the course from its author, read Grokking System Design: A Complete Guide by Its Creator. For the interview round itself, its steps, and the common questions, read the System Design Interview Guide.
Grokking System Design vs Grokking System Design Fundamentals: the two names
Two names cause most of the confusion between these courses.
"Grokking System Design" is the short name people use for Grokking the System Design Interview. It is the interview course.
"Grokking System Design Fundamentals" is the former name of System Design Fundamentals. It is the same course with the same content, so a review written under the old name describes the current course.
So "which Grokking system design course first" is the same question as the title of this article. The word Grokking is in both names, but only the interview course still has it in its current name.
The two courses compared
| System Design Fundamentals | Grokking the System Design Interview | |
|---|---|---|
| Purpose | Learn each building block | Learn the interview method |
| Format | Text lessons, no video | Video lessons and interactive diagrams |
| Structure | One building block per chapter, in order | Method, trade-offs, then case studies |
| Practice | Flashcards and an adaptive assessment per chapter | Real design problems worked as case studies |
| Assumes | Basic programming knowledge | You can already say what each part does |
| Ends with | A final quiz drawn from every chapter | A certificate |
| Time | About 20 hours | About 20 hours |
| Other name | Formerly Grokking System Design Fundamentals | Grokking System Design, for short |
The table shows the difference. One course teaches the vocabulary, and the other course uses that vocabulary to design systems under interview conditions.
Which course to take first: a decision table
Answer each question below, then read the column that matches your answer.
| Question | If yes | If no |
|---|---|---|
| Can you say what a load balancer, a cache, a replica, and a message queue each do? | Interview course | Fundamentals first |
| Is your interview within about six weeks? | Interview course, plus the Fundamentals chapters for the parts you cannot explain | Fundamentals first if any part is new to you |
| Is your goal a job skill rather than an interview? | Fundamentals, then the case studies at a slower pace | Interview course |
| Have you designed anything under a constraint, like a request rate or a data size? | Interview course | Fundamentals first |
When the rows disagree, choose based on the interview date. At 40 minutes a day, six weeks is about 28 hours of study. That is enough for one full course and a few chapters of the other.
If the interview is further away and two or more rows say Fundamentals first, start there. System Design Fundamentals lets you read its opening lessons before you buy. Use them to check your answer to the first question against the real lessons.
A worked example makes the table concrete. A reader has two years of backend work and an interview in five weeks. They can explain a load balancer and a cache, but not a replica or a queue.
The first row says Fundamentals, and the second row says the interview course. The interview is within six weeks, so that reader starts the interview course. Then they read the replication and messaging chapters of Fundamentals in the first week.
What each course does not teach
System Design Fundamentals does not teach the interview. It has no chapter on the interview method. It does not work case studies, so you never practice a full design under a time limit.
A reader who finishes it can explain every part. That reader has still not designed a system from a set of requirements.
Grokking the System Design Interview does not teach each building block from nothing. Its glossary of basics is a reference, not a first lesson. When a case study adds a cache, the course assumes you know what a cache is.
A reader who starts it without the vocabulary stops in every case study to look up terms. That slows every lesson, and the method gets less of your attention than it should.
Three study sequences by starting point
Complete beginner. Take System Design Fundamentals from the first chapter to the final quiz. Then take the interview course.
At 40 minutes a day, each course takes about 30 days, so plan on about two months for both. If distributed systems are new to you, Learn System Design With No Distributed Systems Experience gives a four-week plan that uses the same building blocks.
Experienced backend engineer with an interview soon. Start with the interview course. When a case study uses a part you cannot explain, read that chapter of Fundamentals, then return to the case study.
For example, a news feed design usually needs a cache and a message queue. If the queue is new to you, read the messaging systems chapter, then continue with the design.
Engineer with no interview who wants the skill. Take Fundamentals first, at any pace, since there is no deadline. Then work through the case studies in the interview course slowly, and design each one yourself before you read the course's design.
One case study a week is a good pace for this reader. For this reader, the trade-offs chapter is worth more time than the interview method.
| Starting point | First | Second | Time at 40 minutes a day |
|---|---|---|---|
| Complete beginner | System Design Fundamentals, every chapter | Grokking the System Design Interview | About two months for both |
| Backend engineer, interview within six weeks | Grokking the System Design Interview | The Fundamentals chapters for the parts you cannot explain | About one month, plus the extra chapters |
| Engineer with no interview date | System Design Fundamentals | The case studies, about one a week | About one month, then one case study a week |
Taking both courses: order and time
Most readers who take both courses should take Fundamentals first. The only reason to reverse the order is an interview within about six weeks.
Each course takes about 20 hours, so both together take about 40 hours. At one hour a day, that is about six weeks. At 40 minutes a day, it is about two months.
The two courses overlap in one respect. The interview course includes a glossary of basics, and Fundamentals teaches the basics in full chapters. After Fundamentals, use the glossary as a reminder and spend the saved time on the case studies.
Grokking the System Design Interview is the second course for most readers. It is the first course for anyone with an interview within six weeks.
Frequently asked questions
Is Grokking System Design Fundamentals the same as System Design Fundamentals? Yes. Grokking System Design Fundamentals is the former name of System Design Fundamentals. The course and its content did not change, only the name.
Do I need System Design Fundamentals before Grokking the System Design Interview? Only if the building blocks are new to you. If you can explain a load balancer, a cache, a replica, and a message queue, start with the interview course. If you cannot, take Fundamentals first.
Which Grokking system design course should a beginner take first? A beginner should take System Design Fundamentals first. It teaches one building block per chapter and assumes only basic programming knowledge. The interview course assumes you already know the parts.
Is System Design Fundamentals enough to pass a system design interview? On its own, no. It teaches the parts of a system but not the interview method, and it has no case studies. Take Grokking the System Design Interview after it for the method and the practice.
How long do the two courses take together? About 40 hours, since each course takes about 20 hours. That is about six weeks at one hour a day, or about two months at 40 minutes a day.
Does System Design Fundamentals have video lessons? No. It is a text-based course with written lessons, flashcards, and an adaptive assessment at the end of each topic chapter. Grokking the System Design Interview is the course with video lessons and interactive diagrams.
Related reading
- Grokking System Design: A Complete Guide by Its Creator
- Best System Design Courses for Beginners: Start Here
- System Design for Beginners: Where to Start
- How to Learn System Design: A Roadmap by Career Level
- How Long Does It Take to Learn System Design?
- System Design Building Blocks: The Components Every Scalable System Uses
What our users say
MO JAFRI
The courses which have "grokking" before them, are exceptionally well put together! These courses magically condense 3 years of CS in short bite-size courses and lectures (I have tried Grokking System Design Interview, OODI, and Coding patterns). The Grokking courses are godsent, to be honest.
AHMET HANIF
Whoever put this together, you folks are life savers. Thank you :)
Ashley Pean
Check out Grokking the Coding Interview. Instead of trying out random Algos, they break down the patterns you need to solve them. Helps immensely with retention!
Access to 50+ courses
New content added monthly
Certificate of completion
$31.08
/month
Billed Annually
Recommended Course

Grokking the Object Oriented Design Interview
60,422+ students
4.2
Learn how to prepare for object oriented design interviews and practice common object oriented design interview questions. Master low level design interview.
View CourseRead More
Chaos Engineering for Beginners: How to Break Your System Before Production Does
Arslan Ahmad
System Design Certification: Does It Matter, and Which Ones Count
Arslan Ahmad
Amazon System Design Mock Interview Preparation Guide
Arslan Ahmad
System Design Interview for L6 Engineers: Staff-Level Expectations
Arslan Ahmad