I've been trying to teach my daughter (11 years old) Python and she gets quite confused by the whitespace-as-indent construct. For example, it's not at all obvious when a block ends and you have to unindent / go back to a lesser level of indentation. Flower brackets (C, Java, etc;) or explicit ENDIF are much better. This course [1] is quite good for kids of that age.
And, oh. Just realized that self.name (object.variable) quietly retrieves the Class.name class variable (class "attribute" for the pedantic) :|
Hate how dynamic languages bend over backwards to not report an error. I would much prefer the "inconvenience" of having to compile my program and then be told what all is wrong at compile time. Sad that this is now popular. The language is very adhoc in general.
1. https://www.udemy.com/course/real-world-programming-for-kids...