Worm Burner, age 10 and resident Tech Support, asked if I would teach him C++ this summer.
Sure, no problem. Except that the last time I used C++ was during my Ph.D. dissertation and my summer plans did not include hours in front of the terminal re-learning how to program.
I highly recommend Beginning C++ through Game Programming, by Michael Dawson. This book is great for beginning programmers, especially if they have some previous programming experience (Worm Burner had already programmed in QBasic on Windows). Even if they had no previous experience, this book would walk them step-by-step through concepts like variables, input/output, loops, strings, and arrays. Best of all, it uses game example programs like Word Jumble, Mad Lib, and Tic-Tac-Toe to hook kids into figuring out the logic behind programming and applying their nascent C++ skills in a way that's fun and entertaining.
Note that this book is not intended for children. It just has a great easy-to-use format and style that lends itself to children who are advanced readers and budding programming geeks. But the programming itself is all solid C++. In other words, they're learning the real deal.
The best part about this book was that I just had to get my boys started with the first few chapters. We sat down, walked through the lessons, uploaded and changed sample code, and played around a bit. After chapter 4, they carried on without me, teaching themselves (via the book) and leaping to new heights with their programming through their own initiative.
Which is how every good programmer gets his start.
If you have a budding hacker programmer in your house, here's how to get them started:
1) Download Microsoft Visual C++ 2010 (free)
2) Buy Beginning C++ through Game Programming
3) Help your kids start (if you know some programming) or let them loose on their own (if you don't)