Review of "Expert Python Programming"
Table of Contents
Based on the title, Expert Python Programming, (by Tarek ZiadĂ©) I had expected a book covering the Python language⊠syntax, advanced data structures, maybe some functional programming⊠stuff like that. This book surprised me. Rather, it contains a hodgepodge of information about the world of Python development, from setting up editors to distributed version control to application distribution. âExpert Python Programmingâ does contain some information on the Python language itself, but not as much as I would have hoped. While it does contain a good amount of useful information, overall, Iâd have to say that it misses the target.
Quickly summarized, the book contains 3 chapters on package management and distribution, 2 on syntax, 2 on optimization, and one each on language setup, naming conventions (style guide), version control, project management, documentation, test-driven development, and design patterns. Based on the content, I might have titled this book âExpert Python Development Practicesâ, and think I would have been happier reading it in that case. The discrepancy between the title and the content is especially bothersome to me, since it would be easy to assume this book focused specifically on programming, rather than code management.
Expert Python Programmingâs greatest asset is the number of tools and utilities that it covers. As a mostly casual Python programmer, there were a number of things that I learned, especially with regard to package management and distribution. Iâve never needed to build a package, and never used Atomisator or zc.buildout before, so I found these chapters rather interesting (though not personally useful at the moment). To be sure, when I need to use these, this book will the be the first place I come.
I was familiar with a decent amount of the information in the documentation, test-driven development, and style-guide chapters from reading some of the Python Documentation and a few of the PEPs (Python Enahncement Proposals). These chapters would be good for anyone who doesnât want to have to go and search for this information on their own, and I think it would be rather handy to have all of this information in one place.
The weakest part of the book were the chapters focusing on Python itself. The majority wasnât anything particularly groundbreaking here that I havenât read elsewhere, while the interesting sections, such as âHow Python Deals with Memoryâ and âMultithreadingâ were short and not particularly detailed. The sections on optimization were nice, but limited.
My only other observations were that the Mr. ZiadĂ© at times made statements of opinions that he presented as fact. I would have preferred him presenting code as evidence towards these opinions and leaving the reader to decide for themselves. To be fair, these moments were infrequent enough that they werenât that bothersome.
Through no fault of the author, Packt Publishing did let a number of small editorial mistakes slip through. Additionally, I found myself often wanting a better presentation of code samples. The overall design of the code examples and body text of the book ended up being quite similar, and I wish that they had made a bigger differential between the two.
Personally, I was disappointed that the Expert Python Programmingâs didnât feature aspects about the language as prominently as the everything else. I can only recommend that any potential buyers of this book borrow a copy, or make a trip to the local bookstore to flip through it first. Otherwise, this may not be the book that you were looking for.
