Hello tech with Tim I'm a 14 year old trying to learn python. I'm finding it hard to get out of the beginner phase. I tried code wars but found the problems too hard. Any advice on how to practice and improve and what resources I can use. I have pycharm ide set up and have lots of free time with this quarantine going on.
You really are a star. I got a concussion and had to miss several weeks of my intro to computer programming summer course, and your videos literally saved my grade. I'm trying to get into med school, and people like you who put in hours of effort just to help complete strangers are an absolute blessing. Thank you so much Tim. I'll make sure to donate to your patreon once I can afford to!
@@baka_geddy WOOT WOOT! I also have to add KatieSkate, you are a STAR! Seriously? Med school? And learning OOP/Python? Wow, just wow, humbled. KEEP IT UP YOU MAD ONE YOU!!!!!! Get well and GO AFTER IT!!!
@@executorarktanis2323 Tim is brilliant! You can donate to him indirectly by sharing his videos due to UA-cam Monetization, so you don't need to have your own money to give him some.
Never finished a 54 minute educational video without any break. So well organised and clearly explained. Not a single minute wasted or rushed. Thank you Tim. Channel subscribed!
time stamps on these type of educational videos are definitely helpful. Thanks! Hopefully Tim have some time to go through some of these older videos and add chapters.
@@JayMaverickDon't bother with his speech. He is only a poor UA-camr with 91 audiences, compared with Tim, 466K subscribers. An average guy knows who to choose to believe. :)
Wait seriously this was just uploaded woo. Haha. So happy I found this channel Edit: this was the “easiest” 53 min of coding to digest on a video. Tone, example, audio quality, clarity. First step slow and explained. Then doing it again a little faster. Loved this video. More intermediate Python vids please ! 🙏🏼
Totally worth it. ( spending 3 hours) I was new to these topics and after this video i feel like that now i can make my own custom classes. Thank you sir
Explanation on self: self refers to the class. Say you are defining a function and you use the parameter self. That parameter means that you will use that class you’re defining the function in. You will have access to all its attributes by just typing in self.attribute
@@maximofernandez196 Btw, it's been almost three years since you posted your comment. How has life treated you since then? Have you found that learning OOP was worth the effort?
@@JackDaniels08 I'm the same person with a different account. Yeah, it is useful because it's used, but that doesn't mean you have to use it for everything, but rather combine the great things about procedural programming, functional programming and oop. A ton of people say that inheritance is not useful and that's true most of the time, because it sounds great at the start, but once you have to make a change to the parent class, things tend to break. Also, maybe python is not the best language to learn oop with, cause it's not an object oriented language. But overall I would say that objects tend to make sense to describe things in your program, and learning the basics is very very useful :)
at 39:00 the reason we do super().__init__(*args) is to extend the Pet.__init__() method and add more attributes without completely overwriting the Pet.__init__() that gives us access to the self.name and self.age attributes that are used in the other methods like show. So the way I think of inheritance is there are four ways of doing this: 1) straight stealing from the parent class , 2) completely overwriting the parent class methods, 4) partially overwriting the method (extending the parent method (using super)), 4) independent new method.
This is absolutely the most comprehensive look at OOP that I've ever had. Thank you for being so thorough with your explanations. I had multiple "oh so that's what that means" moments.😁
When I started learning OOP it took me a while to differentiate between methods types, so if you are struggling with that too, here's a quick summary: Method = function related to that instance of a class. Use this type it when you are using values of the own instance (its own name, age, etc). You need to create one instance to use it. Classmethod = function related to that class and that class only. Use this type when you are using values of the class, not the instance (For example, using a class that retrieves the total count of instances of that Class created and stored in a class variable). You don't need to create one instance to use it. Staticmethod = function not related to that class. Used for organization purposes (For example, a Calculator class with add, subtract, multiplicate, etc methods). You don't need to create one instance to use it.
"if you can't explain it simply, you don't understand it well enough" - Einstein, your video really make complicated things easier to understand, i have paid about $300 on a programming course that explained OOP poorly, watching your video really helps me a lot
Just Wow, and Thank you, Tim! I am learning python for 3 years and all of the time I had issues with the OOP concept in Python as my degree is not IT ( I am a biotechnologist, PhD), but with this amazing video, I learned all I needed and looked for through passed years! Thanks a lot, I follow all of your job and advice all to use your channel! your teaching style is wonderful!
Honestly man gotta say that this really helped me have a clear idea about what the hell was the "class" things i was constantly seeing on yt videos of people doing projects in python. Thanks man!
I never understood this subject, this and pointers were the biggest hurdles for me, hopefully after I watch this I will understand it completely. Thank you tim
Mate this was fantastic. I am quite an experienced programmer in my own area, as an actuary, I have a good amount of experience with R and python, never much use for classes in my line of work and I have always found the concept a bit confusing, both the how and why. This took me about 10 minutes to see the value add in OOP and understand it. I've had other people explain it to me for hours and still struggled to understand the benefit. Well done!
I studied computer engineering more than 10 years ago, never learned python or objective oriented programming and haven't done any serious coding in a decade. Your video was absolutely perfect for me to get back into the game. The pacing was just right for me to absorb the information at a casual pace and not get bored. PS: Also like how clean Python is compared to C.
Dude this is genuinely such an amazing tutorial. You don’t bombard us with unnecessary technical jargon and you keep things simple. Love and respect from the U.K.
I've been studying python for some time now with Zed Shaw's book 'learn python 3 the hard way'. The whole process has been smooth till I got to oop, my confusion started. But now, watching your video, things are clearer. Thank you for the effort you put into this, very informative.
Says naming convention for classes is camelCase, when he should say PascalCase. Jokes aside, great content Tim, thanks a ton, just sharing this so we all could be smarter. Stay safe, much love
A shame there isn't more professors like this guy. There is a lab professor in my college that mocks whoever doesn't fully understand c++ or that has many questions or has troubles completing the challenges..
@@aammssaamm I laughed pretty hard when I saw this comment, you must have missed the "OOP for BEGINERS" part. Then somehow was able to deduce that he has no knowledge of "DATA ARCHITECTURE" based on an hour long video going over very basic uses of OOP. Okay mate, seems like all that university and math's you were going on about didn't teach you common sense haha.
Ayee perfect timing ^^ I'm having hard time with OOP but I'm pretty sure I'll be able to understand quite a lot from you. Thanks a lot for posting this
What I like about Tim's explanation is that he doesn't start his explanation with terms that are difficult to understand, thanks a lot Tim, god bless you
Absolutely brilliant lesson for high content to background noise ratio. This video has made for a really educational and enjoyable code-along morning. Thank you!
I didn't even realize this tutorial was a whole hour long. I'm like "waittt elaborate more" then realized how much he was actually already going through. Wild how I just get sucked into these things
I rarely comment on UA-cam. This video made me leave an appreciation comment for Tim. You are a great teacher. You explained everything like a primary teacher explaining alphabets. I have an udemy course on OOP. But, when I find this video, I haven't opened Udemy. Thankyou so much for awesome tutorials. I appreciate your efforts.
Finally an actually great video with in-depth and simple explanation, that's what I call quality content. The video made it much easier for me to understand the basics of OOP, also I'm not afraid of it anymore. Thank you again
Really fantastic, you have a gift of explaining things very well, especially for someone so young. Thank you for your efforts in producing these videos!
THANKYOU SO MUCH! I have my assignment due tomorrow and i understand none in my oop class. Really happy I'm starting to understand this, thankyou so much!
I was stuck on this subject in another platform because I couldn't comprehend what was being taught, then I came across your channel. Honestly I couldn't be happier. This is one of the best tutorials on UA-cam when it comes to OOP. Thanks for clearing things up.
this was the best video i have ever seen in my entire life. the audio, the presentation, the detail, the cross referencing of subjects. absolutely marvellous :)
Two year old class or explanation done simply. I took several singular classes dealing with in python "OOP" . Sort of got it but not really. Cleared the confusion for me. Thanks
great video. but one thing that was confusing that you could've made clearer. in class Course, you use "student" as an argument in method "add_student". That's okay, but then you use "student" in your for-loop in the get_average_grade method. That makes me, as a beginner, think there are related somehow. But they're not, so it seems. You could rename the argument in "add_student" method to "new_student", and you could rewrite the for loop as "for i in self.students: value += i.get_grade() That would make it clearer. Nevertheless, I thank you for your amazing work.
It's sad how my college classes, even though have some of the best professor's in the world fail to realise that just throwing a bunch of terms on slides will not get us those concepts... but the approach here that tim uses of just using simple examples however nonsensical ... do the job wonderfully well ... i think i will remember class with dogs and cats for a while now ... thanks mate
I am taking a coursera online couse and I am at this stage. I was just not getting it and saw your video about OOP in python and you explained it really well!
Your arguments names are the same as your variable names and the self declarations are also the same. This makes your examples so confusing. Everything has some variation of the same name. For example self.name=name. That is confusing. Then your instance of your class matches your instance name. Course = course (self.student). Too many things have the same name in your examples. It would be so much simpler differentiate different objects, functions, classes, methods, variables, arguments with different names to we see that they are being used differently and keep them the same if they represent the same item.
Yes, you can call everything differently... which means you are writing more and more completely irrelevant characters into your code. What's that going to get you? Will it satisfy your OCD? Probably not even. The compiler doesn't care, the user doesn't care, the CPU doesn't care... so who are you doing it for? The little child inside your mind?
@Lepi Doptera You don't get it. If you are teaching then you must actually try and teach and differentiate different areas of your code so new coders can follow the data structures you are creating. New coders need to track the flow of data. Obviously if you are giving each object and global and local variable and functions and constructors the same name then it is going to confusing to students. If you are coding for yourself or an experience coder then he can write code any way he likes and will not matter. A good teacher tries to actually teach and makes each object with a unique name so the students can track the flow of the objects and variables.
@@tonysmith7759 If you are teaching, then you should be teaching important things, not how to bloat code. Your criticism leads to bloat, not to understanding. The first thing a good teacher would teach about OOP is what it does and what it doesn't do. In case of the combination of a dynamic language and OOP it basically doesn't do anything useful. For that, of course, you would have to know something about OOP that is fact rather than fiction. Which you don't. ;-)
@@tonysmith7759 It doesn't help me. I already know how to code reliable systems. The last thing that makes a system reliable is how you name things that will be translated by your compiler into 32 or 64 bit addresses anyway. May I suggest that you read up on what happens when you compile your programs? Your boss pays for days, weeks or months of work for your carefully handcrafted variable and function names and your compiler removes all of them in a few milliseconds. :-)
Thanks Tim thanks a lot. Have been searching for a good video on oop and was stuck on this concept. Randomly on my feed this video popped up and with no hope of learning something new i started this video and this video literally taught me this complete topic. ALL THANKS TO YOU
Good vídeo brow, your english is very easily to understand to me. I'm from brazil and i'm not fluent in english, but i can understand and comprehend everything you say. Thank you fom this amazing vídeo.
Dude, Keep going I was really dreaming to understand OOP in python, I've searched for a lot of videos, watched them haven't understood but you , you explained every thing and I understood them clearly. And I'm just a 14 yo kid who have python dreams. Thanks,
very good summary, the only other thing i was hoping you'd mention was public protected and private attributes/methods thanks for sharing! you summarised it better in less than an hour than my teacher in multiple classes haha
neat and crisp presentation. i came here after getting confused by MIT's Introduction to Computer Science and Programming Using Python where Prof.Eric Grimson presented the same topic. Thank you for your clear, easy to understand approach and presentation.
Dude, literally saved my life . This is the best OOP video Ive watched and its broken down so, so well. Im so glad you made this Tim , literally godsend. Thanks so much. I now understand OOP and enjoy it due to you :D Thanks again for making it so easy to follow with the examples!
As someone who learnt Java and then python I understood certain things: 1. The __init__ method is the python equivalent of a constructor as it instantiates a class. 2. The object definition is similar to java with object name = classname() 3. There’s no data / return type in python but you know it’s void if it doesn’t return anything and if it does then it’s not void. 4. You have both parameter and non parameter functions. 5. You can access variables created inside init function outside. In Java however that’s not possible and you need to create variables outside the constructor (Called instance variables). You can give values to them inside tho. 6. Inheritance in python simpler compared to Java. In Java, when you define the derived class constructor you give all the parameters and to define the super class constructor you write Super(parameters for super class); and define the rest as usual. To execute a super class method on a sub class, you use super.method(); (useful when you have the same method names in super and derived class)
Small nitpick: Classes are in Pascal Case, Camel Case has the first word starting with lower case and all subsequent words starting capitalized, e.g. camelCase.
I have been trying to understand this issue for a long time. And I could not understand at all what they were talking about. 2 minutes in your video, and I already understood what it was all about. Thank you Thank you Thank you Thank you I really love you so much, I learn so much from your courses. So much, really. I'm 16 and my dream is to be a software engineer, and you do not understand how much you help me in your videos. Thank you Thank you Thank you!!!!
I took the OOP course in CS with Java and I can say this sums up at least half of what we saw in a whole semester. Of course you need to do your own exercises to really learn it but the information here is really concise instead of going through unnecessary abstractions to make this a 5h video.
Start a high paying tech career making $60k+/year with NO DEBT: coursecareers.com/a/techwithtim?course=software-dev-fundamentals
Tech With Tim “JUTS noticed” you say? Hahahah
Shhhhh
Hello tech with Tim I'm a 14 year old trying to learn python. I'm finding it hard to get out of the beginner phase. I tried code wars but found the problems too hard. Any advice on how to practice and improve and what resources I can use. I have pycharm ide set up and have lots of free time with this quarantine going on.
@@bobturner2764 Try to learn from a book. It's easy to learn from a book because they're well organized and structured.
How are you doing during these times
You really are a star. I got a concussion and had to miss several weeks of my intro to computer programming summer course, and your videos literally saved my grade. I'm trying to get into med school, and people like you who put in hours of effort just to help complete strangers are an absolute blessing. Thank you so much Tim. I'll make sure to donate to your patreon once I can afford to!
Hope you are getting better now!!!
@@baka_geddy WOOT WOOT! I also have to add KatieSkate, you are a STAR! Seriously? Med school? And learning OOP/Python? Wow, just wow, humbled. KEEP IT UP YOU MAD ONE YOU!!!!!! Get well and GO AFTER IT!!!
@@TheJacklwilliams many of my bio stream friends can code python... It's not that difficult though...
Yeah like I also want to donate to my guy Tim or bprp or any educational vids but to young to donate or have money
@@executorarktanis2323 Tim is brilliant! You can donate to him indirectly by sharing his videos due to UA-cam Monetization, so you don't need to have your own money to give him some.
Are we all going to ignore that fact that the acronym for Python Object Oriented Programming is POOP?
yes
nope
😆
That is exactly what we are going to do
LOL
Never finished a 54 minute educational video without any break. So well organised and clearly explained. Not a single minute wasted or rushed. Thank you Tim. Channel subscribed!
on god.
Honestly
literally agreed!
fr bruh
Same here, amazing tutorial!
0:00 OOP basic
28:11 inheritance
40:53 static and class methods and attributes
Don't mind me, just putting this here since I might need it.
time stamps on these type of educational videos are definitely helpful. Thanks! Hopefully Tim have some time to go through some of these older videos and add chapters.
Can an attribute be an 0bject
@@smaransure2234 i think not
Thank you
@@Psychetwo yh
I'm over a year late, but this is the best explanation of classes I've ever seen. Great work, thank you!
I was about to mention this as well. Really excellent examples and well delivered information!
Who cares if you're a little bit late! Learning is eternal
As someone who's visually-impaired, I REALLY appreciate you using larger fonts in brightly-contrasted colors to do your tutorial. It REALLY helps!
I've tried to understand classes many times. This is the only one that got me there. Self, methods, inheritance, init ect. I get it now. Thanks!!
His interpretation is incorrect. You may want to read some good books.
@@aammssaamm can you elaborate? Which part is incorrect?
@@JayMaverick Already.
@@JayMaverickDon't bother with his speech. He is only a poor UA-camr with 91 audiences, compared with Tim, 466K subscribers.
An average guy knows who to choose to believe. :)
@@aammssaamm tell a good book for python OOP
Wait seriously this was just uploaded woo. Haha. So happy I found this channel
Edit: this was the “easiest” 53 min of coding to digest on a video. Tone, example, audio quality, clarity. First step slow and explained. Then doing it again a little faster. Loved this video. More intermediate Python vids please ! 🙏🏼
Totally worth it. ( spending 3 hours)
I was new to these topics and after this video i feel like that now i can make my own custom classes.
Thank you sir
Tears from my eyes when I finally understood what "self" keyword here is all about. Thank You!!
I look at it like "this" keyword in c++
I’m struggling to understand self 😢😢
Update: after watching the video. I now understand what you mean… i understand it now! 😮😮😮
@@lozaur9837🎉👏👏👏
Explanation on self: self refers to the class. Say you are defining a function and you use the parameter self. That parameter means that you will use that class you’re defining the function in. You will have access to all its attributes by just typing in self.attribute
"I hope this make sense"
man, it was clearer than water. Thank you so much.
What if someone is watching this video from Africa? It wouldn't be clearer than water for them.
@@JackDaniels08 everything would be
@@maximofernandez196 Btw, it's been almost three years since you posted your comment. How has life treated you since then? Have you found that learning OOP was worth the effort?
@@JackDaniels08 I'm the same person with a different account. Yeah, it is useful because it's used, but that doesn't mean you have to use it for everything, but rather combine the great things about procedural programming, functional programming and oop. A ton of people say that inheritance is not useful and that's true most of the time, because it sounds great at the start, but once you have to make a change to the parent class, things tend to break. Also, maybe python is not the best language to learn oop with, cause it's not an object oriented language. But overall I would say that objects tend to make sense to describe things in your program, and learning the basics is very very useful :)
@@maximofernandez196 Thanks a lot for your detailed explanation. And yeah as a beginner programmer I was curious about the uses of OOP.
at 39:00 the reason we do super().__init__(*args) is to extend the Pet.__init__() method and add more attributes without completely overwriting the Pet.__init__() that gives us access to the self.name and self.age attributes that are used in the other methods like show. So the way I think of inheritance is there are four ways of doing this: 1) straight stealing from the parent class , 2) completely overwriting the parent class methods, 4) partially overwriting the method (extending the parent method (using super)), 4) independent new method.
Tim is the kinda guy who uses his name as an example for a dog's name❤️
And give himself a 95 grade as well.
that's probably the best object orientation programming overview on youtube so far
He is so good at explaining the basic stuff that other instructors neglect
This is absolutely the most comprehensive look at OOP that I've ever had. Thank you for being so thorough with your explanations. I had multiple "oh so that's what that means" moments.😁
That's the sign of a good explanation.
Hey, its a year later, and I am having this same experience watching his video. This is a fantastic introduction to OOP.
The quality of these FREE tutorials are amazing. thank you Tim.
When I started learning OOP it took me a while to differentiate between methods types, so if you are struggling with that too, here's a quick summary:
Method = function related to that instance of a class. Use this type it when you are using values of the own instance (its own name, age, etc). You need to create one instance to use it.
Classmethod = function related to that class and that class only. Use this type when you are using values of the class, not the instance (For example, using a class that retrieves the total count of instances of that Class created and stored in a class variable). You don't need to create one instance to use it.
Staticmethod = function not related to that class. Used for organization purposes (For example, a Calculator class with add, subtract, multiplicate, etc methods). You don't need to create one instance to use it.
No reply, why? Thanks for this, it really helped me :)
This really helped, thanks!
Finally what I was looking for
Thanks for the awesome explanation. Keep up the good stuff 🤗
I thought staticmethod and classmethod are the same thing, the function related to a class not to instances of that class.
"if you can't explain it simply, you don't understand it well enough" - Einstein, your video really make complicated things easier to understand, i have paid about $300 on a programming course that explained OOP poorly, watching your video really helps me a lot
you are litterally the best teacher in programming
It's probably the best Python OOP course on UA-cam. Thank you so much, Dear Tim.
And a wrong one.
Just Wow, and Thank you, Tim! I am learning python for 3 years and all of the time I had issues with the OOP concept in Python as my degree is not IT ( I am a biotechnologist, PhD), but with this amazing video, I learned all I needed and looked for through passed years! Thanks a lot, I follow all of your job and advice all to use your channel! your teaching style is wonderful!
I have been learning py for a year and am quite comfortable with it now, but I still don't know OOP very well :,)
Tim I would like to thank you as I have made my first project using java, and its thanks to your tutorials that have helped me through learning python
Honestly man gotta say that this really helped me have a clear idea about what the hell was the "class" things i was constantly seeing on yt videos of people doing projects in python. Thanks man!
I cannot describe how glad I finally am to get to understand the basics of Object Oriented Programming in one afternoon! Thank you!
He's very good at explaining everything he's saying.
Programming since 1978. Now 72 years old. This is the first time that object-orientated programming has made sense. Many thanks
Wow
I never understood this subject, this and pointers were the biggest hurdles for me, hopefully after I watch this I will understand it completely. Thank you tim
Mate this was fantastic. I am quite an experienced programmer in my own area, as an actuary, I have a good amount of experience with R and python, never much use for classes in my line of work and I have always found the concept a bit confusing, both the how and why. This took me about 10 minutes to see the value add in OOP and understand it. I've had other people explain it to me for hours and still struggled to understand the benefit. Well done!
Same. OOP always seemed like a way to complicate code. Tim does a great job explaining how it simplifies code and why to use it
I studied computer engineering more than 10 years ago, never learned python or objective oriented programming and haven't done any serious coding in a decade. Your video was absolutely perfect for me to get back into the game. The pacing was just right for me to absorb the information at a casual pace and not get bored.
PS: Also like how clean Python is compared to C.
Dude this is genuinely such an amazing tutorial. You don’t bombard us with unnecessary technical jargon and you keep things simple. Love and respect from the U.K.
Simple and incorrect.
@@aammssaamm Funny that you can't prove it
@@狐-u2i Should I? 😂😂
@@aammssaamm If you can't then no. But if you can then its your choice, I'll hear you out.
@@狐-u2i Ctrl+F 😂
I've been studying python for some time now with Zed Shaw's book 'learn python 3 the hard way'. The whole process has been smooth till I got to oop, my confusion started. But now, watching your video, things are clearer.
Thank you for the effort you put into this, very informative.
It is 2023 I started and finished this today. Thank you TIm for helping me along my python journey.
Super easy to understand, all the other youtube videos were hard to understand but your's was perfect. Thank you so much
Says naming convention for classes is camelCase, when he should say PascalCase. Jokes aside, great content Tim, thanks a ton, just sharing this so we all could be smarter. Stay safe, much love
you should be a college professor. This is so clear and smooth
He has a lack of data architecture knowledge. College professors normally go through college first :)
A shame there isn't more professors like this guy. There is a lab professor in my college that mocks whoever doesn't fully understand c++ or that has many questions or has troubles completing the challenges..
Don’t know of any professors who are in their twenties, but go off I guess
@@aammssaamm data architecture knowledge???
That's a term used in Big data and Data science field. This has no use with OOP.
@@aammssaamm I laughed pretty hard when I saw this comment, you must have missed the "OOP for BEGINERS" part. Then somehow was able to deduce that he has no knowledge of "DATA ARCHITECTURE" based on an hour long video going over very basic uses of OOP. Okay mate, seems like all that university and math's you were going on about didn't teach you common sense haha.
Ayee perfect timing ^^ I'm having hard time with OOP but I'm pretty sure I'll be able to understand quite a lot from you. Thanks a lot for posting this
Same here lol , THANK YOU TIM
Me too man.
What I like about Tim's explanation is that he doesn't start his explanation with terms that are difficult to understand, thanks a lot Tim, god bless you
This is simply the best video on oops . Thanks a lot for helping me
'here is an old dog, here is a young one'
bro if Tim reached 34 years old he's gona be breaking some doggo world records...
maybe it's dog years
Absolutely brilliant lesson for high content to background noise ratio. This video has made for a really educational and enjoyable code-along morning. Thank you!
Dude - I love your videos. Thank you so much for doing this. Your ability to explain concepts is the best on UA-cam. Thank you!
I didn't even realize this tutorial was a whole hour long. I'm like "waittt elaborate more" then realized how much he was actually already going through. Wild how I just get sucked into these things
I rarely comment on UA-cam.
This video made me leave an appreciation comment for Tim. You are a great teacher. You explained everything like a primary teacher explaining alphabets. I have an udemy course on OOP. But, when I find this video, I haven't opened Udemy. Thankyou so much for awesome tutorials. I appreciate your efforts.
Finally an actually great video with in-depth and simple explanation, that's what I call quality content. The video made it much easier for me to understand the basics of OOP, also I'm not afraid of it anymore. Thank you again
It teaches you wrong stuff
0:44 into the video and i must say "Thank you" for the font size.. Well done mate.
I spent 3 days reading and trying to understand OOP , you just clarify everything , thanks
Really fantastic, you have a gift of explaining things very well, especially for someone so young. Thank you for your efforts in producing these videos!
After 10 minutes of watching, I am amazed at this great mind. Truly a hero. Thanks for this.
Most clear and composed video on Class so far. Thanks you.
That's what I wanted 🔥🔥🔥
KY krto bhava kutla ahes
Bcs zaly ka??
THANKYOU SO MUCH! I have my assignment due tomorrow and i understand none in my oop class. Really happy I'm starting to understand this, thankyou so much!
I was stuck on this subject in another platform because I couldn't comprehend what was being taught, then I came across your channel. Honestly I couldn't be happier. This is one of the best tutorials on UA-cam when it comes to OOP. Thanks for clearing things up.
The real question is, what kind of mad man would ever name their dogs Tim or Bill?
me :))
@saketh p lmao.
Tim Bill
Excellent tutorial, Tim - thank you!
Do you have any recommendations on what we can work on to improve our understanding of OOP?
this was the best video i have ever seen in my entire life. the audio, the presentation, the detail, the cross referencing of subjects. absolutely marvellous :)
Two year old class or explanation done simply. I took several singular classes dealing with in python "OOP" . Sort of got it but not really. Cleared the confusion for me. Thanks
Udemy: -Drake No*
Tech With Tim: -Drake Yes*
Tks from Brazil, man. I decided to learn Python in English, and I'm leaning more with you although I'm not 100% fluent.
The 'ah behy' shocked me for a sec. I didn't realize I was listening to a fellow Tunisian. Thanks for the video. It was helpful
Wayyyyy more confident in using classes now! If you can master classes you can really think about the world programmatically!
"I wanna delete dog object Bill"
*animal rights activists crash through the door*
lol
nha he took good care of the dog, I mean 38 is incredibly high age for a dog
PETA
There is nothing better than this.
Good job Tim.
Thank you!! This is better than 2 years I spent in programming school, although it's not a good comparison.
After 26 years I finally know how to POOP, this video is a godsend
Only in programming tutorials you will find a 34 year old cat named Bill
great video. but one thing that was confusing that you could've made clearer.
in class Course, you use "student" as an argument in method "add_student".
That's okay, but then you use "student" in your for-loop in the get_average_grade method. That makes me, as a beginner, think there are related somehow.
But they're not, so it seems. You could rename the argument in "add_student" method to "new_student", and you could rewrite the for loop as "for i in self.students: value += i.get_grade()
That would make it clearer.
Nevertheless, I thank you for your amazing work.
It's sad how my college classes, even though have some of the best professor's in the world fail to realise that just throwing a bunch of terms on slides will not get us those concepts... but the approach here that tim uses of just using simple examples however nonsensical ... do the job wonderfully well ... i think i will remember class with dogs and cats for a while now ... thanks mate
You made an amazing OOP summary in less than one hour!!!
One of the best video to explain how to use OOP. Thank you so much.
In this video, you'll not only learn the coding but also meet the 34-year-old cat and 10-year-old fish.
Apparently Tim has never had a pet or has an amazing vet.
I am taking a coursera online couse and I am at this stage. I was just not getting it and saw your video about OOP in python and you explained it really well!
I love the way you verbosely explains the inner workings of code even in its low level, it makes me understand more.
I'm only at minute 11 but this is by far one of the best OOP videos i have ever seen.
only video explained OOP well. you are truly a gem
Your arguments names are the same as your variable names and the self declarations are also the same. This makes your examples so confusing. Everything has some variation of the same name. For example self.name=name. That is confusing. Then your instance of your class matches your instance name. Course = course (self.student). Too many things have the same name in your examples. It would be so much simpler differentiate different objects, functions, classes, methods, variables, arguments with different names to we see that they are being used differently and keep them the same if they represent the same item.
Yes, you can call everything differently... which means you are writing more and more completely irrelevant characters into your code. What's that going to get you? Will it satisfy your OCD? Probably not even. The compiler doesn't care, the user doesn't care, the CPU doesn't care... so who are you doing it for? The little child inside your mind?
@Lepi Doptera You don't get it. If you are teaching then you must actually try and teach and differentiate different areas of your code so new coders can follow the data structures you are creating. New coders need to track the flow of data. Obviously if you are giving each object and global and local variable and functions and constructors the same name then it is going to confusing to students. If you are coding for yourself or an experience coder then he can write code any way he likes and will not matter. A good teacher tries to actually teach and makes each object with a unique name so the students can track the flow of the objects and variables.
@@tonysmith7759 If you are teaching, then you should be teaching important things, not how to bloat code. Your criticism leads to bloat, not to understanding. The first thing a good teacher would teach about OOP is what it does and what it doesn't do. In case of the combination of a dynamic language and OOP it basically doesn't do anything useful. For that, of course, you would have to know something about OOP that is fact rather than fiction. Which you don't. ;-)
@Lepi Doptera What is the point of your last message? How does sending your last message help you?
@@tonysmith7759 It doesn't help me. I already know how to code reliable systems. The last thing that makes a system reliable is how you name things that will be translated by your compiler into 32 or 64 bit addresses anyway. May I suggest that you read up on what happens when you compile your programs? Your boss pays for days, weeks or months of work for your carefully handcrafted variable and function names and your compiler removes all of them in a few milliseconds. :-)
Thanks Tim thanks a lot. Have been searching for a good video on oop and was stuck on this concept. Randomly on my feed this video popped up and with no hope of learning something new i started this video and this video literally taught me this complete topic. ALL THANKS TO YOU
Best tutorial I have seen in object oriented programmin
Good vídeo brow, your english is very easily to understand to me. I'm from brazil and i'm not fluent in english, but i can understand and comprehend everything you say.
Thank you fom this amazing vídeo.
Dude, Keep going
I was really dreaming to understand OOP in python, I've searched for a lot of videos, watched them haven't understood but you ,
you explained every thing and I understood them clearly.
And I'm just a 14 yo kid who have python dreams.
Thanks,
very good summary, the only other thing i was hoping you'd mention was public protected and private attributes/methods
thanks for sharing! you summarised it better in less than an hour than my teacher in multiple classes haha
I'm impressed! I watched some vids about that topic and could understand shit... came here and in 10 minutes I'm illuminated, thanks a lot man!
neat and crisp presentation. i came here after getting confused by MIT's Introduction to Computer Science and Programming Using Python where Prof.Eric Grimson presented the same topic. Thank you for your clear, easy to understand approach and presentation.
Dude, literally saved my life . This is the best OOP video Ive watched and its broken down so, so well. Im so glad you made this Tim , literally godsend. Thanks so much. I now understand OOP and enjoy it due to you :D Thanks again for making it so easy to follow with the examples!
Lol I'm in school learning python and you literally explained this better than the course I'm taking. Gold star for you.
Thanks a lot!!! I hope that this will helps me pass my coding interview test:-)
(TPM role but I need to do a coding test)
Superb !
Class, method, object, instance, classmethod, staticmethod etc...
Masha Allah Your language is clear so we understand your explanation Thank you
As someone who learnt Java and then python I understood certain things:
1. The __init__ method is the python equivalent of a constructor as it instantiates a class.
2. The object definition is similar to java with object name = classname()
3. There’s no data / return type in python but you know it’s void if it doesn’t return anything and if it does then it’s not void.
4. You have both parameter and non parameter functions.
5. You can access variables created inside init function outside. In Java however that’s not possible and you need to create variables outside the constructor (Called instance variables). You can give values to them inside tho.
6. Inheritance in python simpler compared to Java. In Java, when you define the derived class constructor you give all the parameters and to define the super class constructor you write Super(parameters for super class); and define the rest as usual. To execute a super class method on a sub class, you use super.method(); (useful when you have the same method names in super and derived class)
Small nitpick: Classes are in Pascal Case, Camel Case has the first word starting with lower case and all subsequent words starting capitalized, e.g. camelCase.
Thanks for this, new dev here lol.
Love your logic building skill.
great contetnt man amazing, better than a lot payid courses over the internet
HANDS DOWN! the best explanation of classes I've ever seen. Great work, thank you!
I have been trying to understand this issue for a long time. And I could not understand at all what they were talking about. 2 minutes in your video, and I already understood what it was all about. Thank you Thank you Thank you Thank you I really love you so much, I learn so much from your courses. So much, really. I'm 16 and my dream is to be a software engineer, and you do not understand how much you help me in your videos. Thank you Thank you Thank you!!!!
I'm a semi-beginner and I understood everything.. great job, thanks!
I have struggled to "get" OOP in the past, and this video was fantastically helpful. Thanks!
Great video, Thank You. Finally an explanation to understand 'self'.
I took the OOP course in CS with Java and I can say this sums up at least half of what we saw in a whole semester. Of course you need to do your own exercises to really learn it but the information here is really concise instead of going through unnecessary abstractions to make this a 5h video.
Gonna have to watch that again... SO GLAD YOU MAKE THESE VIDEOS!!!!