>> Monday, June 17, 2013
When I started working at Mozilla, I didn't know Python very well. All of the code that drives our continuous integration is written in it so I've had a spent a lot of time becoming more proficient. I've taken a number of free self-study classes/tutorials that others might find useful getting up to speed with Python.
Google Python class - Two day class that describes how to manipulate strings, dictionaries, lists. File I/O, regular expressions and sorting algorithms. Class lectures that were recorded at a Google training event are available on youtube, and the exercises are pretty straightforward with a solution key to check your work. All the exercises are done using the Python installation on your local machine.
Code academy has a Python class. I did the exercises for the topics that weren't covered in the Google class, including list comprehensions, lambda expressions and OO in Python. The exercises are completed and validated on the website.
The best course I've taken so far has been the nine week Interactive Programming in Python class offered by Coursera. Coursera is a company that offers university courses for free. You receive a grade and certification of completion, but not an actual credit at the institution. The Python course I took is in conjunction with Rice University. For this course, you have to register for the course when it's run and complete the work each week. There are an hour or so of video lectures, a quiz or two and an assignment to complete for around 8-10 hours of work each week. After you submit your assignment, you're asked to review the work of five other students. This is how to scale marking assignments for the thousands of students enrolled in the class :-). The code for your assignments is written in the browser, on the CodeSkulptor website.
|Syllabus for coursera course|
|Screenshot of final asteroids game|
Mr. Releng also took this course at the same time I did as he is also using Python at work. I said to him one day that I certainly wouldn't wanted to have attended all my university courses online as I always liked to ask questions in class. With the pre-recorded lectures, the only way to ask questions is on the associated forums. He agreed, but said while this was probably not the future of university, it was certainly great for continuing education.
Other Python resources I looked at include http://www.learnpython.org/. The pyvideo website includes talks from many of the PyCon and related conferences here which are interesting to watch.
What resources did you use to learn Python?