Sometimes the timing of a new book release just seems magical. I’ve got a collection of tech camps that I’ll be teaching this summer, including a Beginning Game Programming camp for ages 8 to 13. I’ve got a lot of the curriculum already selected, but I’ve been specifically looking for a kid-friendly book on Python that doesn’t talk down to kids AND provides a logical and well-organized attack on programming theory that follows the handful of programming courses I took years ago. For some time now, my search hasn’t been going so well… there are some great Python books out there, but for one reason or another I just haven’t found a solid match.
When a press release for Teach Your Kids To Code by Bryson Payne landed in my Inbox, I pounced. I do love books from No Starch Press, especially programming books, and the description sounded almost too good to be true. Well, after finishing reading the 330+ full-color book and actually typing up the code and performing the end-of-chapter programming challenges, I’m happy to say I’ve found the Python programming book for my camp.
I figure I’ll just list my ten reasons for why I like this book so much, and they’re not necessarily in any particular order:
1. The color-coded programming in the book really helps learn syntax while almost every line is given a small numbered dot that can be easily referenced in the text for a more detailed description of what is going on in that line. (Also, commenting is used sparingly, but when you see comments they are always useful.)
2. URLs for all code samples are provided. While kids should be typing in the code, it will be nice to be able to give them the option to download original code that can be tweaked and modified to see what happens.
3. Chapter 1 provides a simple tutorial on setting up and using the IDLE editor. I also like Chapter 3’s easy but powerful example of using the Python Shell for immediate access to the processing power of Python.
4. The Spiral programs–the author begins with a very simple program that draws colorful shapes on the screen. As the book progresses, the program gets more complex as more programming theory and commands are introduced. Rather than starting with a completely new program, readers are able to build on what they’ve done previously and see a program go from simple to advanced fairly quickly.
5. Each chapter ends with a “What You Learned” section that I believe will be very useful for teachers and anyone else teaching Python from the book. It’s a nice summary that I’ll be able to use as a checklist to make certain every student is moving forward only when they’re ready and have mastered a chapter’s content.
6. Each chapter ends with bonus programming challenges that aren’t too easy but aren’t too difficult. (Of course, answers are available with a URL, but I had fun trying my hand at them.)
7. Many of the programs rely on using graphics and colors, and later chapters cover sprites and classes, two topics I really didn’t think would be found in an entry-level book. Instead, not only are the topics done well, they’re well-written and very understandable given the very entertaining programs that readers will be asked to develop.
8. The book wraps up with a really cool game AND discussions on how to program games that are fun. Entire books have been written on game design, so it’s nice to see a discussion not try and over-reach but also provide exactly what novices need.
9. Mac, Windows, AND Linux installations of Python (and Pygame) are all covered in the appendix. So many books cover only one platform, so going that extra mile to make sure instructors can successfully use the book no matter the OS was a nice touch.
10. For students who go really deep into Python, I was surprised to find Appendix C actually goes into creating Python modules. Readers see the import command so much in the book for calling various pre-existing modules, and here’s a great explanation for how they work and how to make your own modules.
A few months ago, my almost-8-year-old came to me asking to learn to program. We’ve been doing a little here, a little there… and he’s enjoying it. But, as a parent, I’ve been struggling to find some resource to help me stay organized and introduce topics and concepts in the proper order. With the information provided in Teach Your Kids To Code, kids (and adults) will have a solid foundation from which to jump to more advanced programming books. My campers are going to be introduced to a variety of programming platforms, but I wanted to have Python as the “anchor” programming environment. This book has not only helped confirm my decision regarding Python but has actually provided me with discussion questions and assignments that are going to make things go much easier and smoother for me this summer. An easy five stars.