Two Python Books

I like Python. I like its internal consistency. I like its design that all but ensures there is one right way to write almost anything and that any good Python programmer can figure that way out and use it. I have reviewed several Python-focused books and expect to do so in the future. So, this review will not be about the language itself, but about how well each of the two books included cover the language and provide interesting use cases.

There are two books in this review: Learn to Program with Minecraft: Transform Your World with the Power of Python and Python Crash Course.


Learn to Program with Minecraft: Transform Your World with the Power of Python presents a fun use case with Python. It covers how to install Minecraft, Python, Java, the Minecraft API, and a single-player Minecraft server called Spigot to allow you to take advantage of Python to do things to your Minecraft world. One thing to note is that installation is only covered on Windows and Mac OSX. The book also covers using the IDLE editor with Python, the Python shell, and all the basics of the language within the book-long use case of making modifications and improvements to your Minecraft world. Topics covered include variables, expressions, operators and basic mathematics, strings, booleans, if/then/else statements, loops, functions, lists and dictionaries, files and modules, and the basics of object-oriented programming. Good stuff. The text is presented with full-color examples and beautiful graphics throughout. The writing is clear and easy to follow.

Python Crash Course takes a different tack. The audience is similar, mainly young people who are just starting their coding journey. However, the approach is more generic in application and perhaps more detailed in what it covers. As with the other book, the examples are project-based, but not focused on interacting with one specific software product. You get all the same basics as the other book, but with extended coverage (to be fair, it has nearly double the page count). The projects in this book are interesting and cover a broader set of topics: you get multiple chapters each covering one game project, one data visualization project, and one web application. I also like that in this book Linux is covered alongside Windows and Mac OSX, although the Linux install examples use APT, wish presumes the use of Debian or Ubuntu or another Debian-derivative. Not a problem for me, but I would have liked to seen that called out.

I liked both of these books. If I was focused only on interacting with Minecraft and modifying my game, the first would be my preference. For all other use cases involving learning Python, the second book is superior and the one I recommend.

Disclosure: I was given my copy of this book by the publisher as a review copy.