DEV Community

Fahim ul Haq for Educative

Posted on

What are the best resources for studying System Design?

The tech world is changing fast, and if you want to stay ahead, you need to be able to design systems that can handle anything. This can feel overwhelming, especially if you’re just starting or prepping for a tech interview specifically focused on designing scalable systems.

I had the same experience preparing for my first System Design interview at FAANG. I searched online to find what could work for me. I found many resources through informational videos, books, and e-learning platforms. So, as any software engineer would, I decided to try each one to find the best.

In this blog post, I share my ongoing journey of learning System Design, which began with exploring various interview prep resources. I dive into the details of the different platforms I used, ultimately revealing which one I found most valuable and continue to use today.

I will be comparing three popular resources: Educative’s “Grokking Modern System Design Interview for Engineers & Managers,” Design Gurus’ “Grokking the System Design Interview,” and Alex Xu’s “System Design Interview” books.

Here is everything we will cover:

Image description

Disclaimer: This blog is based on my experience and opinion alone. You may have different preferences.

Why System Design mastery matters

System Design interview preparation is crucial for professionals aspiring to thrive in tech industry roles, such as software engineers, system architects, or technical leads. Unlike traditional coding interviews that focus on algorithmic prowess, System Design interviews evaluate candidates’ ability to design complex, scalable systems that are robust and efficient. This shift reflects the industry’s growing emphasis on practical problem-solving and architectural considerations in real-world applications.

Challenges in System Design preparation

System Design interviews stand out from their coding counterparts. While standardized coding tests present well-defined problems with clear solutions, system design relies on open-endedness. Candidates must navigate multifaceted questions, demonstrating a holistic understanding of:

  • Architectural patterns: Identify the appropriate architectural approach (e.g., monolithic, microservices). Consider designing a social media platform. A monolithic architecture might be suitable in the early stages, but as the user base and data volume grow, a microservices architecture would offer better scalability and maintainability.
  • Scalability considerations: Design systems that can grow and adapt to increasing user demands and data volume. This includes aspects like database sharding, caching strategies, load balancing, and consistent data models. Imagine designing a photo-sharing app. A horizontally scalable database with caching mechanisms for frequently accessed data would be crucial to handle millions of concurrent users uploading and viewing images.
  • Trade-offs: Justify design choices by weighing different options and their benefits and drawbacks. For instance, choosing between a relational database and a NoSQL database depends on the application’s specific data access patterns and consistency requirements. A relational database offers strong data integrity but might struggle with high-volume writes, while a NoSQL database excels in scalability but might have looser consistency guarantees.

Here’s what makes System Design prep a unique challenge:

  • Non-trivial process: There’s no single right answer. Interviews require candidates to think critically, discuss various approaches, and defend their design decisions effectively. Be prepared to explain your reasoning and answer follow-up questions that dive deeper into the chosen architecture and its trade-offs.
  • Company-specific differences: Tech companies prioritize different aspects of System Design. Some may focus on distributed systems, emphasizing designing fault-tolerant services that can operate across geographically distributed data centers. Others might emphasize microservices architecture, requiring you to demonstrate expertise in breaking down complex functionalities into independent, loosely coupled services. Research the specific company beforehand to tailor your preparation accordingly.
  • Limited comprehensive resources: Finding up-to-date resources that cover the breadth and depth of System Design principles can be difficult. Textbooks and online courses often lack the comprehensive approach for a thorough understanding. Look for resources that combine theoretical foundations with practical application through case studies and practice problems focused on real-world scenarios like designing a food delivery app or a content streaming platform.
  • Theory vs. practice gap: Bridging the gap between theoretical knowledge and practical application is significant. Succeeding in interviews requires hands-on practice and familiarity with real-world scenarios. Utilize tools for simulating system behavior or participate in mock interviews to gain practical experience explaining and defending your design choices under pressure.
  • Navigating the interview: Articulating thoughts clearly, handling feedback gracefully, and demonstrating strong problem-solving skills under pressure are vital for success. Practice presenting your thought process, actively listen to the interviewer’s questions and suggestions, and be prepared to adapt your design based on the feedback received.
  • Seniority matters: The focus of System Design interviews shifts based on experience. Entry-level candidates concentrate on foundational concepts like database selection, caching strategies, and basic load-balancing techniques. Senior professionals tackle advanced topics like intricate scalability techniques, complex architectural patterns like event-driven architectures, and managing large-scale systems with millions of users and high data volumes.

