dougjohnston

Web Application Developer & Designer


Interactive Python

Python has been on my list of languages to learn for several years. But up until a few months ago, I had never taken the time to even look at the docs. Coming from Ruby, I guess it always felt too similar. Improving my JavaScript skills seemed like a better way to spend my time. But, back in October, I happened upon the Intractive Python course at Coursera and decided to give it a try. I’ve watched plenty of standalone instructional videos (railscasts, peepcode, etc.) in the past, but prior to October, I hadn’t participated in a structured educational couse since college.

Coursera’s Interactive Python course (taught by a handful of wiley CS professors from Rice University) appealed to me for a number of reasons:

  • Online learning is all the rage these days and I wanted to see what it was all about.
  • Python has been on my list of languages to learn for several years.
  • The course is based on building games in Python. I’d never done any real game development and it seemed like another cool thing to learn.
  • The course was free.

Earlier this week, I finished my final program for the class - a fun little game based on Atari’s 1979 classic, Asteroids (view my version of the game - just click the ‘play’ button). In many ways, the original Asteroids is still better, but building the game did teach me all about animating sprites, collisions, and how to code a simple physics engine. I knew about these concepts at a high level, but had no real world experience with them.

In addition to learning the basics of game development, I was taught the basics of Python along the way. As the course is designed for beginner-level programmers, there weren’t many concepts that were new to me, but I still found value in learning a bit of “The Python Way”. Can I now be as efficient in Python as in Ruby? No, but I have added another tool to the toolbox. I’ll likely still choose Ruby whenever I can, but I’ll no longer shy away from Python code.

Lastly, some comments about the sturcture of the course and the online learning environment in general. The Coursera site itself felt very full-featured. It’s still a little rough around the edges, but its ability to offer video lectures, quizzes, projects, and community forums was appreciated (by me, at least). The instructor’s videos were informative and reasonably well done and I enjoyed their attempts at humor every now and then. Programming was done in CodeSkulptor, an online programming environment built by one of the instructors. As CodeSkulptor didn’t allow for multiple files, coding a multi-class program got a little cumbersome, but the site served it’s purpose well.

In the end, I can’t say I fell in love with Python, but the course did teach me some new approaches to solving problems (modular arithmetic, for one). However, I was definitely sold on the value of online education, especially when it’s coming from accomplished instructors at prominent institutions. Speaking of which, Nobel Prize-winning economist Bob Shiller is teaching a course on Financial Markets this Spring and I’ve already signed up.