Notes / Object Oriented Programming

Object Oriented Programming

51 notes

Overview

Object-Oriented Programming for MAANG Interviews

For MAANG interviews, OOP should be taught from first principles to language implementation and design trade-offs, not merely by explaining the four pillars. Interviewers assess whether you understand why OOP exists, when to use it, and its limitations alongside modern paradigms. This book is arranged in chronological learning order — fundamentals first, then advanced design and interview-level discussion.

Parts

00 — Foundations of Object-Oriented Thinking

Where OOP sits among programming paradigms, why it exists at all, and the base vocabulary (objects, classes, state, identity) everything else in this book builds on.

01 — Core Building Blocks

The mechanical pieces a class is made of — fields, methods, constructors, visibility, and the lifecycle an object goes through from creation to collection.

02 — Four Pillars of OOP

Encapsulation, abstraction, inheritance, and polymorphism — the four ideas every OOP explainer leads with, covered here at interview depth rather than as a definitions list.

03 — Relationships Between Objects

How objects reference and own each other — association, aggregation, composition, and dependency — and why picking the wrong one is a common design-interview trap.

04 — Object Design Principles

SOLID and GRASP as the two principle sets that turn “it compiles” into “it’s well designed,” plus the metrics used to measure whether a design actually got better.

05 — Advanced Object-Oriented Concepts

The concepts that separate “used OOP” from “understands OOP” in a senior interview — equality vs. identity, immutability, cloning semantics, and serialization pitfalls.

06 — Memory and Runtime

What actually happens under the hood — stack vs. heap layout, how virtual dispatch is implemented, and how garbage collectors reclaim unreachable objects.

07 — Design Patterns Through OOP

The 23 canonical Gang-of-Four patterns, grouped by intent. Full implementations and trade-offs already live in the Patterns book — these chapters are the OOP-first framing and interview lens.

08 — Language-Specific OOP

How the same OOP ideas actually get implemented — and where they diverge — across Java, C#, C++, Python, and JavaScript/TypeScript.

09 — OOP in Large Systems

What happens to object modeling once it has to survive process boundaries, concurrent access, and years of accumulated shortcuts — DDD, distributed systems, concurrency, and anti-patterns.

10 — Interview Mastery

Where everything above gets applied under interview conditions — conceptual FAQs, classic coding problems, and the OOD interview process itself.

11 — Appendix

Quick-reference material — UML notation, cheat sheets, a pattern-selection matrix, a language-feature comparison table, and a large interview-question bank.

Where This Fits

Study this book alongside the broader interview curriculum, not in isolation:

  • Before OOP: Programming fundamentals, Data Structures, Algorithms.
  • After OOP: Design Patterns, System Design, Distributed Systems, Clean Code, Refactoring, Domain-Driven Design, and Engineering Patterns.

This sequence mirrors how OOP concepts get applied in real software engineering, and how they are commonly evaluated in senior MAANG interviews.

Metadata

AuthorAmit Singh
Scopeobject-oriented-programming
View as page →