Free lessons

Object-Oriented Design Lessons

Every lesson in the Object-oriented design course, free to read. Each skill has a lesson that starts simple and gets technical, and a quick revise page. Practice and progress tracking need a free account.

OOP Fundamentals

The four pillars, and the composition-vs-inheritance call every class hierarchy eventually forces.

SOLID Principles

Five rules of thumb for keeping a class hierarchy changeable as requirements grow, instead of increasingly fragile.

Design Patterns: Creational

Controlling how and when objects get constructed, instead of scattering "new" calls (and their assumptions) everywhere.

Design Patterns: Structural

Composing objects and classes into larger structures - adapting, wrapping, and simplifying - without rewriting what they already do.

Design Patterns: Behavioral

Coordinating how objects interact and hand off responsibility, without hard-coding one object's logic into another's.

UML & Class Design Basics

Reading and drawing the class diagrams that communicate a design before any code gets written.

Data Structure Design

Combining a few data structures so that every required operation meets its own time and space budget - the "design an LRU cache" family of problems.

Design Projects: Classic Systems

Object-oriented design interviews, one project per module - the kind often run as a pair-programming or take-home exercise: clarify the scope, model the entities, build a working core in packages, and extend it when the interviewer pushes.

Design Projects: Concurrent Systems

Design projects where correctness depends on time and threads: rate limiting, an in-memory store with expiry and transactions, a publish-subscribe queue and a task scheduler - each built against an injected clock and tested with many threads at once.

Start the Object-oriented design course free

No card needed. Upgrade to Pro when you want the full problem bank.

Free plan, no card · 7-day Pro trial · Cancel anytime