On Wed, Feb 15, 2012 at 7:46 AM, Joel Goldstick <joel.goldst...@gmail.com> wrote: > Programming is all about doing it -- over and over. I think Malcolm > Gladwell proposed that it takes 10,000 hours to get good at anything. > Its great to be smitten, but there is no shortcut.
Jumping in because this is a favorite topic of mine. The 10,000 hours has been followed-up on a lot, and as a I recall (I'm no expert) it varies considerably. Experts (meaning that they have an intuitive approach to problems) can arise in much less time, while others (with a rule-based understanding only) can put in far more than 10,000 hours and still not become experts. What I've found works for me personally is to combine _doing_ (which is essential and unavoidable) with _variety_ in the tasks and also to google the heck out of "best practices", "anti-patterns", and "tips" on the topic. Make sure to get a feel for the reliability of the source of these tips, and don't trust them blindly, instead try to understand them. For example, there are three levels of progression in handling how Python uses "self" in objects: 1) This is stupid, other languages are smarter than this. 2) I do it without worrying about it because I'm used to it, but I don't really get why it works that way. 3) I understand how "obvious" alternatives won't work as Python is modeled and have come to appreciate the way it works. You can't jump straight to #3, but if you know it's there you can regularly poke at the issue as you're otherwise learning (via doing) and get closer to a higher understanding more quickly than writing 10,000 hours of "To Do" lists will get you there. Other common enlightenments to strive for: * I grok list comprehensions * I understand generators * I understand decorators (where understand is more than "can use") -- Brett Ritter / SwiftOne swift...@swiftone.org _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor