Alright y’all, so I’ve been continuing to read more intro-to-programming and programming-for-kids books as a part of doing more research as I’m writing my own text and I have an actually very positive review this time!
The other day I read through Python for Kids and I really liked it. I have a few criticisms but they are very few.
To start with, it’s a incredibly well formatted book. Maybe that’s an odd thing to gush over, but formatting can make such a big difference when it comes to how fast and how effectively you can read a text. I don’t actually know if this book was formatted in LaTeX but it definitely had the feel of a book that was put together by the kind of LaTeX nerd who actually knows what all the features in the
memoir class do without looking them up. The layout was easy on the eyes, the syntax highlighting was good, and everything just looked very nice. The visual aids were also really good. The color-coded diagram on page 55 that showed the connection between blocks and indentation in Python just looked so nice.
On the tone front, I think it struck a really good balance of serious and silly, clear and entertaining. There were really charming drawings breaking up the text, like the one of the dog wearing pants and slippers or the sleeping bear or the helicopter turtles. Sometimes they have almost nothing to do with the code but they’re cute and small and well placed to keep the formatting interesting and easy on the eyes. There were doofy jokes in the code examples that didn’t obscure the point, including gratuitous pandering with the word “butt”. It’s all very cute but never cloying.
As for the content, I thought all of it was very clear and straight forward. With the exception of using methods and functions for an example without having explained what they are, the order in which all the concepts were presented was logical and flowed well. I’m also going to cut the author a little slack on that one because it’s actually really hard to know what to do for showing non-trivial examples without explaining basically the entire language first. That’s a problem I haven’t figured out yet either.
There’s some good little asides I was surprised to see, like the note about using
pass for dummy methods as you plan out your classes, the importance of modularity in large programs, and simple serialization. The diagram explaining the
% operator was also really good and I think requires barely any maths knowledge to understand.
Like a lot of books aimed at young people it goes for tried and true examples involving logo and making simple games. They’re good though and the code is pretty well explained.
I did have a few small criticisms. I was slightly bothered by the book introducing
exec without mentioning anything about their safety. Honestly, I didn’t really think they needed to be introduced at all if they were only going to be discussed very briefly and, IIRC, never used again in any of the examples. I thought the part describing
deepcopy could have used a better explanation of how it’s connected to references and memory.
Some of the code explanations towards the very end felt a little dodgier, with the explanation of how the
move function works getting muddied because they didn’t explain the idea that objects have IDs in Tk until after already using some examples that have an unexplained argument in the function. It also wasn’t clear what the
updateIdle function did from the immediate context of where it was introduced.
In the grand scheme of things, though, these are really small criticisms and the overall book was really nice.