My son, who is about to turn 13, has shown an interest in IT and learning to program, and even if he doesn't pursue a career in development I believe there is some merit in learning some programming skills.
Given that it has served me quite well, my thoughts are to start him off learning ZX81 BASIC also. My rationale for this:
*I've got the environment, a solid emulator that works well (without rampack wobbles

*It's simple
*It's nearly syntax foolproof
*The manual, available online, is a good course in BASIC
I'm conscious of the constraints but I figure it introduces the concepts of variables, string, loops, subroutines, etc.
Before we venture down this track though, I thought I'd come here first and ask for alternate (better?) ways/opinions to introduce someone to the world of programming.