Image description

Three tough contenders

After sifting through various resources to tackle System Design interview challenges, I landed on three well-regarded options:

  • Educative’s “Grokking Modern System Design Interview for Engineers & Managers”
  • Design Gurus’ “Grokking the System Design Interview”
  • Alex Xu’s “System Design Interview” books

Each offers a distinct approach, catering to different learning styles and experience levels.

To help you find the best fit, this blog will provide a balanced comparison of these resources. We’ll discuss their strengths and weaknesses to empower you to make informed decisions based on your needs.

Overview of System Design Learning Platforms

Image description

Comparison of top System Design resources

This section dives deeper into how the above-mentioned resources compare, looking at how many courses they offer and how much they cover. This will help you pick the best one to learn System Design from my experience!

Image description

Educative’s “Grokking Modern System Design Interview for Engineers & Managers” (GMSD)
Searching through videos on System Design, I came across this video:

https://www.youtube.com/watch?v=2kEMI3i5saQ&t=8s

It was the first video I thought had real value. So, I decided to check out what all the fuss was about. I had heard of Educative back when I started my career. After going through 175+ lessons, 2 mock interviews, and countless real-world assessments in the “Grokking Modern System Design Interview for Engineers & Managers” course, below are my thoughts.

Educative’s GMSD is a one-stop shop for learning system design, from beginner to expert. It starts with free, foundational courses that teach the basics, ensuring everyone has a strong understanding before tackling tougher topics.

Going through their extensive course catalog, I found that Educative has a wide variety of courses, everything from Python to GenAI to System Design. I really liked their distributed systems offerings. I am currently in the middle of taking their Advanced System Design and Product Architecture (API design) courses.

High-quality content that keeps up

Educative’s GMSD doesn’t just cover a lot of ground; it covers it well. You’ll get a deep understanding of System Design from different angles. If you need help, they offer support for questions and a  forum  to chat with other learners and instructors. The content is constantly updated with new explanations,  blogs , and design problems to keep things fresh and relevant.

I asked the people at Educative to tell me how I should learn system design on their platform; this is the list they gave me:

  1. The System Design Interview Prep Handbook 
  2. Distributed Systems for Practitioners 
  3. Grokking Modern System Design Interview for Engineers & Managers (GMSD) 
  4. Grokking the Product Architecture Design Interview 
  5. Grokking the Principles and Practices of Advanced System Design

Image description

Educative’s GMSD, being their flagship course, has over 40 chapters covering 16 key system design building blocks. You’ll also get 13 real-world design problems to test your skills. With 175 detailed lessons and quizzes, I was amazed at the quality and attention to detail in every aspect, from the content to illustrations to quizzes.

If you are short on time, they even have crash courses:

Now, let’s look at another popular resource among avid System Design learners: the Design Gurus' course, which takes a focused approach to System Design.

Design Gurus’ “Grokking the System Design Interview”

Design Gurus has a limited number of good courses. They are also a popular destination for System Design. I recently found out that Design Gurus’ course was actually available on Educative for a while. I am unsure why that changed, but Educative’s current course, GMSD, seems to be a supercharged version of Design Gurus’ offerings. Perhaps Educative learned from the Design Gurus’ course on their platform and improved upon it to make a better version of their own; at least, that’s what they said when I asked them. In any case, here is what I learned.

Design Gurus’ course gets you interview-ready with a single, focused program. It dives right into system design fundamentals and key concepts. Then, it throws real-world design problems your way, complete with step-by-step guides to crack them.

Design Gurus’ System Design course was written before 2017. They say the older the wine gets, the better it is but I’m not sure if that applies to a course. I leave the choice to you here.

