30 November 2009

Learning to Program

If you're like me, you want to learn how to program but aren't sure where to start. You don't want to spin your wheels or learn bad habits, and you want your foundation to be strong.

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.

Seems that the bright folks at 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

DrScheme

Google Wave

Finally got my invite to Google Wave today. At the moment I don't personally know anyone else who is using it, so I sent an invite to a buddy.

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.