HomeЛюди и блогиRelated VideosMore From: Programming with Mosh

Object-oriented Programming in 7 minutes | Mosh

9043 ratings | 337177 views
🔥Get the COMPLETE COURSE: http://bit.ly/2keDCna 4 pillars of object-oriented programming: encapsulation, abstraction, inheritance and polymorphism. Subscribe for more videos: https://www.youtube.com/channel/UCWv7vMbMWH4-V0ZXdmDpPBA?sub_confirmation=1 Want to learn more from me? Check out my blog and courses: http://programmingwithmosh.com https://www.facebook.com/programmingwithmosh/ https://twitter.com/moshhamedani
Html code for embedding videos on your blog
Text Comments (273)
Simpson (7 days ago)
i really don't understand why parameters are bad.
Ilian Karasimirov (9 days ago)
Best video for describing OOP !
Elite7555 (10 days ago)
All of those things (encapsulation, polymorphism etc.) are nice and all, but could be achieved by other means. I mean, even in C you get function pointers (which can serve as methods and enable polymorphic behaviour) and encapsulation by not declaring a function or struct in the header file. And of course you can have your abstractions by functions that call other low-leven functions. The established ways of calling methods and having a magic this-pointer or self-parameter are only syntactic sugar. But you forgot about the real reason OOP exists, and most developers do: Resource management! Everybody who has learned C knows how hard it is to manage them manually and not getting any leaks. In fact Bjarne Stroustrup has given some very interesting talks about that. Of course that is only any good if the destruction of objects is deterministic which it isn't in GC languages which don't use reference counting. You could write Java in a completely procedural style (using static methods) and it wouldn't make any difference (although they have added a limited way for doing RAII). The Go language proves exactly that: You don't need classes or inheritance if you don't have deterministic destruction.
Programming with Mosh (8 days ago)
Sorry, but your argument is false. Saying OOP exists to solve memory leak issues of C++ is like saying cars exist to water the farms. These two are entirely different. OOP is a programming paradigm (style of programming). You can do OOP with any languages that support classes. Memory leak is an issue with low-level languages like C++ where the programmer has to explicitly allocate and release memory. That's why higher level languages (not paradigms) are built. Examples: C#, Java, Python, etc. In these languages, the runtime takes care of memory allocation and deallocation through a mechanism called automatic garbage collection. With any of these languages, you can program in different styles: procedural, functional, object-oriented. Object-oriented programming did not come to solve memory management issues in C++.
Adeel Khan (11 days ago)
your way of teaching .....awsome man..very well explanation..!!
Márk jun Tegio (12 days ago)
I like this tutorial
Ilya Kortasov (12 days ago)
I have been Googling these concepts almost all day yesterday. Now this short video and that is it, I get it now :) I guess you made my day!!!
Programming with Mosh (11 days ago)
Thank you! Please support me by sharing this video on the social networks you use so others can learn too. And be sure to subscribe to my channel for more videos like this.
slapmyfunkybass (11 days ago)
You made the mistake of thinking oop is great and procedural isn’t. Both can be used for different purposes and you can have messy code just as easily with oop. Plus in your first example procedural would be so much better as any arguments can be passed to the function and the same calculation would take place, in oop the properties are set. Anyone who thinks functions shouldn’t have arguments is missing their functionality, what makes functions so useful is the fact arguments can be passed.
slapmyfunkybass (11 days ago)
Programming with Mosh Okay, I appreciate you taking the time to reply. Though I disagree with your outlook on functions, their functionality and beauty lies in taking in arguments and performing the same calculations. To try to avoid doing this restricts their use drastically. But thanks for your time anyway and your explanation.
Programming with Mosh (11 days ago)
Unfortunately, you and many others are missing the point of the video. Nowhere in this video, I said that object-oriented programming is the only or the best style of programming. The whole point is that if you want to use OOP, do it "properly". Here's the explanation: If you define classes with properties and methods in your programs, you fall into the object-oriented paradigm. In this paradigm (style of programming), your classes should encapsulate both the data and the functions related to the data. So, passing data to these functions using arguments is just unnecessary and redundant. That's what class properties are for. With this style of programming, your class methods will only have parameters for data not included in the class.
Muhammad Haziq (13 days ago)
i watch this 14:07 and ended at 14:14. hopefully it is worth it.
mehran piran (14 days ago)
Easy and understandable. many thanks
HCEveningWalk (14 days ago)
Wish f**king college textbooks were as short and straightforward! Thanks for the upload Mosh!
doggaki (15 days ago)
Really good!!
nicadi2005 (15 days ago)
Hold on: Why is the switch statement considered 'ugly'? And how spreading a compact - meaning "all in one place" here - render() function across multiple classes (even with the added benefit of declaring it as an interface) is supposed to be the 'superior' choice?!
UK2AK (19 days ago)
Much of what you said about procedural programming and functions is actually wrong. :-(
UK2AK (18 days ago)
+Programming with Mosh I see. From that perspective, I agree you are fine, but sadly you chose the most confusing word of the 3 choices you had to choose from for it. For people who are newcomers to OOP, which is the target audience for your video, they are likely to walk away after watching it with a negative opinion of functions, which isn't the outcome one would hope for.
Programming with Mosh (19 days ago)
Wow! Didn't expect such a long response. Really appreciate the effort you put into this. I completely agree with everything you said. I think the issue here is the use of the word "function". Function/procedure/sub-routine, they're all essentially the same thing (forget about paradigms for a second). So, in procedural programming, we break up our code into a bunch of functions/procedures/sub-routines (whatever you want to call it). Functions in functional programming are certainly different in the sense that they don't have side effects. But that doesn't violate what I said about procedural programming.
UK2AK (19 days ago)
@Programming with Mosh: Other commenters explained the reasons; I assumed you read them so I was merely echoing or seconding their comments. However, since you asked, I will elaborate, but keep in mind that I do it in the spirit of being helpful and not to embarrass you or find fault with your otherwise excellent video.  By far the 2 most-used programming paradigms in the industry are imperative programming and declarative programming. Imperative programming languages include: • Procedural languages (like Fortran, COBOL, BASIC, etc.), and • Object-oriented languages like (Ruby, C#, Java, etc.). Declarative programming languages include: • Functional programming languages (like Haskell, Elm, ReasonML, etc.), and • Markup languages (like HTML, XAML, CSS, etc.) And of course there are multi-paradigm languages that support both imperative and declarative programming including JavaScript, Swift, Python, C#, F#, etc. With this as context... (1) In this video, you say, "Before object-oriented programming, you had procedural programming that divided a program into a set of functions." I'm sorry, but I cannot make sense of that statement. Procedural programming doesn't "divide a program into a set of functions," procedural programming uses procedures to organize code; object-oriented programming uses objects, and functional programming uses functions. (2) Your video infers that procedural programming and functional programming are the same thing, and they are not. They are not even in the same family, but procedural programming and object-oriented programming are. (3) You directly and repeatedly accuse functions in code as being a cause of spaghetti code. The truth you should have shared is that spaghetti code can be created in ANY paradigm, including in object-oriented coding, functional programming, and procedural programming. (4) You never mention the fact that, like objects in object-oriented programming, functions and procedures (sub-routines) are ways of organizing code so it doesn't have to become "spaghetti code."  Instead you repeatedly bash on functions like they are the reason for spaghetti code. (5) You disparage functions in ways that fly in the face of actual research data. Check out "A Large Scale Study of Programming Languages and Code Quality in Github" published by the Department of Computer Science, University of California, Davies (2014).  This study set out to answer this one question: "What is the effect of programming languages on software quality?" They studied 729 software projects from Github, with 80 million lines of code, written by 29,000 different developers, with 1.58 million commits and 566,000 bug fix commits. They analyzed the source code of super relevant projects such as linux, node-webkit, mongo, docker, jquery, nodejs, rails, Django, CodeIgniter, bootstrap, bitcoin, etc.   The study considered 17 programming languages, including C#, Objective-C, Go, Java, CoffeeScript, JavaScript, TypeScript, Ruby, PHP, Python, Scala, Clojure, Erlang and Haskell. They concluded: “The data indicates functional languages are better than procedural languages; it suggests that strong typing is better than weak typing; that static typing is better than dynamic; and that managed memory usage is better than unmanaged.” "Functional languages are better..." You are correct in that procedural programming started to ebb as object-oriented programming took off in the 1980s, but that was before multi-core processors, parallel processing, etc. rose to become the de facto platforms running software. Consequently, I would stay clear of disparaging functions and functional programming. Functional programming was born in 1958 (Lisp). It's inventor, Dr. John McCarthy, also happened to be the inventor of cloud computing! I think it's safe to say Dr. McCarthy was way ahead of his time, and that today we are starting to realize how well matched functional programming and cloud computing really are! :-)
Programming with Mosh (19 days ago)
Just saying one they're wrong without explaining the reasons is not helpful. Please share your view point.
Pavel Orlov (21 days ago)
The next time an interviewer asks me what Incapsulation is, I'll say, "It's using functions with as little number of parameters as possible."
Global Playlist (21 days ago)
thanks. ممنونم از تولید و به اشتراک گذاری این آموزش های علم
UK2AK (21 days ago)
Do you know any functional languages? Have you thought about doing something like this for F# or some other functional language?
Ken Franklin (22 days ago)
Excellent video! This was the straight-forward and precise explanation I was looking for!!
SULTAN Ahmed (22 days ago)
thank you for clear explanation, can you upload a new video explain polymorphism in java language, and give examples of its benefits thanks.
Kasper (23 days ago)
Oop
SurvivalRaidingYTHD (24 days ago)
subbed and liked
juned sheikh (24 days ago)
i know oop but i watched it to learn in 7 minutes
Irfan Kurtagić (24 days ago)
Speed 1.5
Thang Bom (25 days ago)
tray tret mau nhieu len nua nha lu pha dam, chen mau vo de ta ghet khong hoc nua chu gi, hihi, nham qua ha :D
Haudz (25 days ago)
Excellent. Thank you, Mosh
Yousef G. Niari (29 days ago)
Started good explaining encapsulation very well but after that, he just tried to finish in 7 minutes.
Checksum Error (1 month ago)
At 2:48 the example is stupid. It uses globals instead of doing actual OO programming. Also, the function() actually does have a parameter, it's just implicit instead of explicit and that's also how you could have written the original function. The "this" pointer is passed to the function and you could have done the same with the first example. I do OOP in C.
Jack Murphy (1 month ago)
brilliant explanation, cheers!
Ahmed Hesham (1 month ago)
* spit *
paula pidgeon (1 month ago)
Im about to get a nosebleed from this stuff :o
Eric O Prof_Engineer (1 month ago)
Great points. Thanks for sharing.
Ali Hejazi (1 month ago)
حیف که ما نمی تونیم این چیزا رو بخریم کامل کامل یادبگیریم 😭 البته اینکه پول هم نداریم بی تاثیر نیست😅
calabiyou (1 month ago)
Don't know why anyone would down vote this. Maybe functional programmers?
Nikolas Walter (1 month ago)
Can somebody explain me how hiding complex code in abstraction lowers the change impact? I understand every of these four but abstraction. What exactly it is and how is it done
Daniel Cooke (1 month ago)
your voice is annoying.
Daniel Cooke (1 month ago)
yea i know right #ANNOYING
Amir Hussain (1 month ago)
Hard concepts are described easy. Thanks
kazakh mustang (1 month ago)
"make" of car? You mean brand?
Nikolay Shindarov (1 month ago)
So 10 classes inheriting each other aren't more dependent on each other than 10 functions and if you change the top class all the rest will not crash? Come on. OOP is already seeing a decline in development and there is a reason for this. It's good to write a class whenever you really need it and your code is better organised. But worshiping the idea that everything must be class is ridiculous. Anyway, thank you for the great video!
Jim Mooney (1 month ago)
So in Python you just put functions into a module instead of creating endless unnecessary, overly-complicated objects - sometimes with only two methods, and one is init ;)
InspektorDreyfus (1 month ago)
Hey Mosh Kripke, L, R and W are distinct letters with different pronunciations.
incik boncuk (1 month ago)
Ben sana bayılıyorum adam bize gel Beni Güldür Biraz sonuna kadar akıllı bir şey kel kafalı bisikleti
hima najy (1 month ago)
perfect explaining thank you :)
Rajet Veshin (1 month ago)
Great content..By the way, what tools you use to create these videos? specifically the animation in the start?
1 (1 month ago)
There are a lot of great tutorials on Youtube for this program if you want to learn how to navigate it.
1 (1 month ago)
Rajet Veshin I’m not sure exactly what software he uses, but a good free video editing software is Davinci Resolve can be used for simple motion animations like in this video, and as for the graphics themselves, they can be individual image media that is key framed within davinci resolve to give them motion. https://www.blackmagicdesign.com/products/davinciresolve/
Kai Z (1 month ago)
Examples from HTML are not that universal. Overall, great video and animations. Thank you.
Noxxys (1 month ago)
Best programming teacher I've found so far! I have a lot of his courses on Udemy.
Kuya Frex (1 month ago)
I'm already applied these concepts in my code without even knowing the terms for that. At least now I know
avimukta1 (2 months ago)
Is this suitable for beginners?
Programming with Mosh (1 month ago)
No, you should start from my JavaScript for Beginners course.
Ralfie Library (2 months ago)
Great, thank youuu
Shivashish Tripathi (2 months ago)
Thanks
Rehan techie (2 months ago)
At 3:16 you said oop does not require parameters, but just after calling the function down we can see parameters. Why?
Smart Programming (2 months ago)
nice explanation sir, thank you 👍👍👍🙂🙂🙂
Growing Technology (15 days ago)
Sir aap bhi bahut acha explain krte h
Neon Prince (2 months ago)
Tesla has Car's in their code lol
Erron Intila (2 months ago)
Thank you Mr Hamedani 😀
KUNAL SHAW (2 months ago)
he sounds like Nadeking!
Crypto Chan (2 months ago)
damn dude great tutorial.
Omar Salama (2 months ago)
what is this vcCode theme name?
Programming with Mosh (2 months ago)
Ayu Mirage
Neo Take (2 months ago)
is this Java ? and what is that programm u are using ?
Sergio Díaz Nila (2 months ago)
This entire video is a strawman because Object Oriented Programming is one type of Procedural Programming, even with the mistaken definition you have used, your methods are procedures with a default argument, which you can access via the keyword "this". The term procedural programming is derivative of the term procedural knowledge, which is always contrasted to declarative knowledge from which the term declarative programming derives. Procedural knowledge is any knowledge that is expressed in terms of a cookbook recipe, an algorithm, sequence of steps to follow, so is a description of "how" to do/get/make something. In contrast declarative knowledge is describes the "what" is something, for instance you provide properties you can test, a goal to reach. Examples of procedural programming are Structure Programming (like C & Pascal) or Object Oriented Programming, Actor Model, DataFlow Programming, etc. Declarative paradigms would be Logic Programming, Constraint Programming, etc. Also your definition of Object Oriented Programming is bogus & wrong, those 4 "pillars" are secondary to Message Passing, that is the key foundational principle of Object Oriented Programming, if you don't understand that, you don't understand OOP at all, then you would be using ADTs (abstract data types) with a convenient syntax, & that's all. In contrast what you are saying is what Bjarne Stroustup understood of Simula, filtered by the C++ community, skined with the terms of Alan Kay, not even his ideas just the words, so it is a sham, and you are defrauding people. And if this isn't your intention then please do research. Alan Kay explained what OO was in 1972 but only very few people understood him, those that knew Functional Programming back then, and Carl Hewitt that made the best implementation of the ideas that Alan Kay communicated, the Actor Model. Carl Hewitt understood in concrete terms, what Kay was explaining with abstractions. When Alan Kay came up with the idea of OOP, he wasn't thinking in Simula, he was thinking in a network of biological cells, in biological tissue, operating a large function by passing messages among each other. He thought of Simula until he was considering the implementation in code, but even before Simula it was LISP. This is a terrible explanation. That type of encapsulation is nonsensical if you had actually wrote a single line of code in your life you would understand it, because when you use a getter or a setter you are piercing that "encapsulation" and usually those properties are other objects, and the actual state is not held within the supposed object encapsulating it. Why the name "methods"? the term methods came because of message passing, an object which is an entity that is able to receive and send objects, may have multiple ways(methods) to interprete a received message. There is a message selector, and the object internally has a multiple methods for that message, that means the object in itself may have dispatching of its own. What encapsulation means it is what Joe Armstrong refers as Isolation, Alan Kay has given a great example of what his invention is, Encapsulation is when you have a computer X in the internet, and it may fail but every other computer that is connected to X, doesn't fail just because X fails. Alan Kay also explained what was his idea of an Object, as i said before is an entity that sends/receives messages, but his inspiration was a mechanism of machines of the 60s, that communicated by sending files divided in 3 sections, the 1st section was a header with pointers to elements of the 2nd & 3rd section, the 2nd section was the code meant to process the data contained in the 3rd section. Your argument of the "too many parameters makes code difficult to maintain" is nonsense in Javascript, because you can use closures for partial application and reduce the number of parameters you carry around. also because a good source code editor would have autocomplete and that helps. If you learn FP techniques, what you would call "design patterns" then all of your arguments are empty & make no sense which show you are a total n00b.
daniel rodney (2 months ago)
متشکرم
abheeth kotelawala (2 months ago)
Getting ready for my first interview Thank You!
Kamil Wiśniewski (2 months ago)
"We can change or modify one of the methods and it will not impact the rest of the code" - famous last words ;) Class extending, sharing "this" all around the place, mutating the state - that's all the consequences of OOP and it WILL impact the whole program. Granted - it's all about the patterns. But we all know how you can end up with "Spaghetti" code even with OOP. Not to mention presented "Procedural" programming claims should be also contrasted with Functional Programming since Procedural would focus highly on imperatives rather than abstraction functions. Beginners could easily confuse Procedural with Functional at this point. With that being said - thanks for gr8 video :)
Kristupas Antanavicius (2 months ago)
This video is horse shit. Functions with no parameters are better than functions with parameters? Are you joking? Congratulations, you have just created a function which can't be reused in other contexts and which has unknown data dependencies. Now imagine your "localStorage" object implementation in Chrome, which probably has at least 2k lines of code and 100 member variables, and tell me that a function in such a class would be better of without parameters.
Yousif Johny (2 months ago)
Brilliant Video!
terminalcommand (2 months ago)
I love ya' Mosh - great content!
Programming with Mosh (2 months ago)
Thank you! Please support me by sharing this video on the social networks you use so others can learn too. And be sure to subscribe to my channel for more videos like this.
Omni Ed: Garry's Mod (2 months ago)
To be fair you forgot to say why OOP is worse than Procedural: -OOP is inefficient due to communicating with inheritance hierarchies. -OOP requires more lines of code on average thus more opportunity for errors. The Uncle Bob quote is a fallacious argument from authority.
Programming with Mosh (2 months ago)
Are you saying procedural programming is better than OOP?
Santosh Shrestha (3 months ago)
i m still not clear on encapsulation can anyone help me?
Olimhon 31 (3 months ago)
He explained in a difficult way
dirtdirt (3 months ago)
Best example of encapsulation I've ever seen, thank you
Programming with Mosh (3 months ago)
Thank you! Please support me by sharing this video on the social networks you use so others can learn too. And be sure to subscribe to my channel for more videos like this.
Claudia Sastrowardojo (3 months ago)
what kind of software i can make this kind of presentation?
Ketan deshmukh (3 months ago)
Really amazing
Max Power (3 months ago)
Clear, complete and straight to the point, thanks!
Max Power (2 months ago)
+Sergio Díaz Nila Didn't know that, thanks for the tip Sergio!
Sergio Díaz Nila (2 months ago)
actually is very bad, and disinformation. Is the classic spiel you get in every collage with lazy teachers, that don't inform themselves. It is born out of a misinterpretation of Alan Kays work on Object Oriented programming, very few people understood Alan, like Carl Hewitt who made an excellent concrete definition with the Actor Model. If you want to understand OO, google about Carl Hewitt, read his papers, listen to his talks and read the material he suggests. The very core concept of OOP is Message Passing, in an Interview Alan Kay said he regretted to call it OO because people has missed the point of messages, when he invented OO he was doing it taking inspiration of networks of biological cells, achieving some objective by communicating passing messages to each other. What this video explains is procedural programmers projection of their mistakes working with languages like C, Pascal, Assembly code. And this reduced OO from an awesome Actor Model to a simple convenient syntax sugar for Abstract Data Types.
Benedikt Örn Hjaltason (3 months ago)
shouldn't the arrows go out from the HTML-elements box into the other objects if they are inheriting from it? :) Love the video!
Ayame San (3 months ago)
am so confused after watching this video
Aks Byte (3 months ago)
Wow
Ismail Vittal (3 months ago)
Every computer science lecturer should watch and understand this video before confusing the students. Thanks Mosh Bro.
Programming with Mosh (3 months ago)
Thank you! Be sure to subscribe and please support me by telling others about my channel. :) I also have a blog at http://programmingwithmosh.com
JAY SAMANI (4 months ago)
C, C++, Java, JavaScript, C#
Max J. (4 months ago)
actually a great video. thanks!
Programming with Mosh (4 months ago)
Also, keep an eye on my blog http://programmingwithmosh.com
Programming with Mosh (4 months ago)
Thank you! Please support me by liking and sharing this video, and subscribe to my channel! :)
Ravuri Vivek (4 months ago)
Can you teach .Net course?
Programming with Mosh (4 months ago)
I have several .NET courses. http://codewithmosh.com
Ravuri Vivek (4 months ago)
I am confused about so many definitions of inheritance and polymorphism could you please tell me the proper definitions for both of them.
Programming with Mosh (4 months ago)
You should watch my C# Intermediate course. There, I've covered these in detail with real-world examples in C#. http://codewithmosh.com
JAY SAMANI (4 months ago)
Can someone explain me abstraction with real-world programming language example? I mean just give me a real-world programming language example.
Jonathan Dansie (2 months ago)
If you have ever compiled a program, that is abstraction. The machine language is abstracted by the compiled language which is much harder for humans to parse and see all of the logic flows in. Abstraction goes in layers from the hardware up. You don't want to individually address registers. The picture of the lamp wires going into the electrical socket was a good real world example of what lack of abstraction looks like - without a plug interface to go into a socket interface you lose the correct fit and safety a plug provides.
Programming with Mosh (4 months ago)
What programming languages are you familiar with?
OrcButter (4 months ago)
I think I can relate it to making a procedure in python and importing it for use in the main program. Tell me if I'm wrong.
Andrea Vucetich (4 months ago)
This is the best, clearest explanation I've seen so far... Thank you!!!
Programming with Mosh (4 months ago)
Thank you! Please support me by liking and sharing this video, and subscribe to my channel! :)
SAM CANNON (4 months ago)
The best video on internet to learn this topic... subscribing...
Programming with Mosh (4 months ago)
Thank you! Please support me by liking and sharing this video, and subscribe to my channel! :)
himanshu (4 months ago)
OH YES SUBSCRIBED !
Programming with Mosh (4 months ago)
Welcome aboard!
Omar Khan (4 months ago)
Love this video! But what software did you use to put this all together?
Devon Marantz (4 months ago)
Such an informative and concise video! Thanks Mr. Mosh. Cool jacket btw.
Dimitar Mihov (4 months ago)
As a person who has bought the complete Mosh courses i must say that the paid content is EVEN MUCH better and i highly recommend anyone to purchase his courses. This is not a sponsored post, i have not received a damn $ from Mosh but i truly wish i had found his courses when i was learning .NET development at first!
l0calher0 (3 months ago)
Yeah, I've bought a few Mosh courses. Can definitely vouch.
Programming with Mosh (4 months ago)
Thank you so much for your recommendation! :)
steve smith (4 months ago)
great explanation, especially the first part that showed a practical example with the localStorage. I watched a few other videos that tried to explain OOP concepts and it just left me confused. I think where I get bored with watching coding videos is when they don't use enough practical examples.
Programming with Mosh (4 months ago)
Thank you! Please support me by liking and sharing this video, and subscribe to my channel! :)
Shubhranshu Chourasia (4 months ago)
Thanks to you to clear all my doubts regarding oop
Programming with Mosh (4 months ago)
Thank you! How much programming experience do you have? What are your goals?
ateng lenon (4 months ago)
simple analogy comes from the person who understand it.. and you made oop become clear.. thank you..
Programming with Mosh (3 months ago)
Thank you!
ateng lenon (4 months ago)
done, without any doubt.. :)
Programming with Mosh (4 months ago)
Thank you! Please support me by liking and sharing this video, and subscribe to my channel! :)
ahmad nikidos (4 months ago)
Great vid, tks i understand but still confused 😂😂
Adi 24 (4 months ago)
Great!
BigBMrBenben (4 months ago)
You down with OOP?! Yeah! You know me!
Benjamin Krall (4 months ago)
What an awesome video
Ernist Isabekov (4 months ago)
makes confuse, in some book say OOP base on 3 parts except abstraction
Alvaro Neto (4 months ago)
Great vid, thank you Mosh!
Nathan Herder (4 months ago)
Very informational, thank you sir!
Programming with Mosh (4 months ago)
Thank you!
Recreation Moments (4 months ago)
Easy to Understand.....
Robust Misconception (4 months ago)
Content was great, and I thank you for that!! But those bright colors cause migraines lol
Abby Marie (4 months ago)
loved the colours - migraines cause migraines!
Programming with Mosh (4 months ago)
Thank you! Will keep your feedback in mind. :)
Maciej Patej (4 months ago)
Finally someone explains it casually and clearly! Thanks a lot!
Mohammed Amine (4 months ago)
i feel like i skiped 1 year of OOP courses on univercity in 7min
Programming with Mosh (4 months ago)
What they teach in universities about OOP is anything but OOP! You should read my post here: https://programmingwithmosh.com/general/dont-need-college-degree/

Would you like to comment?

Join YouTube for a free account, or sign in if you are already a member.