Learning Programming with Python
Published . 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.”