On Nov 12, 2006, at 10:56 PM, Ross Werner wrote:

I tend to vote for the latter, since it's inevitable (IMO) that programmers will understand less and less of what's "really going on" under the hood. First people complained that new programmers were jumping straight into programming in assembly and never really understood what was going on at the hardware level. Then people complained that new programmers just coded in C without understanding what was going on at the assembly level. Then people complained that new programmers were starting out with high-level languages like Java or Perl without ever understanding what was going on at the C level. Soon people will be complaining that people start out using massive libraries and frameworks on top of a high-level language and never understand what goes on even inside the libraries.


I really agree with you here. Although even 'back in the day' they had microcode below the assembly level, today the assembly-level code on a x86 chip is just a facade in front of a very complex system, which I only understand the rough outlines of. Trying to start at the 'first principles' of hardware is going to be a pretty tough sell for a new programmer on modern hardware! Better to start with something simple that the new programmer can intuitively reason about, even if it's fairly remote from what goes on 'under the hood'. Having things set up to make 'cool' programs quickly would be a plus, too, so long as those things can eventually be deconstructed so that the inner workings become clear to an inquisitive programmer.

Anyway, I've recommend this approach to at least a couple of people who were interested in learning basic programming, so we'll see how it goes!

One of the things that initially impressed me about Python was the emphasis on bringing programming to everyone. I don't know that it will succeed in that goal, but it's important to have people working on it, because programming on some level will become increasingly important. I think your PyGame approach is probably a good one, and hopefully your efforts to help people use it will bear fruit.

For younger kids, there's cool system built into Squeak called Etoys, which lets kids draw 'morphs' directly on the screen and program them through a tile-based language. It's actually been used in some education programs, and has seen a lot of success in teaching kids to think about programming.

For people who haven't been exposed to any programming but have had some mathematical experience, the TeachScheme program is also likely to succeed. It's been used in some high school programs to some encouraging success. One interesting thing about the results so far is that girls seem to do much better with it than they did with languages like Java and C++. Boys were often turned off by the fact that Scheme isn't used much in the 'real world', but lots of them ended up loving it eventually anyway. There's a complete textbook available and a simple IDE (DrScheme) with some powerful learning features that tie in with it.

If anyone is interested in any of these things, I can dig up some links tomorrow.

                --Levi

/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/

Reply via email to