Harry R. Schwartz

Software engineer, nominal scientist, gentleman of the internet. Member, ←Hotline Webring→.

Learning Programming with Python

Published 13 Oct 2012. Tags: computer-science, personal, python.

While in grad school I worked as a teaching assistant for a few introductory computer science classes, where I accumulated a few handy resources related to Python pedagogy. I’ve since graduated, so I’m recycling my old teaching page as a article for my site.

If you’re taking a first-semester computer science class using Python (or teaching one!), you might find some of these links helpful.

The number and quality of really great, free online resources available to a computer science student is just obscene. Take advantage of them! Your textbook and lab manual are probably perfectly OK, but there’s a lot of other good stuff out there, too.

Think Python: How to Think Like a Computer Scientist
If I taught this class, this would probably be the textbook. It’s an absolutely excellent introduction to the field of computer science. And you even get to learn Python along the way.
Khan Academy
Salman Khan is a friendly polymath who’s produced thousands of videos covering basically every topic imaginable, including programming in Python. Great lectures on strings, conditionals, loops, and other introductory material.
Learn Python the Hard Way
Zed Shaw’s online book Learn Python the Hard Way contains a bunch of good code examples for accomplishing specific tasks. Actually working through the whole thing is a bit of a slog, but it’s a handy reference.
Dive Into Python
This book is targeted at folks who have already done a little programming in another language but are new to Python. That being said, there’s a lot of good, in-depth material in here. The stuff in chapters 2–6 will be especially relevant.
Google’s Python class
If you’d like another lecturer’s perspective on things, there are a few really nice videos here, complete with notes and code examples.
MIT OpenCourseWare
Lately the fine folks at MIT have been making a lot of their course material publicly available through the handy OpenCourseWare project, including these lectures from their introductory CS class.
The Official Python Documentation
The official docs are just packed with information. Maybe a little too packed. It’s dense, and until you’re a little bit more experienced this might not be the first place you should check. If you ever need to know exactly how a particular function or module works, though, this is pretty much the ultimate authority.
OK, this one’s deceptive, ‘cause there’s no way you’re going to learn intro-level Python by reading Reddit. However, it’s still worth checking out occasionally, since a lot of smart people post a bunch of good articles there, and they’ll expose you to way more interesting things than we could possibly cover in a one-semester introductory course.

For good or ill, programming is one of those professions that tends to utterly consume a person’s life. If you think that just sounds terrific, you may also enjoy some of these sites:

Hacker News
Probably my favorite tech news site. Posts often focus on web development, startups, and functional programming.
Another popular news site, a bit more focused on open source. Not quite what it was ten years ago, but still pretty darn excellent.
The Jargon File
Kind of the safe-for-work Know Your Meme of the programming world, with entries dating back well into the ’80s. As an example of how deep the rabbit-hole goes, check out the entry for “foo”.
The Tao of Programming
“When you have learned to snatch the error code from the trap frame, it will be time for you to leave.”

Happy hacking!