REVIEW - Murach’s Python Programming (2nd Edition)

Title:

Murach’s Python Programming (2nd Edition)

Author:

Michael Urban, Joel Murach

ISBN:

9781943872749

Publisher:

Murach Books (2021)

Pages:

564

Reviewer:

Joes Staal

Reviewed:

September 2021

Rating:

★☆☆☆☆

Verdict: Not recommended

The cover of this book has a slogan: ‘Beginner to Pro’. This book is definitely meant for someone who wants to make a start in programming. I wouldn’t say that after finishing the book one could claim to be a ‘pro’.

I have several issues with this book. Let’s start with the format. The authors are very proud to state that:

…all of the information is presented in ‘paired pages’, with the essential syntax, guidelines, and examples on the right page and the perspective and extra explanation on the left page. This helps you learn faster by reading less...and this is the ideal reference format when you need to refresh your memory about how to do something.

I found this feature extremely annoying, because it meant I was reading everything twice. Maybe it works for the paper version of the book, where both pages are visible at the same time, but I was supplied with an electronic version which I read on a tablet. The electronic version is laid out like a printed book, with large white margins, no re-flow and most importantly no way to increase the font size. It doesn’t make for a smooth reading experience.

Furthermore, to get access to the book, I had to sign up on a website that wants to store analytics cookies by default. Then I had download and install a proprietary app. It felt a bit too much of being tied in. The app itself doesn’t present much more than any other decent e-reader application does.

Regarding the contents of the book, the aims are lofty. It is divided into 4 parts: ‘Essential concepts and skills’, ‘Other concepts and skills’, ‘Object-oriented programming’ and ‘Database and GUI programming’. All of that in only 534 pages (this excludes front matter, appendices and index). As is to be expected, most subjects cannot be discussed in depth. That is not necessarily a bad thing, as the book is very introductory and starts without assuming any programming experience. However, I think for someone who has no previous experience with Python or even programming, more on the basic data structures and programming idioms should have been covered. List comprehensions are mentioned but dictionary comprehensions are not. The with statement is introduced, but the wider idea of ‘context managers’ is not. The iconic PEP8 is not mentioned (nor followed).

Using 3rd party packages is out of the scope of the book, which is fine, but the rich ecosystem of freely available python packages is not even mentioned. Nor is that if one would want to install other packages, care must be taken not to contaminate the operating system’s python installation and that virtual environments are a solution.

The part on object-oriented programming feels like it is written by someone coming from a Java background without a lot of python experience. Setters and getters are preferred over properties or simple attributes. A lot of focus is put on encapsulation, which normally is not an issue in the python community. It is claimed that a variable starting with a double underscore is private, but such a thing doesn’t exist in python. Double-underscored variables in a class are treated differently from other variables (which can be useful when inheriting), but they are not private.

The fact that inheritance is not a necessity in python is not mentioned. The language is not strongly typed and duck typing can be used to change behaviour.

The chapter on database programming should have been left out, as it has nothing to do with python and skims over many things while introducing some SQL statements. It doesn’t add much value. The chapter on GUIs (tkinter) is a nice idea and not often found in python books.

To summarise, I found this a disappointing book. Many better books and websites can be found and I suggest you should look for those.

Sources I’ve found useful include:

  • Books

    The Quick Python Book by Naomi Ceder

    Python 3 Object-Oriented Programming by Dusty Philips

    Fluent Python by Luciano Ramalho

    Python in a Nutshell by Alex Martelli, Anna Ravenscroft and Steve Holden

    Python Distilled by David Beazley (scheduled for September of this year). David Beazley is a respected speaker and teacher of python, so I expect reading this book will be time well spent.

  • Websites

    python.org, the python website with excellent documentation.

    pymotw.com/3/, Python module of the week by Doug Hellman, demonstrating how to use the modules of the Python 3 standard library.

    realpython.com, many tutorials and articles, though not everything is for free.

  • YouTube

    Corey Schafer, many, many videos on python and python packages with very clear explanations. A real treasure trove.

Website: https://www.murach.com/shop/murach-s-python-programming-detail