LLD Dojo

The course

One path, in order, from no Java at all to a full graded design round. Work top to bottom. Every chapter says what you need before it and what to read next.

Start here → 1.1 A class, an object, and main()the first chapter

33 of 33 chapters written. Reading counts toward nothing — the graded half is in the app.

Java, from nothing

No Java assumed. By the end of this part you can read and write the Java that every later chapter uses, and you will have compiled and run every example yourself.

1.1 · A class, an object, and main()25 min1.2 · Fields, methods, and constructors30 min1.3 · References, null, and what equals really compares30 min1.4 · Inheritance and polymorphism: extends, super, overriding, and dynamic dispatch45 min1.5 · Interfaces: naming a contract30 min1.6 · Abstract classes, and when an interface is better25 min1.7 · The three collections you need: List, Map, Set35 min1.8 · Generics, as far as you actually need them30 min1.9 · Exceptions, and choosing what to throw30 min1.10 · enum and record: the two types you will reach for most30 min

Objects that hold their shape

The five SOLID principles and the habits underneath them. Each one is taught the same way: working code, a new requirement, the cost that forces a change, then the name of the principle.

2.1 · Encapsulation: deciding who can change your data30 min2.2 · Immutability, and the bugs it deletes30 min2.3 · Composition over inheritance30 min2.4 · Single responsibility, and how to test for it30 min2.5 · Open for extension, closed for modification30 min2.6 · Liskov substitution: keeping a promise a caller relies on30 min2.7 · Interface segregation: the smallest useful contract25 min2.8 · Dependency inversion, and injecting the clock30 min

Patterns you will actually be asked for

One pattern per chapter, in the order they turn up in interviews. Each chapter names the pattern only after you have felt why it exists, and says plainly when using it would be a mistake.

3.1 · Strategy: behaviour you can swap30 min3.2 · Factory: construction kept away from use30 min3.3 · Builder: too many constructor arguments25 min3.4 · Observer: telling other objects something happened30 min3.5 · State: a transition table you can read35 min3.6 · Decorator and Chain of Responsibility35 min3.7 · Template method: a fixed skeleton with holes25 min3.8 · Adapter and Facade: making other people's code fit30 min3.9 · Singleton, and why interviewers hope you avoid it25 min3.10 · Composite and Iterator: trees and traversal30 min

Designing under pressure

Everything above was preparation. This part is the graded half: the eight phases, the 20 problems with measured curveballs, and the 48 reference lessons you are now equipped to read.

4.1 · Reading a vague prompt without panicking30 min4.2 · Saying what you will not build25 min4.3 · Drawing a class diagram fast30 min4.4 · Two threads, one object40 min4.5 · Your first full round, start to finish45 min

After the course

High-level design, algorithms, databases and the rest of the interview loop are not taught here. This page says so plainly, and where to go for each.

What to learn after this course15 min