Ante Scriptum: please ignore most of this, Insane Rationalist. I had a knee jerk reaction and didn't properly read your post. I'll still leave it for reference though!
Oh, god... PLEASE don't suggest C to start off
People who want to learn programming don't want to do it because programming is fun to them. In fact, it's probably going to pretty horrible until something starts coming out of it. They want to learn programming so they can make some cool application, and what C does is it puts as many barriers in front of you learning as possible. It's unsafe, it has complicated syntax, it has lots of difficult concepts (memory allocation, pointers, etc), needs to be compiled, compilation errors are dumbfounding at best and entirely useless at worst, runtime errors idem, and doesn't come with any decent standard library.
I mean, it's the difference between:
#include "stdio.h"
int main(char** argv, int argn) {
printf("Hello world");
}
gcc helloworld.cpp -o helloworld.exe
./helloworld.exe
And this is assuming you don't have to download an install some compiler and/or an IDE, set up paths to the compiler (whether through environment variables or the IDE itself), and doing all this mumbo jumbo. And of course, bear in mind this will be the first time these guys are hearing about the PATH system variable and about most of these things. And that's for C, I'm not even going to go into C++!!!
What's wrong with letting people write
print("Hello world")
in a file and then letting them double-click it?
And god forbid you to want to output GRAPHICS on the screen! That means hours fighting with the compiler, library versions, static vs dynamic linking, parameters, paths and whatever else.
Let people actually learn programming by enjoying it. And they'll enjoy it if they can do THINGS, not fight incomprehensible errors.
Please, do yourself a favour and start with Python. If you want to go hardcore, you can do it later, after you figure our whether you enjoy the process of programming or not.
For the record, I started learning with Pascal, then C++, then Java, etc. These days? These days I use whatever allows me to get what I want out faster. And that, my friends, is never C. Heck, these days it isn't even Java!
P.S: sorry for the rant. I just honestly believe that's the worst advice you could ever give someone who is still figuring things out. C#/Java is already a bit better, on account of Eclipse and whatever you use for C#. Overall, I still feel higher level languages are better. Heck, even PHP is cool, because you immediately get visual HTML feedback on what you're doing
On another note, I'm fighting the move to C# on account of having a hard time finding a decent high-level library for more multi-platform languages... I can't seem to find any stable, up-to-date, high-level libraries. I'm thinking SFML-like for Python or whatever. SDL is way too low-level for the stuff I want to do.