Let's learn about Object Oriented Programming via these 58 free blog posts. They are ordered by HackerNoon reader engagement data. Visit the Learn Repo or LearnRepo.com to find the most read blog posts about any technology.
Object-oriented programming (OOP) is a paradigm based on the concept of 'objects,' which can contain data and code. It is critical for creating modular, reusable, and maintainable software, simplifying the development of complex applications.
1. Asynchronous Initialization in C#: Overcoming Constructor Limitations
Solutions to enable asynchronous initialization in C# constructors, overcoming limitations for efficient code execution.
2. Understanding JavaScript Prototypes and Its Methods
Get deeper understanding what is prototype, Object.setPrototypeOf and obj.
3. SOLID Principles In Java: A Beginner's Guide
SOLID Principles are the principles of objective oriented programming essential to develop scalable softwares. S stands for Single Responsibility Principle ...
4. Implementing an Event Loop in Java for Fun and Profit
An event loop waits and reacts to events. In this article a multithreaded Java implementation is presented. A real world scenario inspired its implementation.
5. Object-Oriented Databases And Their Advantages
Object oriented database is a type of database system that deals with modeling and creation of data as objects. The main advantage of this database is the cons
6. Inheritance vs Composition in JavaScript
Inheritance vs Composition in JavaScript. What is better, when use inheritance, when use composition. We will look at different examples on JS.
7. What is the Difference Between Arrays, Lists, and Dictionaries in Python?
Comparing the different data storage types in Python.
8. Extending Laravel Artisan Commands

9. Design Pattern: Strategy Pattern in Practice
Learn strategy design patterns with practical examples. Why and how to use strategy patterns in software design.
10. How to Use Memes to Understand Object Oriented Programming
OOP languages, like JavaScript and Python, organize software design around data that is formatted in objects, rather than function or logic.
11. To Understand Object Oriented Programming, Think About Programs a Little Differently
A guided walkthrough of an object oriented program.
12. Cheap Architecture vs Clean Architecture
How abstract is too abstract?
13. Uncover the Alias Pattern
The Alias pattern minds two issues. Extending how a final class builds its objects.
14. Object-Oriented Programming Explained in 5 Levels of Difficulty
I will explain Object-Oriented Programming (OOP) on Five Levels (a child, a teen, a college student, a grad student, and an expert).
15. Playwright on Steroids: Overcoming Limits With Object-Oriented Programming
Playwright is not thread-safe. This limit, from performance standpoint, is bad. But we can overcome it with object-oriented programming.
16. 3 Simple Rules to Writing Better Code Instantly
Learn how you can improve your code quality in an instant following 3 simple rules that we cal
17. Web Components Exposed: Empowering Frontend Developers For Unparalleled Success
Unleash the power of Web Components and revolutionize your web development workflow. Learn to create reusable elements and enhance your apps effortlessly.
18. How to Create a Dependency Aggregate Class to Manage DI: Clearly Exemplified
Dependency injection (DI) is a wonderful thing. Simply add your dependency as a parameter to the constructor (most commonly) of your class, register it with you DI container, and away you go - the DI container will manage the rest. Some of the key benefits of DI are: greater testability, greater maintainability, and greater reusability.
19. Origin of Interface in Object Oriented Programming
Interface is mostly viewed as a useful feature to write more maintainable code. But the concept of Interface developed to address a different issue with C++.
20. Implementing Descriptors in Your Python Code
Descriptors are one of the features that make Python's OOP so unique. They allow for powerful customization of attribute access and manipulation.
21. How to Find the Stinky Parts of Your Code [Part XVII]
It smells because there are likely many instances where it could be edited or improved.
22. Does Golang Follow the Object Oriented Programming Paradigm?
Many are wondering whether Golang is a language that can apply the Object Oriented Programming paradigm. Let's discuss this here.
23. How to Find The Stinky Parts of Your Code (Part IX)
Yet more code smells? Aren't them enough?
24. Actor Model For Object Oriented Programmers
Actor model introduction to object oriented programmers. Rethink your software development model with fault tolerant, concurrent and scalable by architecture.
25. How I Built a Simple Report Card Program in Java for 15 Subjects Part 2
Write a program to take marks of 15 subjects from the user and display the Total, Percentage, Highest Marks, Average, and Remarks.
26. OOP in Python: Understanding Private and Public Methods
This blog post is part of a series of tutorials on Object-Oriented Programming in Python 3.0. We will try to understand the types of methods and their uses.
27. Object Thinking, Boundaries, and Reality
But when we introduce extraneous abstractions we reduce the goodness.
28. What Is the Use of a Linked List Class?
Whether you're a beginner programmer or an experienced developer, understanding the linked list class is essential.
29. Your First Programming Language Greatly Influences How You Think About Code
OOP, inheritance, and subtyping may have specific meanings that don't translate into other languages, depending on the first language you learn.
30. Researchers Revisit Codata, Dependent Types, and the Limits of the Expression Problem
A deep dive into codata, dependent types, and defunctionalization—reframing the expression problem through data–codata duality.
31. Deriving Dependently-Typed OOP from First Principles
A new calculus unifies functional and object-oriented paradigms in dependently typed languages using duality and defunctionalization.
32. Java: The Object Equality Problem
I was writing some Java test code when I faced up the voracity of the equals method. It presents, despite its ostensible simplicity, a tricky problem.
33. How a 50-Year-Old Programming Model Became Essential for Modern Tech
The Actor Model was created in 1973. It's designed for high concurrency, scalability and fault tolerance.
34. Objects & Pursuit of Happiness: Understanding Object Oriented Programming (OOP)
In a good object-oriented system, each object has the right responsibilities.
35. An Introduction to F# as Microsoft's / .NET's Answer to a Functional-First Programming Language
Recently I've been learning how to write code in F#. For those who haven't heard of it, F# is Microsoft's/.NET's answer to a functional-first programming language. My motivation was to learn a functional programming language that would make coding for scientific computing and data analysis more expressive, concise, and maintainable, all while fitting seamlessly into the .NET ecosystem that I already know and love. F# fits that bill perfectly.
36. Designing a Flexible Ability System in Games Using the Chain of Responsibility Pattern
Game abilities are built from reusable checks (mana, cooldown, etc.) linked in a chain. Execution is handled separately. This makes abilities modular, testab...
37. Refactoring: Remove Setters #CodeSmell
Warning: Setters Considered Smelly
38. Aspect Oriented Programming Matters More Than You Think
AOP is useful in tackling cross cutting concerns which are fully incorporated in the development of an application but cannot be attributed to a specific class.
39. Object-oriented Programming by Example
Object-oriented programming (OOP) is a programming model that organizes software around objects(data) and object manipulation.
40. Object Design Checklist: An Index on Software Design Articles
Important concepts about Object-Oriented Programming
41. Why Judgmental Equality Fails Under Defunctionalization
Exploring how defunctionalization breaks judgmental and eta equality—and the naming-based solution that preserves type safety.
42. A Formal Core for Dependent Data and Codata with Type Soundness Guarantees
A formal core calculus for dependent data and codata with pattern matching, copatterns, call-by-value semantics, and type soundness proofs.
43. Why Object-Oriented Programming in C++ Matters
In this article, I will explain classes, objects, access modifiers, constructors, encapsulation, abstraction, inheritance, and polymorphism in C++.
44. 7 Key Concepts to Test Your .NET Skills
Explore essential C# concepts for .NET developers, from IEnumerable vs. ICollection to async/await, Dependency Injection, and exception handling in .NET Core.
45. The Proof Expression Problem, Reimagined Through Object-Oriented Lenses
A case study showing how dependently typed OOP enables modular web servers, extensible routes, and type-level enforcement of HTTP properties.
46. 5 Simplified Concepts For Beginners in C#
Considering C# as you get started on your programming journey? This article is focused on C# for beginners, and I've included 5 concepts from C# with code!
47. Rethinking OOP Through Dependent Types and Codata
A deep dive into dependently typed object-oriented programming, codata design, self-parameters, and verified interfaces.
48. Writing Scalable and Maintainable React Code with SOLID Principles
Learn how to apply SOLID principles in React to write scalable, maintainable, and reusable components for cleaner and more efficient code.
49. Refactoring 030 - How to Avoid Accidental Redundancy

