Not having a technical degree, I’ve had to learn most of my analysis skills on my own. This fits well with my personality because I am the type of person who can be easily bored and always likes a new challenge. Because our field is so unique in that it is very multidisciplinary and covers a wide range of technologies, I think it is important for us to share our experiences with learning so that others can decide what to learn next. So that brings me to my current endeavor: Python.
I actually started learning with Learn Python the Hard Way and the Python app for iOS on a long road trip a fewmonths. Admittedly, not the most efficient way of getting started, but it was more interesting than rural Pennsylvania. Since then, I’ve been using it more often in practical applications to try and “think Python.” Here’s my list of reasons (so-far) why I feel Python is worth learning.
The New De Facto Academic Language
Within the past few years it seems there has been a shift from C/C++/Java in academia to Python. Especially in online free education, Python is almost exclusively used. Take a look at Udacity, MIT OpenCourseWare, and Coursera and you will find a multitude of classes that use Python. Learning Python will allow me to jump in to some of the higher level classes that assume a familiarity with the language.
Dem Data Structures
Need a list? x = ["Apple", "Orange", "Banana"]
. Done. Dictionary? x = {"Apple":100, "Orange":101, "Banana":102}
. Done. These are obviously supported in all main languages, but the simplicity of the structure is great. You don’t even have to import any of the libraries.
Open Source
I’m not an open source fanboy, but I definitely appreciate and respect the community. One of the greatest benefits of open source software is that it generally can be installed and used quickly on any computer. Python 2.7.3 for Windows 64-bit is only 15 MB and as a test, I just ran through an install and setup process in under five minutes. Of course, you also get all of the other benefits of open source software: access to source code, freedom to distribute, ability to roll your own modifications, etc.
Great for Scripting
You can do everything from adding numbers in the console to creating web applications with Python, but I’ve found it most useful for short scripts. If I need something relatively small, I can easy pop open a text editor, write a few dozen lines of code, and have a working program. Compare this to my other main language Java where it almost feels like a chore to create a script/task-automater. Python is a more abstract language than those in the C family and I find that to be very intuitive for putting together a script.
There are a lot of neat aspects to Python and every time I look something up on StackOverflow, I learn some new trick for writing more Pythonic code. I highly recommend it as a starting programming language or as a scripting language.