I first came across Python in summer of 2014.
I was doing my undergraduate degree in Chemical Engineering and I wanted something to learn during my summer break. I thought it would be a great idea to learn to make a video game, so I set about finding an easy programming language to do that. Python was on top of the list of easy languages. But, unfortunately, Python was not the language to use for making games. Games need to be fast and Python cannot compete only on sheer speed with languages like C or C++. Without getting too technical, C or C++ code, when run by the computer is converted directly into assembly language which is what the chips inside computers understand. This is known as compilation. Python, on the other hand, is first converted into C code in a process called interpretation and only then compiled into assembly code. So intuitively, it is slower than C or C++. While Python was not the best avenue to take for my video game dreams, the idea still stuck with me especially because I saw how easy it was to learn and follow. I found time to learn Python purely from watching videos on YouTube. Even to this day, I have yet to read single book on Python. By following along with online tutorials and testing out variations myself, I came to know of most of the important modules in Python. Overall, simplicity and readability is built into the philosophy of Python, allowing me to pick up most of the language in just two months.
This still did not prepare me for real life application of my Python knowledge. To make an analogy, it felt similar to someone learning French from videos while never having spoken with a native French speaker. However, two years later, while taking part of a consulting class in the MBA program, I finally got my chance to work on a real project with Python. In Entrepreneurship and Media of the Future, a class with an even mixture of both MBA and Graduate Journalism students, my team had the opportunity to work with The Associated Press on a project focusing on the intersection between news and technology. They wanted to put their news on the new wave of smart speakers such as the Amazon Echo or the Google Home. With this in mind, I turned to Python and was able to apply the major components of our project within a week. The programming I implemented could read news from the AP, search for a specific news topic, and summarize a story, among other things. This was the first major project I had with Python and it really solidified my understanding of the language. I was then able to use the experience I gained from this project to create a machine learning classifier for Sears, which really improved my overall knowledge in Python, machine learning, and data science. In fact, it was that project which made me decide to find a job in analytics.
I cannot overstate the flexibility and versatility offered by Python.
Yes, it’s technically slower than C or C++, but that’s like saying a Ferrari is technically slower than a Bugatti; they’re both still very fast cars. For almost all purposes, Python is as fast as any other language. The vast range of user-created modules more than makes up for its relative slowness. For example, the package scikit-learn, which contains all the parts necessary to make machine learning models, makes it so that programs are around only 100 lines. Without it, they would probably run to thousands of lines. The module pandas put Python on par with R or even Excel in terms of data manipulation. There are also other modules like numba for example, which can access your GPU to make calculations lightning fast. Tensorflow is another major module released by Google which can put the power of neural networks on your fingertips. People have been able to create all sorts of amazing neural network models, which would have been pretty much impossible 10 years ago except for PhD researchers.
In conclusion, the outlook for Python is very bright. It is is completely free and makes enterprise software like SAS or SPSS look like outdated dinosaurs. It is constantly updated and the rule of thumb is, if you think of a simpler way to do something, then someone has implemented it already. It can compete with R directly and even outshines it in certain areas. I am currently teaching Python to interested Crosby MBA students once a week because I truly believe in the importance in acquiring this skill set, especially if you’re going into data science or analytics.
Good luck to you all and happy coding!
Natarajan Mahalingam, 2nd Year Crosby MBA Student
Natarajan (Nate) is a current MBA student at the University of Missouri with a focus on Marketing Analytics. His background is in Chemical Engineering, where he earned a Bachelor’s and Master’s degree from the University of Birmingham in the UK. He developed a keen interest in programming, and subsequently taught himself Python and R programming. He plans to pursue a career in data analytics and machine learning.