Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🐍 Python Object-Oriented Programming (OOP) β€” 30 Days Mastery

A complete beginner β†’ advanced β†’ project-level Python OOP learning journey.

This repository is designed to help you learn OOP like a software engineer, not just theory β€” but with real coding, projects, and system design thinking.


πŸ“Œ Overview

πŸ’‘ What is this repository?

This is a structured 30-day Python OOP roadmap that takes you from:

  • Basic class & object concepts
  • To advanced OOP principles (SOLID, design patterns)
  • To real-world system design
  • To mini backend-style projects

Each day contains:

  • Simple explanation
  • Code examples
  • Practice ideas
  • Real-world thinking

πŸš€ Why this repo exists

Most learners stop at theory.

This repo focuses on:

βœ” Real-world OOP thinking
βœ” Clean architecture mindset
βœ” Backend-style system design
βœ” Practical coding skills
βœ” Interview-ready knowledge


πŸ“š 30 Days Learning Roadmap


🧠 Day 01 β€” OOP Basics + Class & Object

  • What is OOP & why it matters
  • Class vs Object
  • Creating classes and objects
  • Attributes basics

🧠 Day 02 β€” Constructor & Instance Methods

  • __init__() constructor
  • self keyword
  • Instance methods
  • Multiple objects

🧠 Day 03 β€” Attributes Deep Dive

  • Instance vs Class variables
  • Default values
  • Dynamic attributes
  • __str__() and __repr__()

πŸ” Day 04 β€” Encapsulation ⭐

  • Public / Protected / Private
  • Getter & Setter
  • Property usage

🧬 Day 05 β€” Inheritance ⭐

  • Single & multilevel inheritance
  • super() keyword
  • Code reuse

🧬 Day 06 β€” Multiple Inheritance + MRO ⭐

  • Multiple inheritance
  • Method Resolution Order (MRO)
  • Diamond problem

🎭 Day 07 β€” Polymorphism ⭐

  • Method overriding
  • Duck typing
  • Runtime behavior

🧱 Day 08 β€” Abstraction ⭐

  • Abstract classes
  • abc module
  • Interface-style design

βš™οΈ Day 09 β€” Magic / Dunder Methods ⭐

  • __str__, __repr__
  • Operator overloading basics

βš™οΈ Day 10 β€” Advanced Operator Overloading

  • Custom operators
  • Real-world examples

🧩 Day 11 β€” Composition vs Inheritance ⭐

  • "is-a" vs "has-a"
  • Composition design pattern

πŸ”— Day 12 β€” Object Relationships

  • Association
  • Aggregation
  • Composition

πŸ—οΈ Day 13 β€” Class & Static Methods

  • @classmethod
  • @staticmethod
  • Factory methods

🎨 Day 14 β€” Decorators in OOP ⭐

  • Method decorators
  • @property, @setter

🧾 Day 15 β€” Data Classes ⭐

  • @dataclass
  • Auto methods generation

⚑ Day 16 β€” Slots & Memory Optimization

  • __slots__
  • Performance improvement

⚠️ Day 17 β€” Exception Handling in OOP

  • Custom exceptions
  • Safe class design

πŸ” Day 18 β€” Iterators in OOP

  • __iter__()
  • __next__()

⚑ Day 19 β€” Generators in OOP

  • Lazy evaluation
  • Performance benefits

🧠 Day 20 β€” Metaclasses (Advanced πŸš€)

  • type()
  • Custom metaclass basics

πŸ“ Day 21 β€” Design Principles ⭐

  • DRY
  • KISS
  • SOLID (intro)

πŸ—οΈ Day 22 β€” Design Patterns (Basic Intro)

  • Singleton
  • Factory
  • Strategy

πŸ“ Day 23 β€” Project Structure & Architecture

  • Folder structure
  • Modules & packages
  • Clean architecture

πŸ§ͺ Day 24 β€” Testing OOP Code

  • Unit testing mindset
  • Dependency injection basics

πŸ’° Day 25 β€” Mini Project 1: Bank System

  • Encapsulation
  • Inheritance
  • Real-world simulation

πŸ›’ Day 26 β€” Mini Project 2: E-commerce Cart

  • Composition
  • Polymorphism
  • Product system design

πŸ“š Day 27 β€” Mini Project 3: CLI Library System

  • File handling
  • OOP + persistence
  • CLI app design

🧹 Day 28 β€” Code Review & Optimization

  • Refactoring techniques
  • Clean code principles
  • Better architecture

🏒 Day 29 β€” Real-World System Design

  • Backend thinking
  • E-commerce architecture
  • Service layer design

🏁 Day 30 β€” Final Revision & Mastery

  • Full revision
  • Final mini system
  • GitHub-ready project

🧠 What you will learn from this repo

βœ” Python OOP from scratch
βœ” Real-world backend thinking
βœ” Clean architecture principles
βœ” Design patterns basics
βœ” System design fundamentals
βœ” Mini project building skills
βœ” Code refactoring mindset


πŸš€ Final Goal

After completing this repo, you will be able to:

βœ” Build backend systems using OOP
βœ” Design scalable applications
βœ” Understand software architecture
βœ” Write clean, professional Python code
βœ” Prepare for interviews & real jobs


πŸ“„ License

This project is licensed under the MIT License. See the LICENSE file for details.


Author

Engr. Md Monjur Bakth Mazumder

πŸŽ“ Secondary School Certificate (SSC) from Shah Helal High School

πŸŽ“ Diploma in Computer Science and Technology from Moulvibazar Polytechnic Institute (MPI)

πŸŽ“ BSc in Computer Science & Engineering (CSE) (Ongoing) at Sylhet International University (SIU)

πŸ“§ Email: monjurmbm404@gmail.com


⭐ Support the Project

If you found this repository helpful, please consider giving it a ⭐ Star. It helps others discover the project and motivates future development.


🌐 Connect with Me

Platform Link
πŸ’» GitHub https://github.com/monjurmbm404
πŸ’Ό LinkedIn https://linkedin.com/in/monjurmbm404
🧩 LeetCode https://leetcode.com/u/monjurmbm404
βš”οΈ Codeforces https://codeforces.com/profile/monjurmbm404
🍽️ CodeChef https://www.codechef.com/users/monjurmbm404
πŸ† VJudge https://vjudge.net/user/monjurmbm404
πŸ“˜ Facebook https://www.facebook.com/monjurmbm404
🐦 X (Twitter) https://x.com/monjurmbm404
▢️ YouTube https://youtube.com/@monjurmbm404
✍️ Medium https://medium.com/@monjurmbm404

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages