I came across a postcard bearing this book's title in OSCON 2012 at the No Starch booth. I remember thinking to myself at the time, "I wonder if this is the book I will use to teach my kids how to program in Python". I also wonder how this book is different from other similar titles, say, "Invent Your Own Computer Games with Python". Both books intend to teach young kids how to program, and both are heavily involved with GUI in order to engage interest. Besides open source vs. costing money, this book has longer chapters that takes longer to read and practice. Important factor to consider if you are teaching a kid to program.
The biggest difference, however, is that this book teaches 'all' the fundamentals such as functions, class, objects, and some standard libraries, and it is less game-ish (no PyGame). Considering the scope of the topics it tries to teach, I came away very impressed. I thought the author did a great job explaining complex concepts with everyday words.
In this book, as you would expect from a intro to programming book for kids:
- list one way to do things without going into details of alternative ways.
- Lots of analogies for concepts, i.e. "variables are like labels", "think of a string as a collection of letters", "A function is a chunk of code that tells Python to do something", etc.
I also wonder what is the right age for a kid to start. Since the book starts by doing simple calculation starting in Chapter 2, I'd say the starting age for the book is whenever the kid is comfortable with simple math, mileage may vary. Since the author stated that he has started to program since the age of eight, maybe that is what he had in mind?
A few notes I took while reading:
- MacOS X install instruction is a nice touch on using Automator to open up Python IDLE.
- I would recommend reading this book in a format with color to take advantage of the illustration.
- Author did away from all of dictionary reference to the concept of map. In my opinion, this might create more problem down the line or when reading documentations.
- A pretty steep jump from Chapter 3 of built-in variables to Tkinker Turtle GUI program in chapter 4.
- Suggestion for Chapter 4: remind the young readers to place the IDLE window and Canvas window right next to each other in order to see the turtle move interactively.
- Suggestion for Chapter 7: a more detail step process when first introducing the nested loop in a function since that is the first time the loop and function concepts came together.
- Chapter 1 to 8 covered all the programming concepts, starting chapter 9-12 introduces some of the standard libraries, file I/O, etc. Then move on to GUI with Tkinter.
- Chapter 12 should be executed under Python 3. In Python 2, the 'T' is capitalized where Python 3 the 'T' is lower case (as illustrated in the book). There are other differences that differs between the two versions, I think.
- Starting from Chapter 13 there are examples of game projects, create from start to finish.
I would recommend this book for anybody wanting to learn Python programming.