I've been writing a program for teaching people how to program:

And I've blogged about it on the work blog. I start by quoting Cory Doctorow's Little Brother:

And I've blogged about it on the work blog. I start by quoting Cory Doctorow's Little Brother:
If you’ve never programmed a computer, you should. There’s nothing like it in the whole world. When you program a computer, it does exactly what you tell it to do. It’s like designing a machine — any machine, like a car, like a faucet, like a gas-hinge for a door — using math and instructions. It’s awesome in the truest sense: it can fill you with awe.
A computer is the most complicated machine you’ll ever use. It’s made of billions of micro-miniaturized transistors that can be configured to run any program you can imagine. But when you sit down at the keyboard and write a line of code, those transistors do what you tell them to.
Most of us will never build a car. Pretty much none of us will ever create an aviation system. Design a building. Lay out a city.
Those are complicated machines, those things, and they’re off-limits to the likes of you and me. But a computer is like, ten times more complicated, and it will dance to any tune you play. You can learn to write simple code in an afternoon. Start with a language like Python, which was written to give non-programmers an easier way to make the machine dance to their tune. Even if you only write code for one day, one afternoon, you have to do it. Computers can control you or they can lighten your work — if you want to be in charge of your machines, you have to learn to write code.
no subject
Date: 2009-08-13 01:37 pm (UTC)I remember using that in highschool *mumble* years ago! Most interesting thing I did in that class - the rest of it was typing and proofreading for some inexplicable reason...
(no subject)
From:(no subject)
From:no subject
Date: 2009-08-13 01:45 pm (UTC)[Feeling quite bad for not managing to do much more programming since you taught me stuff. It's not due to lack of interest, just everything being very hectic].
no subject
Date: 2009-08-13 01:53 pm (UTC)(no subject)
From:no subject
Date: 2009-08-13 01:53 pm (UTC)(no subject)
From:no subject
Date: 2009-08-13 02:02 pm (UTC)I never built a car, but I did rebuilt the engine on my VW Beetle - twice...
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2009-08-13 02:12 pm (UTC)I agree that things are more fun when you know how they work.
no subject
Date: 2009-08-13 02:19 pm (UTC)(no subject)
From:no subject
Date: 2009-08-13 02:38 pm (UTC)(no subject)
From:no subject
Date: 2009-08-13 03:12 pm (UTC)There's still a fair few people seem to learn some kind of programming from the desire to write a roguelike game - a roguelike remaining a practical single-person hobbyist project.
I think the other approach is what you're doing - a game with a programming environment inside it which is secretly a real programming language. Zach's Manufactoid ( http://www.zachtronicsindustries.com/pivot/entry.php?id=18 ) is a similar idea with Lua which might be interesting (Windows-specific, alas). There's a bunch of robot-arena Flash games with languages specific to the game, too, but some of them have proper flow control and whatnot.
(no subject)
From:(no subject)
From:no subject
Date: 2009-08-13 05:07 pm (UTC)Can you advise what languages would be worth looking into?
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2009-08-13 06:04 pm (UTC)A good friend of mine works a Microsoft and has spent the last few years trying to achieve the same thing... The project is called Kodu and is available right now on XBox Live...
I also started to do a similar thing inside of a web browser myself, it works quite well but has at lest one annoying bug (entering in new code after hitting the run button then hitting run again doesn't stop the first version of the program- so you end up with two versions of the program running concurrently). That said, I think it's pretty dang cool:
http://www.tinyurl.com/processingnow
and the javascript only version:
http://www.tinyurl.com/javascriptnow
Go to either of them and hit the "run" button. Certainly a robot/ turtle environment is easier and more illustrative though. :)
(no subject)
From:(no subject)
From:no subject
Date: 2009-08-13 06:20 pm (UTC)(am someone who a)made little things in BASIC and machine code on a ZXSpectrum as a tiny thing and somehow then forgot all about it b)when riding bikes, did a mechanics courses coz I wanted to know how my machine was doing what it does, and have recently begun to get frustated with how little I understand about a machine with which I spend so much time interacting.)
no subject
Date: 2009-08-14 10:18 am (UTC)