Object Oriented Programming (OOP) is one of the most important development principles that someone needs to know in tech, whether you are coding as a Software Engineer or managing projects as a Program Manager.
If you are looking for the technical deep dive of Encapsulation, Inheritance, etc. you’re not going to find it here. I’m sorry! This is just meant to show at a high level why it is important and conceptually get you to start understanding what OOP is. If you want to learn more of the technical aspect, fellow nerd, the internet is one tab away…
So imagine this. You’re building an electric car. During production you need the core components for everything to work together and turn into an actual car. That means you need the wheels, the body, the frame, the seats, the battery, etc. The car isn’t done until it has everything it needs to make it work.
How does this apply to OOP? Well, think of your developed application as the car. That’s the end goal that you’re building towards. What you want. What the customer wants.
The wheels and everything else? Those are the objects, the classes that work together to make the actual application. Objects in code can be called by other objects to modify, store, manipulate data easily and abstractly. It’s like driving and pushing the acceleration pedal and then the wheels turn. Simple example but it gets the point across.
Why does it matter in tech?
Imagine if the car you were driving was just one lump of…car. Literally. Just a mass of car. Battery go dead? Get a new car, because you can’t replace it. The idea of a battery as a separate entity of your car just does not exist.
It’s the same way in code. If your application is just one large file thousands of code lines long, I guarantee you that your fellow co-workers/student group members are going to hate you for it. It’s messy, it’s large, it’s hard to maintain, and if something doesn’t work? You got to go through the whole code to fix it. I get chills (the bad kind) just thinking about it.
With OOP, code is broken up into its own object class. The wheel does what a wheel is supposed to do, a battery does what a battery is supposed to do, and a frame does what a frame is supposed to do. In development, having an Object-Oriented design allows for team members to work on different parts of an application and have it all seamlessly integrate together. If something needs to be fixed or updated, you can go straight to that class, change it without touching the larger code base, and everything should be fine and dandy.
For example I can have two classes, an addition file and a subtraction file. Anytime I need to do addition I can just call a method in the addition file and vice versa. This saves me time in repeating code and doing the dreaded A=X+Y every single time. That’s breaking up a project into an object oriented principle.
This cuts back on labor hours, increases efficiency, and improves overall readability regarding the data flow of an application. Even in the long run, it makes it easier to scale from a business perspective.
In a gist, OOP allows you to break up parts of your code and projects into efficient chunks so that it can be added on and replaced if needed. This is crucial for any developer or program manager to know. Keeping this in mind will allow you to make the best design decision and save a lot of time, and hassle, in the future.
Making things modular is the key to any good project. Society doesn’t work by humans acting as drones doing the same repetitive task daily. The human condition flourishes when different perspectives come together to work towards a singular vision.
Shouldn’t your code be the same?