To follow up on my last post about the importance of programming for everyone, I’m making a personal commitment to get my own coding skills up to “halfway-decent” level in 2012. The more I teach with Conrad Wolfram’s TED talk in the back of my mind, and the more I dig into computational geometry as a new research area, the more I see the need to be able to write good code. I’ve tried this before as a sort of lone ranger, sitting down with a terminal window and an O’Reilly book in front of me, with the intent of working through the book, but I never stuck with it. Fortunately, there are more good resources out there than ever to help:
- You can also sign up for Stanford University’s massively-open online Introduction to Computer Science course that starts up In February. This course sounds much more like a traditional university course, with online video lectures, assignments,and quizzes. The course will focus on Python It’s not for credit, but there will be a discussion forum for students (“users”?) of the course that should add a nice human touch. I’ve signed up for this course as well as another Stanford MOOC on cryptography. If I had the time, I’d also do their courses on algorithms and information theory… and a few others besides. Sigh.
- Don’t forget MIT’s OpenCourseWare class on Introduction to Computer Science and Programming, which was one of the main inspirations for my inverted MATLAB class and was a great help in preparing me to teach that class. It’s expertly taught, and the assignments and course materials are top-notch.
- And for the math people, Project Euler provides a great set of mathematical computer programming problems that will sharpen your skills in both math and programming. These range from fairly straightforward (“Find the sum of all the multiples of 3 or 5 below 1000″) to forbiddingly complex and are not posed in any particular language, so you can choose your favorite platform and go to it — or try to solve problems in multiple languages. I’ve set a goal to solve at least three of these problems in Python by spring break.
It’s a great time to be a learner, especially if you want to learn to program.