study-index.md

🎯 Object-Oriented Programming β€” Complete Study Roadmap

Goal: Master OOP from zero to interview-ready Language: C++ (with Java equivalents noted) Total Estimated Time: 2-3 weeks of focused study


Learning Path

Week 1: Foundations β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ 01 - Classes, │────►│ 02 - Encapsulation & │────►│ 03 - Inheritanceβ”‚ β”‚ Objects, Ctors β”‚ β”‚ Abstraction β”‚ β”‚ β”‚ β”‚ (2 days) β”‚ β”‚ (2 days) β”‚ β”‚ (2 days) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ Week 2: Core Principles β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ 05 - SOLID │◄────│ 04 - Polymorphism │◄────│ β”‚ β”‚ Principles β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ (2 days) β”‚ β”‚ (2 days) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ Week 3: Mastery β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ 06 - Design │────►│ 07 - Advanced OOP │────►│ 08 - Real-World β”‚ β”‚ Patterns β”‚ β”‚ β”‚ β”‚ & Interviews β”‚ β”‚ (3 days) β”‚ β”‚ (2 days) β”‚ β”‚ (2 days) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Module Overview

#ModuleTopicsEst. Time
01Classes, Objects & ConstructorsClass vs Object, constructors (default, parameterized, copy, move), destructors, this pointer, static members, const correctness2 days
02Encapsulation & AbstractionAccess modifiers, getters/setters, data hiding, abstract classes, interfaces, friend, information hiding2 days
03InheritanceSingle, multiple, multilevel, hierarchical, hybrid, diamond problem, virtual inheritance, override, final2 days
04PolymorphismCompile-time (overloading, templates), runtime (virtual functions, vtable, dynamic dispatch), operator overloading, RTTI2 days
05SOLID PrinciplesSRP, OCP, LSP, ISP, DIP β€” each with real-world C++ examples and violations2 days
06Design PatternsCreational (Singleton, Factory, Builder), Structural (Adapter, Decorator, Proxy), Behavioral (Observer, Strategy, Command)3 days
07Advanced OOPComposition vs Inheritance, Mixins (CRTP), Abstract vs Interface, DI, RAII, Rule of 3/5/0, smart pointers2 days
08Real-World & Interview PrepProject walkthroughs, UML basics, 100+ interview questions, coding challenges2 days

The Four Pillars of OOP

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ OBJECT-ORIENTED PROGRAMMING β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ ENCAPSULATION β”‚ ABSTRACTION β”‚ INHERITANCE β”‚ POLYMORPHISMβ”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Bundle data + β”‚ Hide complex β”‚ Reuse code β”‚ One inter- β”‚ β”‚ methods into β”‚ implementationβ”‚ from parent β”‚ face, many β”‚ β”‚ a single unit β”‚ Show only whatβ”‚ classes β”‚ forms β”‚ β”‚ β”‚ is needed β”‚ β”‚ β”‚ β”‚ Access β”‚ Abstract β”‚ Base/Derived β”‚ Overloading β”‚ β”‚ Modifiers β”‚ Classes β”‚ Classes β”‚ Overriding β”‚ β”‚ Getters/ β”‚ Interfaces β”‚ Virtual β”‚ Virtual β”‚ β”‚ Setters β”‚ Pure Virtual β”‚ Inheritance β”‚ Functions β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

How to Use This Curriculum

  1. Follow the order β€” each module builds on the previous
  2. Type every code example β€” don't just read, compile and run
  3. Solve practice problems before reading solutions
  4. Answer interview questions out loud (practice explaining)
  5. Build the real-world project in Module 08

Interview Readiness Checklist

Fundamentals: [ ] Can explain class vs object with an example [ ] Understand all constructor types (default, param, copy, move) [ ] Know the Rule of 3/5/0 [ ] Can explain the `this` pointer and static members Pillars: [ ] Can explain encapsulation with getters/setters [ ] Understand abstraction vs encapsulation (they're different!) [ ] Can explain all inheritance types and the diamond problem [ ] Understand compile-time vs runtime polymorphism [ ] Can explain how vtable and vptr work Principles: [ ] Can explain all 5 SOLID principles with examples [ ] Can identify violations and suggest fixes [ ] Understand Liskov Substitution deeply (the tricky one) Patterns: [ ] Know at least Singleton, Factory, Observer, Strategy [ ] Can implement any pattern from memory [ ] Know when to use which pattern Advanced: [ ] Prefer composition over inheritance (and know why) [ ] Understand RAII and smart pointers [ ] Can design a class hierarchy for a real-world problem [ ] Can draw basic UML class diagrams