- Identify methods that receive owned attributes
- Remove those parameters from the method signature
- Replace usage with direct access to the attribute
50. Code Smell 286 - Parent-Child Method Overlaps
Avoid using private methods in parent classes with names that child classes can use.
51. Programming Paradigms: All the Things We’ve Learned Not To Do
Programming paradigms don't give freedom—they take it away. Here's why Structured, OOP, and Functional might be the last paradigms we ever get.
52. Rethinking Data and Codata Through Matrix Transposition
A formal study shows de- and refunctionalization preserve typing and program well-formedness in a dependently typed language.
53. Object Creation: The Issues I Faced and the Patterns That Helped Me
In this post, I've described two usages of the GoF's creational patterns, improving maintainability and ensuring objects are fully initialized
54. Exploring Dart Fundamentals - Part 5: Inheritance and Method Overriding
Learn about inheritance in object-oriented programming and how subclassing and superclassing work.
55. Using Closures to Extend Class Behavior Without Breaking Encapsulation
Avoid bloated interfaces and inverted dependencies. Learn how closures preserve encapsulation and keep your Kotlin codebase clean and stable.
56. Laravel's Strategy Pattern: The Manager Under the Hood
Have you ever wondered how Laravel switches between different drivers' implementations? Well, hang tight, we will learn how!
57. Understanding Dependency Injection in Object-Oriented Programming
Explore how OOP handles dependencies—from constructor injection to Kotlin’s new context parameters—and learn which approach fits your code best.
58. How To Simplify Type Conversions with Implicit Operators in C#
Learn how to perform implicit conversions by using implicit operators in C#. This is a helpful feature that can enhance readability when done with care.
Thank you for checking out the 58 most read blog posts about Object Oriented Programming on HackerNoon.
Visit the /Learn Repo to find the most read blog posts about any technology.
