Learning Python the harder way with O’Reilly School of Technology

Patrick Beeson
4 min readJan 23, 2015

--

I’m a web developer. And, as is often required for folks in my profession, I need to have knowledge a mile wide, and an inch deep.

This cliche is especially true working in a small creative agency as I do.

But sometimes that’s not good enough for complex projects. It’s also boring.

After a few recommendations from folks at last year’s DjangoCon, including O’Reilly School of Technology (OST) instructor and Python-guru Pat Barton, I signed up for the Python certificate program at OST.

The Python program at OST was written by former director of the Python Software Foundation Steve Holden.

Yes. It’s for Python 3.

Despite having a voracious appetite for subject-matter books and knowing when to RTFD, I’d never taken an online class to improve my understanding of web development. These efforts never seemed to be worth the money, or time.

OST changed my perception of online education for the better.

The program

OST follows a try/fail paradigm where students are encouraged to submit assignments even if they’re not perfect (or even working), to get feedback from the instructors. Feedback was never just answers, but helpful input to redirect your thoughts in the right area.

I dig the tarsier.

Each lesson also has one or more quizzes to complete, some of which require writing code to show your understanding of what’s being asked.

Students are encouraged to use books, docs and even Stack Overflow for research.

There are no traditional grades in OST. Rather, students are given a pass or fail.

All homework and quizzes are delivered back with helpful feedback on refactoring the existing program or alternate solutions.

And bonus: You can download your programs to show potential employers or for reference. I posted mine to GitHub.

The courses

My Python certificate program was divided into four courses: the creatively named Python 1, Python 2, Python 3, and Python 4. (Click-through to see goals and offerings for each course.)

Though the numbering suggests taking these courses progressively, many of the individual lessons and assignments focus on specific aspects of the language.

For example, Python 1 introduces data structures (dictionaries, tuples, sets, lists, etc) and manipulation of data along with built-ins, module imports, and formatting, while Python 4 tackles advanced uses of generators and decorators as well as multi-threading, multi-processing and methods of refining your programs.

Barton was my instructor for Python 1 while the equally thoughtful Kirby Urner lead me through the remaining courses. Both provided just the right amount of feedback in a positive manner.

Students are introduced to testing early, first through docstrings and later (in Python 2) to unittests and TDD. This was tremendously helpful since I’m a new convert to this style of development.

With the exception of a lesson using optparse (as opposed to the newer argparse), everything was up-to-date and followed my understanding of best practices.

My experience

OST provides you one year to complete a certificate program. ONE YEAR!

I decided early-on I would devote a few hours each day to completing my courses. This was helpful for my progression through the lessons and for ensuring I practiced an aspect of Python every day.

I began the program finishing one lesson — there are approximately 10 to 15 lessons per course —per day but quickly escalated this after breezing through the basics.

I had to wait a day or two (or more) for my instructors to grade each quiz and homework. They are humans, after all. ☺

Using what little hours I had available as a new dad, I was able to close out all four courses in a little more than 100 days without rushing.

The OST Eclipse IDE in their virtual environment.

A word on OST technology: It needs improvement.

Users of Code Academy and Code School will likely be disappointed. Heck, anyone other than users of Eclipse on Windows will be bummed because that’s what students must use in OST’s virtual environment.

And while I appreciated using an actual IDE instead of simulated interpreters, I found the environment slow and crash-prone in OSX.

The result

I learn best by doing. Whether it’s brewing beer or racing bicycles, if I can’t participate in the activity I’m interested in, I find it hard to grok.

OST’s “learn by making” approach combined with fantastic human instructors worked well for me and my preferred method of learning.

I came away from this certificate program with more confidence in my programming abilities and a tremendous appreciation for, and understanding of, the Python language.

Give OST’s Python program a try if you’re new to the language or, like I was, are seeking a more complete understanding of what’s available and How to Do It Right.

Have you tried or completed an OST course? Let me know your experience!

--

--

Patrick Beeson

Full-stack developer for @thevariablelab. Cyclist. Homebrewer. Lover of mountains big and small.