Hook

Their other posts in the index, biggest breakout first.
You need to know this before learning system design. There are three phases. Phase one is the building blocks. For this phase, start with the system design primer on GitHub. This is where you learn the Lego blocks of system design. So load balancers, caching, sharding, and that stuff. Phase two is going deep. Read Designing Data-Intensive Applications. Now that you know the basic concepts, this book actually shows you how things work under the hood. This book is literally what separates people who know system design from people who actually understand it. Next is where most people fail. Phase three is interview reps. You get to practice. Just like LeetCode, system design got to be practiced. So use Hello Interview or ByteByteGo. They give you real system design problems with fully worked solutions. That way you can learn how to think through an answer. But this only works if you did the first two phases. Otherwise you'll just be memorizing things you don't understand. Do them in order and save this.