I am using and learning python since two and half year now. But 2013 was the year, I really picked this on full throttle. Used it in many live projects for quick prototyping and experiments. Successfully completed an online Rice University course with distinction. Blogged about it here.
A few weeks back, was thinking of taking this skill to the next level. This thought led me to this post on stackoverflow.
This is the top rated reply. Like most of the ideas there but I think the reply by Humphrey Bogart is the best advice for anyone aiming to progress from apprentice to guru in any field.
I thought the process of Python mastery went something like:
- Discover list comprehensions
- Discover generators
- Incorporate map, reduce, filter, iter, range, xrange often into your code
- Discover Decorators
- Write recursive functions, a lot
- Discover itertools and functools
- Read Real World Haskell (read free online)
- Rewrite all your old Python code with tons of higher order functions, recursion, and whatnot.
- Annoy your cubicle mates every time they present you with a Python class. Claim it could be “better” implemented as a dictionary plus some functions. Embrace functional programming.
- Rediscover the Strategy pattern and then all those things from imperative code you tried so hard to forget after Haskell.
- Find a balance.
And here’s the reply by Humphrey Bogart.
I’ll give you the simplest and most effective piece of advice I think anybody could give you: code.
You can only be better at using a language (which implies understanding it) by coding. You have to actively enjoy coding, be inspired, ask questions, and find answers by yourself.
Got a an hour to spare? Write code that will reverse a string, and find out the most optimum solution. A free evening? Why not try some web-scraping. Read other peoples code. See how they do things. Ask yourself what you would do.
When I’m bored at my computer, I open my IDE and code-storm. I jot down ideas that sound interesting, and challenging. An URL shortener? Sure, I can do that. Oh, I learnt how to convert numbers from one base to another as a side effect!
This is valid whatever your skill level. You never stop learning. By actively coding in your spare time you will, with little additional effort, come to understand the language, and ultimately, become a guru. You will build up knowledge and reusable code and memorize idioms.
Learn something from theses posts on python