Learning to program isn’t the hard part

Posted: February 10th, 2012 | Author: | Filed under: Code, Random Musings, Web | 8 Comments »

Via Murat on twitter, I saw this article today about Kaitlyn Trigger, the girlfriend of Instagram co-founder Mike Krieger. She wanted to understand more about his world and so she set herself a challenge to learn to code. With some friends she came up with this super cute idea – Lovestagram

She spent weekends and countless hours learning Python and how to make the idea a reality. She is obviously a smart lady and huge props to her for not giving up. But the thing (for me) that was the really *really* telling and interesting part, was this quote.

“Learning to program isn’t the hard part. The biggest challenge is figuring out how all the moving parts of a web application fit together. There’s no book for that.”

This is so spot on. The coding of the frontend is one matter. The backend is another. Linking the APIs together. Then it’s buying a domain. Setting up the domain. Ftping the files in. Testing it out across all your web browsers and phones. Making sure all that stuff works. This is what making things for yourself and putting them live in the real world teaches you. It opens questions that you hopefully can answer but trying it out. As Aristotle put it -

For the things we have to learn before we can do, we learn by doing.

It also highlights the slight problem I have with ‘learning to code’ initiatives like Codecademy. Don’t get me wrong in any way. Getting people to learn to code is awesome. But having been through a heck of alot of the exercises on that site, I’m just not sure it is really that useful. On one hand the exercises are not really task based but syntax based. E.g. learning the syntax of a ‘for’ loop.

The other issue for me is that they teach you javascript – the client side scripting language created for web, yet they teach you no practical web based tasks.

A better approach in my opinion is to set clear fun tasks and you learn to code by proxy. So to try to answer this question, I’m going to commit myself to developing a short set of tutorials that will try and teach some practical code by recreating art. Because I believe this is a really easy metaphor to understand, and people respond really well to visual outputs of coding.

I’ve already sketched out a few tutorial ideas so hopefully these will start rolling out in a few weeks.