10 years & up
Is “Python for Kids” fun and educational?
Our mission is to identify solutions for teaching that are fun and engaging: learning through play. While it might seem that a 300+ page book doesn’t fit with that edict, the reality is that a complex skill like Python programming is going to require more effort and depth than a simple toy can provide. Python for Kids takes an excellent hybrid approach that comes as close to a comic book as you’d dare attempt. Almost every page has a colorful cartoon, silly dad joke, or wacky programming puzzle to hold a young person’s interest.
In addition to the fun, Python for Kids does teach solid coding skills. With sufficient time and plenty of adult explanations, your young learner will be able to understand the code of their sample game. Diligent students will possibly be able to modify and extend the game with new levels or characters. Overall, I wish the balance would have been tilted more toward “explanatory” learning aids than “fun” cartoons, but it’s a decent attempt when you supplement with external programming expertise.
Intro: This is Part One of a four-part series
There are three very similar beginner-level books on the market right now that all teach Python in a fun, kid-friendly way. We’ll review the other books in Part Two and Part Three, and wrap up the entire sequence with a roundup in Part Four. Each part stands alone, so if you want to just read this review, you’ll be fine. But do consider reading the roundup as well, since we’ll compare the strengths and weaknesses of each book and rank them all relative to each other.
What Will Kids Learn from This Book?
Python for Kids dives right into hands-on programming with very little theory or pseudo-code. It leaves out a lot in favor of getting your hands dirty quickly, which is generally helpful for the targeted age group. The first chapters help you install Python and then gives you experience using the Python interactive shell as a basic calculator, teaching variables along the way. Surprisingly, the author then covers a dizzying array of data types in rapid-fire fashion. That seems like a questionable choice this early in a course of study. I would rather let students master each skill with plenty of examples and real-world use before introducing new concepts. It seems that the broad coverage was an attempt at completeness, but I’d argue that mastery of a small, relevant portion of Python is better shallow knowledge of a variety of topics. As an example, here’s a snippet where the book talks about Python’s implementation of key-value pairs, a subject that could have waited until much later:
My biggest criticism is that too much is introduced too quickly. Topics get introduced and only much later are they applied practically in a “real” program. After the section on data structures, the author corrects course somewhat with a short segment on drawing that will get kids excited about programming graphics. Sections on conditional logic, loops, and functions all seem age appropriate, but then there’s an odd foray into objects and classes (way too early!), followed by lengthy segments on modules and a very deep dive into graphics.
The final third of the book focuses on building two fun games that kids will simultaneously love and hate. Love because they get a glimpse of Python’s potential. Hate because, again, the author introduces so much material so quickly (e.g. image editing and transparency) that younger students will quickly get lost. Unless there’s an adult willing to help, it’s too much for a 10-year-old to do on their own.
Another missing component is that the sample programs don’t give students the tools to create something that complex on their own. For example, a section on planning out the game in a flowchart or simple interaction model diagram would have been a great tool to give young programmers. I feel like this book should be twice as long so that it can actually explain every concept that the author introduces. As is, it’s just too ambitious for self-study, but would be marvelous if you’re teaching a class full of youngsters and have 1-2 semesters to unpack, reorder, and supplement the text with exercises and additional context. The handful of included “Programming Puzzles” just doesn’t suffice.
In the next section of this review, we’ll cover a better age range for where this book can be used. In Part Four of the series, we’ll discuss which of the three similar Python books will be most appropriate for what age group.
Unless there’s an adult willing to help, it’s too much for a 10-year-old to do on their own.
What ages of kids will enjoy “Python for Kids“?
Our DistribuFun histogram for Python for Kids skews somewhat older than the manufacturer’s recommendation of “10 years & up.” I would consider 10 years old to be the very youngest student I’d want to use this book, and even then adult help would be crucial. Frequent readers will recognize that we’re big proponents of coding toys that provide a visual introduction to the logic and structures (loops, decision trees, etc.), so hopefully you’re not starting Python totally fresh.
Finally, we kept the right side of the histogram green for teens and adults, and this is a perfectly valid way for older beginners to learn programming. If you’re serious about learning Python as a working adult, however, I’d consider taking a course or using a book more focused on problems you’ll actually encounter. Python is a phenomenal first teaching language (more on that in Part Four) and enforces very good habits. More than just a teaching language, however, Python is arguably the best language for data science (R may be more widely used by statisticians, but Python is growing faster because it’s more versatile and easier to read) and is as full-featured as a web framework language as PHP and Ruby, though not as popular (Django vs. Laravel vs. Rails). Given all these uses for Python, why not start with a course that assumes nothing while still covering practical topics grown-ups need?
So, my recommendation for adults is to choose a book with better practical utility like Automate the Boring Stuff with Python, by Al Sweigart. This volume starts at the very beginning, but it finishes with useful skills in file management, web scraping, working with Excel spreadsheets, even sending emails and automating the mouse and keyboard. For non-programmers, these skills could be a real boon to the typical office worker’s productivity.
Adults who want to learn Python but get excited about hardware and electronics might enjoy Programming the Raspberry Pi, Second Edition: Getting Started with Python (Electronics), by Simon Monk. It’s a little old now because it doesn’t cover the latest Raspberry Pi 3, but the differences from a programming side are minimal. You shouldn’t have any difficulties adapting it to the latest hardware. This title is a unique hybrid book that teaches coding and touches on just a tiny few of the plethora of hardware projects available to build with a Raspberry Pi. It helps you program and setup the Pi, including installation, so for the price of this book and an inexpensive all-in-one Raspberry Pi kit, you just need a free HDMI port on your TV and a spare USB keyboard to be a “real” programmer.
Value, durability, and longevity: Is “Python for Kids” a good buy?
The MSRP of Python for Kids is $34.95, set by the publisher. Check around at the links below and you’ll usually be able to find it around 25%-30% off that list price, depending on where you buy. Note that the Kindle version will be cheaper, but you may find more formatting errors or other display issues that are typical with textbooks that are converted to Kindle. Also, if you don’t own a high-resolution color device (like an iPad with the Kindle app), go ahead and buy the print edition so that you don’t miss out on the full-color graphics that add so much to the playful experience.
On the topic of longevity, Python for Kids was written in a future-proof manner and should stay relevant for many years. It covers Python 3 (you should NOT buy any Python 2 books if you’re just starting out) and there’s no compatibility issue on the horizon that I can foresee. Unlike hardware, programming languages have a much longer lifespan. Since this book was published in late 2015, it should remain current for several more years.