This course is known for its real-world case studies. It shows you how system design principles are actually used. Plus, the focus on patterns helps you recognize and use them in different situations, making you a better problem-solver. They even include clear illustrations to make complex concepts easier to understand. However, keep in mind there are no interactive quizzes, so if you learn best by doing, this might not be your first choice.

Alex Xu’s “System Design Interview” (SDI)

Alex Xu’s “System Design Interview” (SDI) is a two-volume book on mastering system design challenges. Volume 1 caters to beginners by introducing fundamental problems and their step-by-step solutions. Volume 2 dives deeper, tackling advanced topics and complex design scenarios as compared to Volume 1.

Note: I found that the design problems here were simpler than Educative’s GMSD. For example, they have the design of a messaging queue as a complex problem in Volume 2, while it is a basic building block in Educative's GMSD.

This structured approach ensures learners of all experience levels can build their skills progressively.

Each design problem is meticulously broken down into clear, concise steps, making it easy to follow and understand. Additionally, the content is thoroughly researched, providing learners with detailed, reliable, and accurate system design knowledge.

Extensive coverage

Across both volumes, you’ll find 29 chapters tackling 23 design problems, offering an in-depth exploration of each topic. With a combined length of 693 pages, SDI provides learners with a comprehensive resource for mastering system design challenges.

Note that even if there are a lot of pages to cover, it still has 23 design problems, compared to Educative’s GMSD, which has 16 building blocks plus 13 real-world problems, totaling 39 design problems.

System Design resources quality comparison

Let’s look at the content quality differences between the three learning resources.

Educative

Educative’s “Grokking Modern System Design Interview for Engineers & Managers” stands out for its expansive curriculum. It covers foundational concepts all the way up to advanced system design and even dives into API design. This comprehensive approach prepares you for interviews and real-world system design challenges you might encounter later. Plus, the platform offers a supportive environment with regular updates and readily available assistance, ensuring you stay current and have help when needed. Additionally, detailed illustrations provide valuable visual aids for grasping complex concepts. What I particularly liked was the structure of each design problem. For example, if you are to design YouTube, the following is the structure of lessons:

Image description

They use th RESHADED approach to tackle all problems, which is the best part for me. This approach enabled me to answer unseen problems during my interview.

Each lesson in GMSD has added value in the form of additional reasoning, quizzes, interactivity, improved structure, and better writing. In GMSD, learners are taught how to design the core components (like cache, monitoring system, blob store, etc). Problem set: GMSD has traditional as well as newer design problems like Quora, which I haven’t found on any other platform yet. I got the feeling that with GMSD, the idea is to not only prepare learners for the interviews but also to teach them System Design so they can answer traditional as well as new System Design problems.

The only gap I could find was that there were not too many advanced interview problems in that course compared to something like SDI. But later, when I found the advanced System Design course, it made sense that Educative’s GMSD is an intermediate-level course while the problems missing were expert-level.

Design Gurus

Design Gurus’ “Grokking the System Design Interview” excels at making the learning process practical. It bridges the theory-to-practice gap with real-world case studies and pattern-based learning, making the content immediately relevant and highly applicable.

The Design Gurus course has a good structure as well, but the problem is that the solution to an entire problem is given in one lesson. This makes it difficult to digest a saturated lesson full of complex concepts. I like crunching the problem into digestible chunks to learn it. On the flip side, it helps to quickly go through the boilerplate solutions of different problems just before the interview.

Keep in mind, though, that some learners might find the lack of hands-on practice elements, like quizzes, a drawback.

Alex Xu

Finally, Alex Xu’s SDI volumes boast meticulous detail and thorough research. Their structured and clear explanations ensure a deep understanding of each design problem presented. Across both volumes, you’ll find 29 chapters tackling 23 design problems, offering an in-depth exploration of each topic. With a combined length of 693 pages, SDI provides learners with a comprehensive resource for mastering system design challenges. However, the text-heavy format with minimal interactive elements might not be as engaging for everyone. Learners who prefer a more dynamic learning experience might find this approach less effective.

