I was recently approached by the author of the free eBook, Intermediate Python by Muhammad Yasoob Ullah Khalid to review his work. Yasoob is the fellow behind the Python Tips blog. The book has been released as open source on Github but can be downloaded as a PDF from ReadTheDocs. But before I go into too much detail about the book, here’s my quick review:
- Why I picked it up: I was asked by the author to read the book.
- Why I finished it: I read through a lot of the book and skimmed the rest, actually
- I’d give it to: A beginner who wants to learn a bit more about the Python language
You can get this book in PDF, ePub, Mobi, HTML or in its source, which is in RestructuredText. You can purchase the eBook here.
The book is split up into 24 chapters covering 75 pages at the time of writing this review, but that may change since it’s open source.
The book covers a lot of material, but doesn’t go into depth on any topic. It reminds me a lot of my own book, actually. There isn’t a bunch of introductory material and each chapter gives the minimum amount of information needed to grasp the topic. Some topics do get a bit more coverage than others. Each chapter is between 2 and 8 pages in length. I should mention that the book is rather rough and reads like a first draft. The Table of Contents is empty, for example. English does not appear to be the author’s first language, so some of the sentences can be a bit awkward as well. One of the benefits of being open source is that anyone can come along and fix these minor issues though.
Let’s spend some time talking about what the book covers.
The first few chapters go over *args / **kwargs, debugging, generators, and map/filter. At this point, I’m sure some of my readers will question whether or not the book is really covering intermediate level material as some will argue that *args / **kwargs or the map built-in are more beginner material. Frankly, there’s a fine line between what’s considered beginner and intermediate, so I’m not really going to go there. The book is free so you can make your own determination. Besides, there are plenty of intermediate level material to be had here.
The next few chapters go over decorators, mutation, __slots__ and virtualenv, among other things. You will also find chapters on the collections module, object introspection, coroutines, lambdas, function caching and context managers. There are a bunch of other chapters that cover such items as exception handling, globals, enumerate, comprehensions, virtualenv, ternary operators, etc.
I found the book interesting and it does cover a wide variety of information. The topics don’t seem to be grouped in a logical order though. Overall, I think the average Python programmer will find some nuggets of information to be gleaned from this book and with the entry price being free, I think it’s worth checking out. If you do like the book, you should support the author by purchasing the book.
by Muhammad Yasoob Ullah Khalid
Other Book Reviews