Anyone who has ever read and used a No Starch book for self-training knows that the publisher puts out some outstanding reference material. Not only is the material excellent, but the quality of the books is a step above most tech books on the market. Do a Google search of “geekdad.com and No Starch” and you’ll find dozens of books that the GeekDads (and GeekMoms) have reviewed over the years.
Well, I’ve got two more to add to that list, and they’re especially useful to me because of the camps I teach in the summer. One of the camps is called Minecraft Engineering–in that camp, the kids learn basic CAD (Computer-Aided Design) and how to create 3D objects and then they learn how to import them into their favorite Minecraft worlds. (And, of course, they get to play a load of Minecraft during the week.) The second camp is my Game Programming camp. We start out with Scratch (and yes, No Starch has some great Scratch books such as this one), but I always have some campers who are looking to go further… and I usually point them towards the Python programming language. (Previous posts on my camps can be found here and here and here.)
If you’ve got a young programmer under your roof or are maybe teaching some tech camps this summer, you’ll want to take a look at these two now-released titles. (And keep an eye on nostarch.com, as they’re always releasing new titles.)
Beautiful Minecraft by James Delaney
When it comes to Minecraft, I’ve found that my campers (and both my boys) don’t really need much more incentive than a cool looking Minecraft world to visit to get them inspired. And that’s exactly what the new Beautiful Minecraft is all about–pure inspiration. The 100+ page hardback book is filled with edge-to-edge full-color screen grabs from some of the most amazing Minecraft worlds you’ll ever see. Of course, there are some great essays from a mix of designers tossed in for good measure, but after handing the book to my boys, I quickly discovered the essays (although interesting to me) were glossed over as they almost drooled over the mix of worlds, sculptures, spaceships, and other designs.
I’ve enjoyed the book, too–it’s hard to believe some of these designs are actual worlds and objects that can be explored in the virtual worlds of Minecraft, but there are some incredibly creative designers out there who are using Minecraft as a new artwork medium. This book will be one of the dozens that I bring to my Minecraft camps for the campers to scan and use… and I have no doubt this one will be one of the more popular books in the stack.
Invent Your Own Computer Games with Python by Al Sweigart
A few summers ago I taught a computer programming camp where the kids spent a few days learning Python by using the excellent No Starch book from Bryson Payne called Teach Your Kids to Code. It’s one of the most outstanding books for anyone (kids OR adults) wanting to learn Python. Dr. Payne visited my camp and gave a talk to both sessions and signed copies of his book that each camper took home. Since then, I’ve been looking for another Python book that I could use to move my campers a bit further along with Python, and I’ve finally found it.
Invent Your Own Computer Games with Python is a 340-page book broken into 21 chapters. The book opens with a solid introduction to Python and the IDLE interface that programmers will use as they create a series of games that are designed to teach programming fundamentals. What I’m most impressed about with the book is the choice of games that Sweigart has created in order to focus the student’s attention on certain core concepts. For example, Chapter 5 shows the reader how to create a very simple text-based game called Dragon Realm where the player chooses between two caves to enter. Choose the wrong cave, and you’re eaten by a hungry dragon… the other will give you his treasure. Very simple… but in this one simple game the reader will learn how Python generates random numbers, how to call simple functions, how to use a while statement within a loop, and some basic concepts of Boolean logic.
Additional games push the reader to learn more and more programming concepts and ultimately create more advanced games that include graphics, collision testing, sorting, and much more. Complete programs are provided in the game chapters and are then dissected in small batches with detailed discussions of the how and why of a particular choice of code. Many of the games include flowcharts so the reader will better understand the logic needed to complete the game, and I was especially happy to see a few chapters focus on topics not necessary limited to games such as Cartesian coordinates and using the built-in Debugger.
Right now, I’m working on developing a Python-specific camp (for Summer 2018), and I believe these two books will be the textbooks I use for the camp. Games are a great way to engage kids, and Python is a perfect language for them to see immediate results on the screen as they code. Invent Your Own Computer Games with Python should be a hit.