Invent Your Own Computer Games with Python
This book teaches you computer game programming in the Python programming language. Each
chapter gives you the complete source code for a new game and teaches the programming
concepts from these examples. It was written to be understandable by kids as young as 10
to 12 years old, although it is great for anyone of any age who has never programmed before.
This second edition has revised and expanded content, including using the Pygame library to
make games with graphics, animation, and sound.
Reader Charles says, "I was particularly interested in this book because I have a young
nephew (ten years old) who I thought might like to learn how to program. I wanted to see
if this book could live up to its claims to be 'understandable by kids as young as 10 to 12 years old'.
The short answer is yes, it can. From my experience, I think there are a few aspects of
the author's style that make this book particularly suitable for children and beginners:
1. Repetition. He does not introduce topics in the dry, methodical style so common
to books about computing. He'll mention something in passing, then explain it in more detail in
a later section, then mention it again later, and so on, until the idea is completely understood
by the reader without him or her ever having to deliberately memorise a definition. This use of
casual repetition seems to be a far easier and more effective teaching technique than the more
abstractly structured lessons I've encountered in other programming books.
2. No dumbing down. Although this book is aimed, at least in part, at children,
the material is never dumbed down or patronising. The author uses simple examples but they
are always complete and fully explained. He does not over-simplify things or avoid mentioning
things that might be too complicated for poor little kiddies' brains.
3. Functional examples. Not only are the code examples always fully functional
programs, but the author introduces them with an example run, showing what the programs
do before he explains the program's code in detail. This is a fantastic aid to understanding.
So many books for beginners begin each section with a page of inscrutable code and then
slowly explain it, so that the reader has to get to the end of the chapter before he finally
discovers what it does. Such a technique does not appear to work with children. Showing
the results first and then explaining where they came from is a huge improvement.
The only real complaint I have is, I suppose, the flip-side of my first point above. Sometimes
the author's style of teaching by repetition rather than definition causes him to use some
computing terminology before he has explained it. Most of the time this does not matter
(in fact, as I said, I think it is a better way to introduce ideas anyway) but occasionally this
leads to confusion. For example, he uses the term "string" without making it completely
clear what a "string" is in computing. He also writes "Ctrl-S" to mean pressing the "Ctrl" key
and the "S" key at the same time, which is fairly obvious to anyone with computing experience
but not so obvious to a child who has only ever used a GUI before. But these are not very
serious issues - it's just the only complaint I have.
Overall, a great success. I would highly recommend this book to anyone who wants to
learn to program and has no previous experience.