30 November 2009
I have friends who are programmers, and the main thing I take away from talking with them about learning to program is this: you don't have to know how to program every language, you just need a solid understanding of programming fundamentals. From there you can dive into the specific language that suits your need at the moment. OK, sounds like a plan, but aside from formal coursework, where do I go for a great foundation of programming skill?
Leo Laporte, one of my favorite tech teachers, gave me the answer I was looking for while I was checking out one of his recent podcasts.
MIT have designed a training system to start learners off on the right foot. The project, oddly enough, is called How To Design Programs. I downloaded the free material as well as their free programming environment, DrScheme. So far, I've "designed" a program that calculates the area of a circle and another that converts Fahrenheit to Celsius. Now I've got yet another hobby to pursue on late nights and rainy days.
One caveat so far- many of the explanations to the "test" problems are locked, and only an official, registered teacher can view them. Still, the core teaching material is available, and with a good bit of blood, sweat, and tears you may be able to march through the lessons. I emailed the folks at MIT to ask how I might get those explanations unlocked. In the meantime I'm just having a little fun.
So far, this seems like the best introduction to computer programming. If you know of a better system, by all means, let me know!
How To Design Programs
On first blink, I like embedding videos in conversations.
You can ask for an invite as well, just go to the site and ask! If you're an educator or trainer, Wave may make your life easier.