Skip to main content

OOP from non-technical angle

 If you have been exposed to software coding/designing  then you probably have heard about OOP. OOP - Object Oriented Programming, is a programming paradigm that builds the structure of application and handles communication between modules by the usage of classes and objects. 

Now, in simple words. Let's start with comparison. There are other programming paradigms as Functional programming or Procedural programming. So, why OOP is overwhelmingly popular compared to other paradigms whereas almost all popular programming languages(PL) are either fully designed based on OOP concepts or partially supports it. 

First of all, OOP is one of the most researched and consistent paradigms(snowball effect). Where have it started? The main influencers of the start of hype around OOP were big tech companies and PLs they primarily used. Microsoft with C++ (later with C#), Oracle with Java, Apple with Objective C. But, we still have not found the root reason. Why these companies have chosen/designed PLs based on OOP. Back to history, OOP offered better structured code for human perception. Therefore, code written according to OOP principles was more readable, easier to understand, and as a result cheaper to modify and maintain for the owners/business



So, why we love (or hate😓) OOP? It allows to create structures (called class) that stores all data and functionality in single place. The way OOP works is similar to way we perceive real world. For example: "Apple, it has color, taste, size, weight but for human it is a single object. We do not store all those data separated from the actual apple. If we need it's weight - we use scale, it's taste - we can eat it. Only thing we need is the actual apple and some tool to extract data. So for OOP, we just need the actual object and right method (function) to access the required data". It was a very simple and technically inaccurate explanation. However, I hope I was able to explain the basic idea of OOP in non-technical language.

In reality, OOP is a sophisticated paradigm with numerous basics and principles. Exposure to OOP may take long time for beginners and requires technical knowledge and experience. But more on that in next posts... 

Comments

Popular posts from this blog

A little bit about myself

Let's get acquainted! Junior student at Inha University in Tashkent, Software Engineer at Exadel, web development enthusiast, and just a cool guy😅. But, you can just call me Abdujabbor. In this blog we will talk about development, engineering, programming, and IT in general. If words like Frontend, SOLID, CI/CD do not scare you, you are in right place. If these words still scare you, stay tuned anyway, it is the best time to start.  In the first post, I will talk about my experience in a programming, and briefly introduce to technologies I used and my interests. My first experience in programming was in high school with C++. Like a true oldschool programmer I decided to start with low level programming language(PL),  and also because it was the only non-fiction book I found at home while I was sick for a month. Reading the book and writing code was quite fun and challenging. When my first program successfully compiled and showed output I felt so satisfied, and understood what prof

How? Where? When?

 This post will(or at least tries to) answer to the question from the title in context of starting career in IT.  To start with, let's discuss some common misconceptions: You need to have an inborn talent to become IT specialist - IT jobs are nothing but regular jobs as jobs in Medicine, Sport or Law. And like doctors, sportsmen or lawyer you need to be engaged to what you do in order to become a qualified specialist.  You need to have full technical knowledge to work in IT - image of geek programmers is left at 60s. Now, IT is more than just development software. You may be an accountant, HR manger, recruiter, project manager, QA, consultant, and still work in IT. For this positions you do not need to fully understand college course of mathematics. Taking into consideration recent trends, even for engineers soft skills and adaptability may be more preferable than specific technical skills.       How to start? There plenty of resources on the web that teach specific skillsets req