I completed the four-course Python Programming Certificate program at O’Reilly School of Technology a few weeks ago and now that I’ve had a while to think about it I thought it might be useful for anyone else considering the program to jot down a couple of paragraphs, especially since when I was first looking at the program I wasn’t able to find anything about people that had gone through the whole thing.
First, a word about where I’m coming from. I’d written some Python code at/for the day job for a year or two prior, and felt fairly comfortable with the language before I started the program. I wasn’t really looking for a certificate à la Java certification, I was mainly looking for something that’d give me more Python experience and make me feel comfortable in saying I “knew” Python.
All in all I quite enjoyed the program. There’s plenty of details online about how OST courses work but in a nutshell it’s read a lesson and complete exercises as you go, then a quiz or two with three or four questions and a programming assignment to turn in. The assignment’s usually 100-odd lines of code (not including unit tests), with the final assignments at the end of each course a little more involved. Each course has 15 or so lessons, and OST says you should expect to spend about 40 hours total on each course. I didn’t time my progress but I don’t think it took me that long, but your mileage may differ.
Of the two I very much prefer the assignments – I found the quizzes a little too “copy-paste” from the lesson, and in a lot of cases it seemed as though you had to be fairly precise with your answers’ wording to get it right. I found the wording for the quizzes to be a little fuzzy occasionally so that I had a bit of a tough time figuring out exactly what the question was asking.
The assignments on the other hand were pretty enjoyable for the most part – you’re given a task to code and some criteria to meet, then you’re more or less left to your own devices. The instructors were pretty good about pointing out places your solution could be improved, alternate ways of doing things, and so on.
After you’re taught the basics of Python, the rest of the coursework is primarily looking at the use of specific modules in the standard library. Some modules get more of a workout than others, so for example there are several lessons on both Tkinter and MySQL.
By far my favorite aspect of the program was the enforced unit testing and test-driven development process. Almost at the beginning you’re introduced to unittest, and once the preliminary introductions are out of the way you’re expected to use TDD for all the assignments. In fact if I remember correctly you’re even told at one point that your assignments won’t get a passing grade without unit tests. I found this to be the most valuable part of the coursework – by the time I was done unittest and TDD were completely second nature to me, and it’s probably the most important thing I picked up from the program.
If you’re already a hard-core Pythonista I don’t think there’s much in this program you won’t already know. On the other hand, if you’re looking to get a little workout with Python or coming to it fresh I can definitely recommend it. And in case you’re wondering, if you complete all four courses you do indeed get a certificate, suitable for framing. :)