Learn Low-Level Design: Free Low-Level Design Tutorial in 14 Lessons
Learn Low-Level Design free: 14 lessons in 7 modules, from first programs to interview questions, with exercises judged on OpenJDK 18 and a certificate.
- Language: Low-Level Design
- Runtime: OpenJDK 18
- Modules: 7
- Lessons: 14
- Reading time: about 5 hours
- Cost: Free on every plan, with a certificate
Machine-coding practice: design and code a parking lot, an LRU cache, a vending machine, an elevator, a ticket booking system and Splitwise in Java — judged on how your classes behave, edge cases included.
Syllabus
Module 1: From requirements to classes
Read a problem for nouns and verbs, give a shared fact its own class, keep each rule with its data — then code a library desk and a role system judged on behaviour.
Module 2: LRU cache
A HashMap of nodes plus a doubly linked list for O(1) get and put — then expiry on a logical clock, and hit statistics that a peek must not disturb.
- LRU cache 12 min
- Checkpoint — LRU cache (checkpoint) 30 min
Module 3: Parking lot
Levels of sized spots, a best-fit SpotStrategy, a vehicle factory, tickets and a PricingStrategy swapped while the lot runs.
- Parking lot 12 min
- Checkpoint — Parking lot (checkpoint) 30 min
Module 4: Vending machine
The State pattern with Idle, HasMoney and OutOfStock, greedy change, sold-out slots and restocking — then change from the coins actually in the box.
- Vending machine 12 min
- Checkpoint — Vending machine (checkpoint) 35 min
Module 5: Elevator system
One car under LOOK, then two cars and a dispatcher, then scheduling policies as a Strategy, simulated tick by tick in Java.
Module 6: Movie ticket booking
Seat holds that expire, payments that confirm or release, pricing as a Strategy, and the race for one seat settled by versions, in Java.
Module 7: Expense sharing
Splitwise in Java: money in paise, equal, exact and percent splits as strategies, net balances that add up to zero, and the greedy settle-up.