On Sun, 12 Nov 2006 21:05:31 -0800, Michael Torrie <[EMAIL PROTECTED]> wrote:
On Sun, 2006-11-12 at 09:48 -0800, Ross Werner wrote:
lines of BASIC could look the same as one, it was pretty easy to get the
feeling that you were creating something that people would actually want
to play.

While what you say is true, I think that there are some problems with
the idea of throwing people into these more modern, advanced languages
and paradigms.  I think the gap between knowing nothing about
programming and being a professional programmer is much wider now than
in the 80s when I learned to program.

This is very true. And I think it's a hard decision to make: do you teach someone the basics, worrying that they'll be bored because they can't make anything really useful? Or do you teach someone a very high-level language with a library like PyGame, worrying that they won't understand what's "really going on" under the hood?

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.

So, in essence, that's my long way of saying: I think it's nice to teach people what's interesting first, and then let them piece in the basics as they're useful. But whether or not that's the best strategy, I don't know.

As for things like PyGame, these are tools that will hopefully help and
inspiring budding programmers.  As long as they can start simple and not
get overwhelmed by class architecture issues, advanced primitives, etc.
Simple line plotting and painting is probably a good beginning.  Can
PyGame do this?

Yup, the following Python program will run on any machine with PyGame libraries installed, from Windows to OS X to Linux, without having to worry about graphics cards, what platform you're running on, etc.:

## Start Program
import pygame

pygame.init()
screen = pygame.display.set_mode((640,480))
pygame.draw.circle(screen, (255,0,0), (120, 240), 50, 2)
while True:
    pygame.display.update()
## End Program

And that's just the simple stuff. There are also built-in sprite libraries (with collision detection), so with just a few lines of code you can have a simple graphic move around the screen interacting with other graphics. See this PyGame tutorial, for example, where it has a snake wandering around eating pellets:
http://www.learningpython.com/2006/03/12/creating-a-game-in-python-using-pygame-part-one/

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!

        ~ Ross

/*
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