inflearn logo
inflearn logo

The Essence of Object-Orientation in 30 Minutes

Many developers say they have learned object-oriented programming. However, in reality, most only know the "syntax" of classes, inheritance, and polymorphism. This lecture is not a syntax explanation. ✔ Why did object-oriented programming emerge? ✔ What is an object, and why is 'responsibility' important? ✔ Why does polymorphism create scalable structures? ✔ How does object-oriented programming connect to computer science? I will summarize the "real object-oriented thinking" I felt while personally experiencing system design in just 30 minutes. Through this lecture, you will come to understand object-oriented programming not as a 'coding style,' but as a 'design strategy for controlling complexity.'

79 learners are taking this course

Level Beginner

Course period Unlimited

oop
oop
Interview
Interview
software-design
software-design
solid
solid
Software Engineering
Software Engineering
oop
oop
Interview
Interview
software-design
software-design
solid
solid
Software Engineering
Software Engineering
Thumbnail

What you will gain after the course

  • You will come to understand object-orientation as "design thinking" rather than just "syntax."

  • You will be able to clearly distinguish between inheritance and composition.

  • You will be able to explain why polymorphism creates scalability.

  • You will come to understand the necessity of interface-based design.

  • You will be able to explain why object-oriented programming is a strategy for complexity control.

The Essence of Object-Oriented Programming in 30 Minutes

A complete guide to OOP: Learning through design philosophy, not just syntax.

You think you've learned object-oriented programming,
but don't you have these concerns when you actually try to design code?

  • When should I use inheritance versus composition?

  • I memorized SOLID, but why can't I apply it to real-world practice?

  • Why is it said that polymorphism creates scalability?

  • Why is object-oriented programming so important in interviews?

Many developers know the syntax of object-oriented programming, but they don't understand
exactly why they should design it that way.

This course is not about explaining syntax.
This course is about understanding the essence of object-oriented programming.



Object-oriented programming is not a technology, but a "complexity control strategy."

Object-oriented is not just a coding style.
Object-oriented is a strategy for managing complexity in software design.

This lecture covers the following:

  • Why are objects composed of state, behavior, and responsibility?

  • Why should objects be designed based on messages?

  • Why does polymorphism create an extensible structure?

  • What is the relationship between object-orientation and ADT?

  • Why are the SOLID principles treated as important in software engineering?

Understanding object-oriented programming from a software design perspective
will completely change how you view code.


Especially recommended for these types of people

  • Those who have learned object-oriented programming but still write code based on "intuition"

  • Those who want to systematically understand software design

  • Those who want to clearly understand why SOLID is necessary

  • Those who are afraid of object-oriented programming questions in development interviews

  • Those who want to create structures that are easy to maintain in practice

I highly recommend this to those who want to answer the question
"What is object-oriented programming?"
from a perspective of philosophy and design, especially in development interviews.


What you will gain from this course

  • You will be able to explain object-oriented programming as a "design philosophy" rather than just "syntax."

  • You will gain a clear understanding of the difference between inheritance and composition.

  • You will be able to explain the necessity of abstraction and interface-based design.

  • You will come to understand the SOLID principles through context rather than rote memorization.

  • You will be able to explain why object-oriented programming is a strategy for controlling complexity.


Lecture Curriculum

  • Lecture 1: Why Object-Oriented Programming Emerged — Thinking in Terms of Responsibilities and Messages

  • Lecture 2: Encapsulation, Inheritance vs. Composition, Polymorphism — The Essence of Mechanisms

  • Lecture 3: Abstraction, ADT, SOLID — Completing the Computer Science Perspective

It is a short 30 minutes,
but I will summarize only the core essentials of object-oriented programming for you.


Recommended for
these people

Who is this course right for?

  • Developers who have learned object-oriented programming but still write code based on "intuition"

  • Those who are confused about when to use inheritance versus composition

  • For those who don't understand why SOLID is necessary

  • Job seekers who are afraid of object-oriented questions in design interviews

  • A developer who uses classes but feels they haven't understood object-oriented programming.

Need to know before starting?

  • It is helpful to have an understanding of the concepts of variables and functions.

  • If you have experience using Java, C++, Python, or any other language at least once, you will understand it more quickly.

  • However, knowledge of a specific language is not required.

Hello
This is kmmom591

312

Learners

27

Reviews

2

Answers

4.6

Rating

7

Courses

Hello.
I am a developer working as a defense researcher and SW developer at a defense contractor.

I majored in Computer Science in college,
and since joining a defense contractor, I have been participating in actual defense SW development projects.
Currently, I develop software linked to weapon systems and defense systems,
performing system development based on C++ and Java.

More

Curriculum

All

3 lectures ∙ (21min)

Published: 
Last updated: 

Reviews

Not enough reviews.
Please write a valuable review that helps everyone!

kmmom591's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!

Free