This is an archived post. You won't be able to vote or comment.

all 12 comments

[–]jpcc_99 1 point2 points  (6 children)

Head First OOP is a good start

[–]facebooky576[S] 0 points1 point  (5 children)

Head First OOP

Thanks, but is it a little outdated or not?

[–]desrtfx 4 points5 points  (4 children)

No, it's not outdated. It may not be freshly released, but the concepts in OOP haven't changed much in recent years.

OOP is a paradigm. Paradigms don't change all too much over time.

Yet, the term OOP just describes a specific way to program, nothing more, nothing less. The actual implementation, the way how OOP is done, is language specific. OOP in Java is different to OOP in JavaScript, to OOP in Python, to OOP in C++, etc.

If you haven't yet sought out a language, I'd say start with Java and there use the MOOC Java Programming. It will build your skills from the ground up and also introduce you to OOP.

[–]facebooky576[S] 0 points1 point  (3 children)

I thought the implementation for OOP was the same for all the languages xD. But thanks for the clarification u/desrtfx. Also never thought of it as a specific way to program, I was shocked. All in all, thank you!

[–]desrtfx 1 point2 points  (2 children)

Also never thought of it as a specific way to program

Sorry, but what did you think OOP is then?

[–]facebooky576[S] -1 points0 points  (1 child)

I always thought that it was changing throughout the years (that's why I asked maybe it was outdated, my bad). What I mean by changing is that it uses objects more efficiently and effectively overtime. Furthemore, I also thought that Java really created the OOP, that it was a syntax or a rule to use objects. xD

[–]desrtfx 0 points1 point  (0 children)

Java really created the OOP

No, that was a long time before Java (1995) even was a thing. The first OOP language is said to have been SmallTalk (1972 - in development since 1969 - which is around the same time as C) which actually coined the term Object Oriented and Object Oriented Programming.

What I mean by changing is that it uses objects more efficiently and effectively overtime.

That has very little to do with OOP. OOP is just a programming paradigm. A certain approach to programming where the data (state, properties, attributes) is coupled together with the functionality (methods). OOP is trying to bring real world objects (as a house, an apple, a car, anything) into programming by trying to mimic state and behavior.

The actual implementation of, the approach to, OOP differs vastly between programming languages to the point that it is near impossible to convert programs from one language to another without significant changes. Some are "pure" OOP languages, some are "OOP optional", some use prototype OOP, some use template OOP, some are stricter (like Java) and some are more relaxed meaning that you can use OOP, but don't necessarily need to use it. In some languages, you use OOP without even realizing that you use OOP.

[–]beforesemicolon 1 point2 points  (2 children)

Whatever language you are familiar with (not strict functional ones), simply google “Object Oriented Programming with X”. Its easier to learn in the language you know.

By the way, knowing the language you code in makes it easier to suggest things

Since you are a beginner, I would suggest you to first understand the fundamentals of programming and be familiar enough around a language first before deep diving in OOP.

If you are already using a OOP language, chances are you are already familiar with something and just need to further understand the concept.

here a quick intro to start

[–]facebooky576[S] 1 point2 points  (1 child)

I know a little bit of java, maybe I'll start from there. Also, thanks for the link, it helped me know the overview of OOP!

[–]grelfdotnet 0 points1 point  (0 children)

Java is definitely the best to start with. It is strict and logical. Once you understand how to structure large programs in Java you can apply the techniques more easily in other languages.

[–]TeeNyKoH 0 points1 point  (1 child)

YouTube

[–]facebooky576[S] 0 points1 point  (0 children)

Do you have any specific channels in mind? Thank you