http://scratch.mit.edu/ is good too, I tried it and it seems to have the basics you need to learn as a kid, you can even use it just like LOGO to draw.
Scratch uses blocks which you can drag and drop to construct your program, some of the blocks are: if, repeat, forever.
You also have blocks for commands, mainly visual ones, moveto, turn, pen up/down (to draw).
I'd start him out with an interpreted language like Python and then maybe move towards Pygame. Zgame is also quite good and is available on Windows, that would give him a framework to develop working programs without getting lost in reinventing the wheel.
Over the long term I'd say work towards the tablet environment because that's where the action is going to be, but I don't know how friendly/accessible/affordable the iOS development tools are for Windows, or what the 'Hello world' stage is like. If it's great, then by all means start there. A pet hate of mine are tutorials that start out with the basics of variables, loops, and so on, and then dump the would-be programmer into the deep end bereft of any actual algorithms or structural guidance. It's like showing someone how to hammer nails and use a saw on day one, and then expecting them to build a house on day two. That's why I suggest Python as an alternative, because there's lots of high-quality educational material to get going with.
If the kid is somewhat computer-savvy already and doesn't need much hand-holding, maybe you could let him loose with the Google coding tools as an alternative - lots of good stuff on there for everyone from the casual to the committed programmer, and while it won't perform as well as native iOS stuff on the iPad, it won't be locked into that platform either.
I see no reason to start him with something like Alice. If he wants to learn to program he should start with Python or Ruby. I'm 14 now and have been doing some programming since I was around 10. That said, I only seriously started actually learning programming fundamentals around age 12.
I used Python during that time and I highly recommend Zed Shaw's Learn Python the Hard Way. The name is deceiving if you aren't familiar with it, it is definitely for beginners. Having him go through all the exercises and doing the extra credit in that book should put him in a good position to move onto using frameworks with Python or moving onto a different language.
Not sure how could PyGame is, but it's probably good enough to get him started in game programming if that's what he wants to do. spIrr's recommendation could be good, but personally I have no experience with that book. However, Python has some amazing resources online so that shouldn't be a problem.
I highly recommend staying away from iPad development as his first venture into programming, which probably won't be too hard considering he doesn't own any Apple computer.
I started by learning the basics of C++ when I was around 15 years old. It stirred my curiosity, gave me a general understanding of what programming is all about, and taught me how hard it is to build a real game (like everyone else, I wanted to make games).
I gave up on C++ in the end, and decided that Python is the best way to go. I do, however, thank C++ for helping me to overcome those first (difficult) steps.
+1 for Invent With Python. I've got my 8 year old daughter doing it and she loves it. It's the closest thing that I've found to what first started me programming, David Ahl's Basic Computer Games. I've also done Scratch with her, which she enjoys because it's so quick to get multimedia integration, but I found she wasn't keeping hold of fundamentals, like how loop controls work. Moving to Invent With Python has done the trick, it seems that typing the code has made the logic stick.
It's not writing code but it actually teaches you a lot about objects, event handling, conditionals and you can pipe out something really cool/fun in an hour or two.
( my first game I made when I was 12 was a "death star run" game. I had no artistic talent, but it was still fun. )
Don't start him on a graphical programming environment like Alice. I started programming Pascal when I was 11, but I wouldn't recommend something so low level. I would probably recommend python or ruby.
Thanks for all the advice. Passed it along to my friend, and he just told me that they're a bit overwhelmed now (which is a good thing). Problem solved!
[+] [-] AjJi|14 years ago|reply
http://scratch.mit.edu/ is good too, I tried it and it seems to have the basics you need to learn as a kid, you can even use it just like LOGO to draw.
Scratch uses blocks which you can drag and drop to construct your program, some of the blocks are: if, repeat, forever.
You also have blocks for commands, mainly visual ones, moveto, turn, pen up/down (to draw).
[+] [-] brudgers|14 years ago|reply
Microsoft Kid's Corner [http://msdn.microsoft.com/en-us/beginner/bb308754.aspx] provides a structured introduction to a lot of topics.
HTML + CSS would also be a great place to start because it is so highly interactive and is such a useful skill set to have.
[+] [-] anigbrowl|14 years ago|reply
Over the long term I'd say work towards the tablet environment because that's where the action is going to be, but I don't know how friendly/accessible/affordable the iOS development tools are for Windows, or what the 'Hello world' stage is like. If it's great, then by all means start there. A pet hate of mine are tutorials that start out with the basics of variables, loops, and so on, and then dump the would-be programmer into the deep end bereft of any actual algorithms or structural guidance. It's like showing someone how to hammer nails and use a saw on day one, and then expecting them to build a house on day two. That's why I suggest Python as an alternative, because there's lots of high-quality educational material to get going with.
If the kid is somewhat computer-savvy already and doesn't need much hand-holding, maybe you could let him loose with the Google coding tools as an alternative - lots of good stuff on there for everyone from the casual to the committed programmer, and while it won't perform as well as native iOS stuff on the iPad, it won't be locked into that platform either.
[+] [-] mtogo|14 years ago|reply
No. Avoid cramming the latest shiny fad down the kid's brain for now.
[+] [-] theMentaLMonK|14 years ago|reply
I used Python during that time and I highly recommend Zed Shaw's Learn Python the Hard Way. The name is deceiving if you aren't familiar with it, it is definitely for beginners. Having him go through all the exercises and doing the extra credit in that book should put him in a good position to move onto using frameworks with Python or moving onto a different language.
Not sure how could PyGame is, but it's probably good enough to get him started in game programming if that's what he wants to do. spIrr's recommendation could be good, but personally I have no experience with that book. However, Python has some amazing resources online so that shouldn't be a problem.
I highly recommend staying away from iPad development as his first venture into programming, which probably won't be too hard considering he doesn't own any Apple computer.
[+] [-] Cyph0n|14 years ago|reply
I gave up on C++ in the end, and decided that Python is the best way to go. I do, however, thank C++ for helping me to overcome those first (difficult) steps.
[+] [-] Jeema3000|14 years ago|reply
a) It's fairly simple.
b) Every computer that has a web browser has it. He would be able to run the programs with no additional software needed (including on the iPad).
c) You can make simple games with it (that's what I was interested in when I started programming, anyway :) ).
d) It's relevant.
[+] [-] spIrr|14 years ago|reply
[+] [-] squidbot|14 years ago|reply
[+] [-] unknown|14 years ago|reply
[deleted]
[+] [-] namank|14 years ago|reply
[+] [-] tnorthcutt|14 years ago|reply
[+] [-] collint|14 years ago|reply
It's not writing code but it actually teaches you a lot about objects, event handling, conditionals and you can pipe out something really cool/fun in an hour or two.
( my first game I made when I was 12 was a "death star run" game. I had no artistic talent, but it was still fun. )
[+] [-] theclay|14 years ago|reply
It's windows, it's powerful, it's simple, and it's highly visual.
[+] [-] adrusi|14 years ago|reply
[+] [-] joe_bleau|14 years ago|reply
[+] [-] them0rtn|14 years ago|reply
he should join this contest http://hacknow.org/