As a fledging data scientist, I felt that my humanities background prepared me well to analyze data, showing the story innately hidden within the data. My programming skills, on the other hand, were certainly lacking, as they certainly don’t teach C++ in French 101. This prompted me to start learning Python last year, as the language is high-level and thus closer to written English than other languages, and it’s widely used in the data community thanks to modules such as SciPy and NumPy.
While I’m by no means a seasoned Pythonista just yet, I feel comfortable enough at this point to use the language to handle my data needs. However, the process of getting here was not always easy. Besides being a stereotypically busy graduate student, I started learning R, SQL and Java in my courses immediately after beginning with Python. At times, it was hard keeping all four of those languages separate in my mind. But now that summer has officially arrived (and I mean that metaphorically as it snowed yesterday in Syracuse), I’ve had plenty of time to devote to truly learning Python.
For me, the old adage of “learning by doing” is by far the best way to learn how to program. Until you get your hands dirty in code by writing, messing up and then fixing it, you truly won’t understand what is happening by simply executing or reading it. When I decided to start learning Python, I started with Codecademy, which truly takes to heart the “learning by doing” philosophy. I struggled a lot with the logic of programming, as I think all neophyte programmers do.
What was the difference between a for and while loop? When would I use a class instead of a function? Why do indices start at 0 instead of 1?
But I kept doing and redoing the Codecademy assignments until it clicked. And if things did not come easily, I would refer to outside resources such as Stack Overflow and Google to frame the concept in a different way. When things finally clicked, programming started to seem less nebulous and esoteric. I was so proud when I was able to write a script that played a rudimentary, text-based version of Battleship or when I was able to write a function that found the sum of all prime numbers below two million. Working on these mini projects has helped me focus and motivate my learning as I’m coding to create tangible, useful output.
After I exhausted Codecademy, I wanted and needed more to truly move past that beginner stage. I recently began a course on Coursera called “Interactive Programming in Python” that involves creating mini-games each week with Python (this week we are building Pong), and I started tackling some of the problem sets at Project Euler (great for honing your math skills too) and Learn Python The Hard Way. I’m no where near close to being a Python guru, but I’m slowly making progress there each day.
Now that I’ve shared with you how I have been learning Python and the resources I’ve used, what have been your experiences learning a programming language? What other resources do you recommend?