Note: Ultimately, the choice depends on your learning style and goals. Do you crave a comprehensive journey with ongoing support, or are you laser-focused on acing interviews? Consider your needs and choose the resource that best aligns with your learning preferences.

Overview of SDI Learning Resources

Image description

Interactivity and learning styles

We all learn differently, and some of us thrive on active participation. From my experience and knowledge, here’s how these resources cater to that need for interactivity.

Learning is most effective when engaging, and that’s where interactivity comes in. When I first started exploring resources for system design, I noticed a big difference in how interactive each one was. Educative’s “Grokking Modern System Design Interview for Engineers & Managers” stood out with features like quizzes, slides, illustrations, and even AI-powered interactivity. These widgets weren’t just bells and whistles—they helped me put my knowledge to the test by simulating real-world scenarios. Plus, the platform offered AI mock interviews, a lifesaver for practicing those nerve-wracking design interviews.

Image description

The AI-powered assessments really helped me grasp difficult concepts. These assessments were sprinkled throughout the course. I loved them so much that I asked for more, but the team told me that too much of them would hinder my progress because they are addictive!

Design Gurus’ course, on the other hand, heavily relied on beautiful illustrations to explain complex concepts. While it lacked the interactive elements of Educative, it was still effective enough to make sense of the material.

Alex Xu’s books took a purely textual approach, with extensive detailed explanations. While I appreciated the depth of knowledge, I sometimes felt like I wasn’t actively applying what I was learning.

Which resource is best for hands-on learning?

The way each resource used quizzes, slides, and illustrations definitely impacted my learning experience. Educative packed a punch with 135 quizzes throughout the course. They weren’t just busywork—they really helped solidify my understanding of the key concepts. Plus, the platform used tons of slides and over 800 illustrations, making everything more visually engaging.

Image description

Educative’s AI

What truly set Educative apart was its use of AI. Other than the AI assessments, they had something called “Explain with AI.” Simply, if you don’t know a concept, highlight the line, and AI will explain it to you by giving an example in the context of the lesson. It means on-the-spot customer support. I loved that feature!

These weren’t just fancy gimmicks—they were interactive tools that allowed me to learn efficiently. It felt like having a mini-System Design playground right there on the platform. Plus, the  AI mock interviews  were a game-changer. Simulating real interview scenarios with AI feedback helped me refine my interview skills in a safe space. The AI interviewer feature was also pocket-friendly; though other courses did provide interview preparation with experts, the cost went up to four hundred dollars per interview.

The other ingredients

The holy grail of System Design learning is being able to apply your knowledge to real-world scenarios. Educative’s “Grokking Modern System Design Interview for Engineers & Managers” delivered on this promise by combining comprehensive coverage of system design, APIs, and coding practices with interactive elements. This blend made the learning process not just informative but also incredibly engaging.

Design Gurus’ course took a practical approach, focusing on System Design and coding patterns specifically tailored for interview preparation. While it lacked the interactive elements of Educative, it still proved valuable by utilizing real-world case studies and pattern-based learning.

Finally, Alex Xu’s “System Design Interview” volumes covered System Design problems and their solutions deeply, making them a great resource for interview prep. The focus here was on detailed textual explanations but with less emphasis on hands-on coding practice.

Key Differences in System Design Learning Resources

Image description

Other learning resources

Here is a list of other helpful blogs and resources I found while preparing for my System Design interview:

Conclusion

Choosing the right System Design resource depends on your learning style and goals. Educative’s “Grokking Modern System Design Interview for Engineers & Managers” offers a comprehensive, interactive approach that covers system design principles extensively and provides practical, hands-on tools. This makes it a strong choice for learners at any level. This is the course I would recommend.

Design Gurus’ “Grokking the System Design Interview” focuses on real-world case studies and pattern recognition, making it ideal for interview prep, though it lacks interactive elements. Alex Xu’s “System Design Interview” volumes provide detailed, well-researched content for those who prefer in-depth reading but may not offer the practical engagement some learners need.

Whether you’re a beginner, intermediate, or advanced learner, these resources can help you master System Design and excel in your tech career.

Top comments (0)