Objects First: OOP Fundamentals
Object-oriented programming from why it exists through SOLID, composition vs. inheritance, anti-patterns, and applied design exercises. TypeScript and Python.
Start reading →01Chapter 1: Why Object Orientation Exists02Chapter 2: Classes, Objects, and Instances, Precisely Defined03Chapter 3: The Four Pillars I: Encapsulation04Chapter 4: The Four Pillars II: Abstraction05Chapter 5: The Four Pillars III: Inheritance06Chapter 6: The Four Pillars IV: Polymorphism07Chapter 7: Composition vs. Inheritance08Chapter 8: Interfaces and Abstract Classes: When to Use Which09Chapter 9: SOLID, Part 1: Single Responsibility & Open/Closed10Chapter 10: SOLID, Part 2: Liskov Substitution, Interface Segregation, Dependency Inversion11Chapter 11: Basic UML for Communicating Design12Chapter 12: Anti-Patterns: God Objects, Tight Coupling, Deep Hierarchies, the Fragile Base Class, Anemic Domain Models13Chapter 13: OOP Idioms Across TypeScript and Python — and Where OOP Is the Wrong Tool14Chapter 14: When OOP Breaks Down: Real-World Failure Modes15Chapter 15: Design Exercise: Parking Lot System16Chapter 16: Design Exercise: Library Management System17Chapter 17: Design Exercise: Elevator Controller18Chapter 18: OOP in Interviews: What a Strong Answer Looks Like
Other tracks
Python DSA — CoursePython DSA — Interview PrepPython DSA — BeginnerPython Syntax & DSA ReferenceGit MasteryCognitive Skills & Mental ToolsCode Optimization RulesPatterns of Good DesignUnder the Hood: Operating SystemsHow the Bytes Travel: NetworkingData at Rest, Data in Motion: DatabasesSharing Time: Concurrency & MultithreadingClean by Default: Coding StandardsThe Review: Code ReviewFrom Idea to Production: the SDLCDesigning at Scale: System DesignWhiteboard to Blueprint: HLD & LLDBuilt to Last: Reliability & ScalingTell Me About a Time: Behavioral Interviews