I'm looking for an interesting, good quality computer programming course for my 14 year old who wants to study it as a hobby. Does anyone know of something they could recommend? He's self-taught in his computer knowledge but knows nothing of programming. And I know even less, so it has to be very self-explanatory!
Your key question is what language he wants to learn first. If you pick something with an open-source implementation, there will be tutorials online: just google [language] tutorial. I would suggest Python first, because there are free implementations for every platform, lots of online documentation, and you can easily do cool stuff with it in very few lines of code. See e.g.
http://docs.python.org/tutorial/I would think that a gifted 14yo would be fine with tutorials aimed at adults, I wouldn't bother looking for things specifically for children. However, if he likes the idea and it's in the budget you might consider getting an OLPC in the current give-one-get-one, see e.g.
http://www.amazon.com/One-Laptop-Child-OLPC-Give/dp/B001GB87EI- this has a lot of very easy starting games/applications for learning Python (and it is linux underneath, so he can also use it for other things, in fact understanding how to go "under the hood" might be good in itself).
Or he could jump straight in with Java, using the Sun tutorials e.g.
http://java.sun.com/docs/books/tutorial/Or if he wants something that will stretch his brain in mathematical ways and seriously impress university admissions people, he could learn Haskell, see e.g.
http://www.scribd.com/doc/4079/Yet-another-Haskell-tutorialI would advise against shell and batch file stuff: it's not a good way to get the fundamentals of programming. I would very strongly advise against Visual Basic: hideous language, and platform specific too! A first language should be clean and well-designed, to start making the key ideas of programming plain. One can do the horrible but pragmatically useful stuff later. [Confession: yes, I teach this stuff in university.]