I’ve been spending a good amount of time recently learning Python. Why?
- ego – I want to be able to walk the walk and speak somewhat intelligently with other tech heads
- staying relevant – I have another 20-25 years of employment ahead of me…
- seems like the new Java – I never learned Java (not sure why ) and always felt left out (back to #1 – ego)
What does learning really mean? I’ve seen a lot of people learn a lot of things, but few actually gain an understanding and the ability to apply the learning. To me, the true test of learning is the direct application (base learning) and extrapolation (advanced learning). Reading a book, typing in examples and getting expected output is just the knowledge that there’s something out there – here’s an excellent Buddhist look into knowledge: http://www.sacred-texts.com/bud/mzb/oxherd.htm ..
Another aspect of learning is understanding WHY it’s important to know what you’re studying, why other people see it as meaningful (insight into others) and why it’s getting the focus. Much of which I’m still trying to get my hands around in regards to Python.
So, what steps did/am I taking in learning Python? Basic google’ing Python was the start, which quickly lead me to http://python.org/ - the official Python website. From there I moved to Active Python- http://www.activestate.com/activepython/ - where I downloaded the interactive Python interpreter (and later Komodo edit for a better editing environment). Having an interactive/interpreter made learning and experimenting a lot easier – typically a new language means a new IDE, finding a host or setting up a development environment, etc. – nice thing about Python (one aspect of why its getting the buzz) is the low pain threshold of starting. Being ‘old school’, I also purchased a couple of books – O’Reilly Learning Python and Expert Python Programming: Best practices for designing, coding, and distributing your Python software which I’m still reading. I followed the typical approach of skipping around to interesting sections and trying the code out in the Active Python Interpreter….another important source of help was StackOverflow (http://stackoverflow.com/) – tech heads ready to answer the most basic questions.
So, now for the good, bad and ugly aspects of Python – SO FAR, I see Python as a very clean, easy to use multi-platform programming language. In many ways it reminds me of Pascal, back in the 80’s (aging myself), a step in helping programmers program correctly. Being a new language, specifically developed for its currently environments, it does not have a lot of the quirks and kludges php, c# and other languages have (if I offend…oh well). The ease of learning (or unlearning and relearning) is there and the interpreter provides for ready/quick feedback. I’ve:
- .played around with creating a UI (Windows) – not a pleasant experience
- interacting with various data sources, like websites, files and databases – fun and easy
- built classes, generator functions, modules – very easy and eye opening to the strength of Python
Next steps for me include:
- finding a project that I can use Python on (currently looking into creating an opensource requirements management project)
- looking into Python web development frameworks (seems to be a decision between Django and Pylons)
- still looking into the interesting python’ic aspects of Python. One pattern I’ve found interesting were the generators (using yield within a function) and redefining superclasses…huge improvements over what I’ve experienced in other languages…
No comments:
Post a Comment