Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community!
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.Start your free trial
This is agonising
I have enjoyed the previous modules in this track, but when it got to this part on object oriented programming, the examples used have not relatable (I imagine they might be fun to instructor). Sadly, it does not help with understanding the concept. I'm disappointed
James Arnold3,986 Points
I completely agree. The introduction of the magic methods is where Kenneth loses me. He continues to build off the NumString class and it seems completely pointless and doesn't really give me any perspective of how to utilize it in a real program. It should be redone.
James Arnold3,986 Points
Chris Freeman - I appreciate your constant help around the forums answering questions and concerns (many of which I have benefited from reading) but it's the teaching style of Kenneth that is tough to digest. His style of posing questions he already knows the answer to is lost on the viewer when he doesn't go into any depth of how he knew what he had was wrong, and how he got to having the correct solution. I've restarted the OOP section, taken very in-depth notes and still got lost at the exact same point as I did the first time through (Built-in magic methods such as add() and why you would use them). Now realizing it's not an issue that I'm not paying enough attention or misunderstanding, but the content is not explained well enough. I'm concerned I will have to find further resources to cover this concept for me, as Kenneth just doesn't seem to be able to break it down well enough for a beginner.
James Arnold3,986 Points
Phil Grollo Carl Crowther & anyone else who will eventually get to this post - I would HIGHLY recommend (no, seriously watch them) going through the free Corey Schafer Python OOP section he has on YouTube - https://www.youtube.com/watch?v=ZDa-Z5JzLYM - after watching all of these videos and coming back to re-watch Kenneth's videos it was MUCH easier to digest. I guarantee you will have a much better understanding with this supplementary material. Good luck coding to everyone!
Phil Grollo1,519 Points
I'm glad I'm no the only one. I've really enjoyed every other section in python and felt like I was learning the code. As soon as I started with Kenneth and especially Object oriented python I've begun to feel lost. It's actually made me spend less time coding because I can't figure this stuff out. He goes through everything so fast and barely explains anything. I've also taken in depth notes but feel like I just want to skip this section completely. Plus he never changes the examples. He just continues to build upon something I didn't understand in the first place.
Its comforting to know I'm not the only one having issues with Kenneth's style and chosen example. Craig, was solid, Ashley was easily the best to learn from hands down, as she took the time to run through modifying a previous example and updating it with whatever new concept your where learning, thus building upon each concept. She chose simple easily understood examples, so that we weren't tripped up trying to remember the example, and could focus on the concept being taught. Kenneth's crazy thief class, is unnecessarily complex. I like alot here it seems, find myself replaying these videos over and over while searching online for further information to assist. I've not had to do this with any other classes.
Chris FreemanTreehouse Moderator 68,404 Points
Why talk about dunder methods in a beginning course? Good question. It’s good to know they exist, but one can code for years and never need to modify them.
It could also be said the OOP is an advanced subject and this course is the beginning of the advanced material.
Here’s all you need to know at the beginning:
- everything in Python derives from some
classand can be reference directly as an
instanceof that class
methodsof a class are used to manipulate the class
- the dunder methods are referenced when an instance is used in a context such as math, comparisons, indexing, etc
- the standard Python objects (
int, etc.) have all the dunder methods defined for you
- there is a specific dunder method for each context (
__lt__less than for comparisons and sorting, etc.) One should not invent new dunder method, but overriding them is OK
- you only have to worry about dunder methods if you create a new class that will be used in a contextual way and Its inherented dunder methods are insufficient (a rare event)
So my advice is:
- understand why dunder methods exist
- revisit this topic when you better understand class inheritance and the use of
Post back if you need more help. Good luck!!!
I absolutely agree. I went through all other modules very diligently, understood and enjoyed them. Please Treehouse, could you change the pace, structure and examples of the object oriented Python? This is a beginner course and Ken is going at breakneck speed (his natural tendency is to speak fast anyway), which is not helpful or motivating for those who really want to learn Python.
Literally going through the SAME problem. I almost gave up on learning this because of his teaching style. It is disappointing that treehouse is not doing anything to fix it.
Md. Syful Islam9,463 Points
It is such a relief that I am not the only one struggling with OOP. I will request treehouse to crate new easy going content for Object Oriented Python.
I really liked Craig's videos. It's sad he's not at Treehouse anymore...
Md. Syful Islam9,463 Points
Python used to be a fun to learn, easy to grasp language for beginners, and then Kenneth started teaching python in Treehouse.
Yes, this is getting to be extremely frustrating. I felt that I had a fighting chance when working on challenges from previous units/teachers, but the challenges with OOP seem to assume that we know skill sets that haven't even been touched on yet. This is my 4th time going through OOP in the last 3 weeks, and I'm still fairly lost. We're paying money to be taught this at a beginner level and I don't have extra hours each day to try and research online or via the community why/how something works.
tariqasgharUX Design Techdegree Graduate 30,519 Points
I think this course being labelled as Beginner is off. It should be (atleast) intermediate, based on the complex topics and code challenges. Even though I can figure out what Kenneth is trying to do (after some time), being an experienced programmer. I don't see beginners getting through this course, without doing a lot of research and study elsewhere.
Wen Jian Kwok, your frustration sounds very relatable! It is totally o.k. to cut yourself some slack in this course. I have done all of these things and it seems to be working:
Take a day or a week or two off from the course.
Go back and watch the video again.
Reduce the speed to 0.75.
Take notes, writing what each method does. Definitely take notes on what you type in the shell and what it returns in response to each method.
Change the variables to names and characters that you can identify with better. For example, instead of being a Thief, the second time around, use a class Sorceress or Wizard with a cloak and staff.
Give yourself plenty of time. You've got this1
Then why are the dunder methods part of the "Beginner Python" course?
I am having the same issue. From the start, the OOP lessons seemed to rush over the basic concepts and dive into complex examples(not beginner examples), and it only got more complex as the lessons advanced. At one point I was just copying Kenneth's code without understanding anything, and it got very frustrating! I had to stop and go to my udemy courses and youtube to get a better explanation. Unfortunately, Kenneth's teaching style was not the best fit for this lesson. This OOP section needs to be redone.