February 15, 2012

...Learn TDD with Codemanship

101 Programming Projects (for Schools & Kids)

There are some great coding tools designed for beginners of all ages. Greenfoot, Scratch, Kodu, Codecademy - the list is growing every month, it seems.

These tools are freely available, and there are oodles of tutorials and screencasts and wotnot out there for anyone who wants to learn.

A significant percentage of children have access to a computer they could learn to code on.

And yet they don't. Why is that?

This is the big question. For your average 8-16 year old - if such a thing exists - what's stopping them?

The answer is, in every practical sense, absolutely nothing. Anyone who wants to learn to program can.

Presumably, they just don't want to. Nobody's given them a compelling enough reason to type gobbledygook into a text editor and press "RUN".

When I started programming way back in the 1790's when the first steam-driven difference engines started coming into the home, it wasn't to learn how to program. For most of us, coding was not an end in itself. I learned to code because I wanted to try to write games. Manic Frogger, Jet Set Elite and Donkey Willy - those were the games I wanted to emulate. Well, maybe. It was a long time ago.

For the first few years, programming was a means to an end, and it was the end that fascinated me. First games, then graphics, then physics and astronomy. Finally, as I spent more and more time at the codeface, I began to see the beauty in code and could become excited about programming done well.

First we revel in banging the drum. Only later do we obsess over the optimum placement of the microphone and getting the EQ just right.

To get kids coding, we need to give kids a reason to code again. It's got to be a compelling reason. They can run games and operate TVs and text their mates without using an interpreted language. The reasons we learned to code aren't going to wash with the GUI and the plug-and-play generation.

Remember those "101 Electronics Projects" you could buy? (You still can, but whatever.) Some of the applications were pretty cool - crystal radio sets and digital clocks and knobs that could reverse time and so on.

I'm proposing 101 Programming Projects. There would be a tool - like Greenfoot, for example. And there would be 101 "recipes" for making your computer do really cool stuff by writing code using the tool. And I mean REALLY COOL STUFF. Like finding aliens. Building augmented reality drum machines. Or a Simon Cowell proximity detector. That sort of thing. Well, hopefully you get the picture.

Each project would have a cool outcome, and result in software that you can't buy or download anywhere. Because if you could, they wouldn't need to write it.

And, after all, that's the real joy of programming. You can make your computer do things that nobody has made their computers do before. You can create in the purest sense of the word.

I don't know if this would be a book, or a web site, or a downloadable thingummyjig, or all of these things and a commemorative plate, too.

What I do know is that we need something like this.

I also know that this will be too much for one man to take on. Even someone as brilliant and handsome as me. I intend to try, but I'm going to need help.

If 101 of us rolled up our sleeves, by developing one project each we would have our 101 Programming Projects. Many hands make lights work. Or something.

It would be great if something could be created in time for the next school year in September. That's a window of 6 months if we started about now. (Or... now! How about now?) Well, soon, anyway.

If you would like to help, and maybe go down in history as one of one hundred and one people who did a thing once, then let's talk. I'll be organising a meeting in London very soon, but we can do this remotely if you're one of those inconsiderate people who's chosen to live somewhere else.

And there may well be a bigger event, with sandwiches and everything, in early April where we can talk about this and the whole question of what software developers can do to get kids developing software. I mean, it's about time we had our say.

Posted 1 week ago on February 15, 2012