Professional OOP Training Program
📝 Register Now“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” - Martin Fowler
This training program is designed to equip aspiring software developers with a solid foundation in Object-Oriented Programming (OOP), OOAD — a critical skill for building reusable and maintainable software.
Since 2008, this flagship training program by Zohirul Alam Tiemoon has empowered over 10,000 professionals — many of whom are now making a significant impact in both local and global software development. Join the legacy and level up your coding career!
🔧 Focus on Principles
This course will also focus on the SOLID and other OOP principles. These principles guide developers in creating flexible, reusable, and maintainable code, which is crucial for tackling real-world challenges in software engineering and advancing your career as a professional developer.
🛠️ Code Quality Enhancement
At the end of this course, we will identify common code smells—a sign of deeper problems in the code—and learn effective refactoring techniques to resolve these issues. Through practical examples, participants will discover how to enhance code quality, ensuring maintainability, and reducing technical debt.
Join the 8th batch of this exclusive training program! Don’t miss out on this opportunity to enhance your skills and grow professionally.
🌟 Enroll Now! Limited Spots Available! 🌟
- No of Seats: 15. Register Today: Register here
- Deadline: Wednesday, June 18, 2025
- Program Starts: Friday, June 20, 2025
- Registration Fee: 4,000 BDT (🔥10% OFF i.e. 3600 BDT – Register by June 10, 2025!)
- Class Schedule: Friday, Sunday, & Tuesday (9:00 PM to 11:00 PM)
- Mode: 12 Live online sessions via Google Meet
- Session recordings and resources will be provided
- Prerequisite: Basic knowledge of any programming language
What you will learn
- Core OOP Concepts: encapsulation, inheritance, polymorphism, and abstraction
- Reusable & Maintainable Code using classes and objects
- Class Design and relationships
- Applying SOLID Principles
- Code Quality Improvement via best practices
- Code Smells & Refactoring techniques
- Hands-On Experience with C++, C#, and Java
Course Outline
Quick overview on C#/Java/Python/PHP
- Language basics
- Data types, Loops, Conditional statements, Methods
- Collections: Array, List, ArrayList, Dictionary
Understanding OOP
- What and Why of OOP
- Class & Object, Fields, Properties, Methods
- Constructors, Overloading, Reference Types
- Delegation, Association, Inheritance, Overriding
- Constructor chaining, Runtime & Static Polymorphism, Generics
- Interfaces
OOP Principles - SOLID & More
- Introduction to SOLID Principles
- Single Responsibility Principle (SRP)
- Open/Closed Principle (OCP)
- Liskov Substitution Principle (LSP)
- Interface Segregation Principle (ISP)
- Dependency Inversion Principle (DIP)
- Tell Don’t Ask
- DRY (Don’t Repeat Yourself)
- The Law of Demeter
- YAGNI (You aren’t Gonna Need It)
- Good practices for quality code
Code Smells
- Long Method
- Large Class
- Primitive Obsession
- Long Parameter List
- Data Clumps
- Refused Bequest
- Switch Statements
- Temporary Field
- Comments
- Duplicate Code
- Dead Code
- Lazy Class
- Speculative Generality
- Feature Envy
- Inappropriate Name
- Middle Man
Refactoring Techniques
- Extract/Inline Method
- Extract Variable / Inline Temp
- Replace Temp with Query
- Replace Method with Method Object
- Substitute Algorithm
- Move Method/Field
- Extract/Inline Class
- Remove Middle Man
- Encapsulate Field/Collection
- Replace Type Code techniques
- Replace Subclass with Fields
- Replace Conditional with Polymorphism
- Introduce Null Object/Assertion
- Add/Remove Parameter
- Rename Method
- Introduce Parameter Object
- Preserve Whole Object
- Replace Constructor with Factory Method
- Replace Error Code with Exception
- Replace Exception with Test
- Pull Up/Push Down (Field, Method, Constructor)
- Extract Subclass/Superclass/Interface
- Collapse Hierarchy
- Replace Inheritance with Delegation and vice versa
💳 Payment Methods
Please fill up your information here: Register here and make your payment using one of the following methods:
- bKash (Send Money): 01711281825
- Bank Transfer:
- Name: Zohirul Alam Tiemoon
- Saving Account: 0443201000014597
- Karwan Bazar Branch
- Routing Number: 245262537
- United Commercial Bank (UCB) Limited
Once you've made the payment, kindly send a screenshot or the transaction details to WhatsApp: 01711281825.
👨🏫 Program Coach
Zohirul Alam Tiemoon