My review of Head First Python

green python Summary: My personal review of O'Reilly Publishing's "Head First Python" book.

Well I finally finished this book from the very beginning of the ISBN number and publisher information all the way through to the actual index. I completed every exercise and wrote every single piece of code in the book by hand and bumped it up against the downloadable code on the various support web sites. I have seen many reviews of this book and it's a mixed bag. Personally I really do enjoy the paradigm of the "Headfirst series" myself, maybe that proves that I am a dolt. Additionally, I guess in one way I am extremely embarrassed if I told you my dear readers that this book took multiple years to complete. But like I said, before... Here and there life got in the way and things happen that bog you down. The one thing I did though is I would repeat code, and I would doggedly debug and analyze problems with the code until the projects in each chapter worked.

The biggest thing that I wanted to get out of this book as far as coding in python was on the Web Application Development side of things, and that worked out very well. I thought that the author did a fairly decent job of providing scenarios for web-apps and then bringing them into Google Application Engine was a good transition in and of itself. Also, I really do think the way the chapters evolved and built upon one another was well thought out.

Some of the highlights for me were dictionaries and pickles, Sqlite DB connections, Google App Engine as well as decorators and classes. At first one issue that started to frustrate me was that the original authors source code would be fscked up for some reason or another. But I quickly found the Errata and Head First Python Forums that go along with the book, and with further research, debugging and problem solving in the end everything would work out. As a guy who has been around Unix and Unix-like Operating Systems since 1996, I am fairly decent with a number of text editors, but I have finally gotten beyond being fairly proficient with Emacs now, and I have my .Emacs running fairly decent for Python development at this time. I am sure I can probably make it ever more effective but for now it is pretty workable for my baby sized tastes.

Another thing that the actual book did not cover but between the book itself and my usage of Pelican static blog generator, I have learn enormously about effective use of the python packages "Virtualenv" and "Virtualenvwrapper", two packages that are indispensable when it comes to developing with the python language.

One really big pleasant surprise was incorporating Android Application development with Python, one thing I will say though is Android device emulation via Android Studio is not too good on OSX, and the fact that I have a Nexus 5, I just ran my apps right from the Nexus.

The only big gripe that I have is in the Google Application Engine chapter exercises and source code was outdated because of Python versions incompatibilites between the book and Google App Engine as well django forms. At the time of the last publication the book source was using Python 2.5 but now Google App Engine only supports Python 2.7 by default as of 01/01/2014. I dug very deep on duckduckgo and found some good answers regarding overcoming this compatibility issue by way of StackOverflow and there was a pretty knowledgeable solution as it seemed coming from a guy named Dan Sanderson who just happens to work at Google. I tried repeatedly to get his solution to work but it was limited so, I revisited the HeadFirst Python Support Site which had updated the code for the sample exercise/project for this web-app that was going to run on Google App Engine, but now it was just basically hard-coded which IMHO was just "Taking the easy way out" instead of the Authors just rewriting the exercise from the ground up, to be completely compatible for Python 2.7. I had planned on contacting Dan Sanderson and the OP of the StackOverflow question, to revisit this whole dilemma and correct it from scratch, but I got too obsessed with starting to learn Django and it fell to the wayside.

Head First Python is currently on it's Second Edition, and Python is not going away or anywhere near being obsolete, therefore I think it is time for O'Reilly and Paul Barry to hopefully maybe be thinking about a major update, streamlining and overhaul to bring it up to do date in 2016 and maybe that will include a major rewrite of Chapter 10. In my opinion the book was invaluable in myself learning Python and doing some concrete things with it. I know there are some detractors from the whole "Head First" approach to things and maybe they see it as a "cute" novelty, but there is some truth to their approach. Additionally, when are the 2 and 4 year colleges in the United States start looking to Python as the first language to learn and then move on to Java and C? I think this is a must for the CS programs in the United States.

So... What was the first thing I did, in regards to Python once I finished this book? Well, I got way more down in the weeds with my Pelican blog, and then I attacked the DjangoGirls Tutorial. But you are going to have to wait, for that's another post all in and of itself. The other thing that I learned inside and out was the utilization of virtualenv and virtualenvwrapper. If you are going to get into Python, using these tools is indispensable.

In all respect and sincerity, a huge thank you goes out to Dan Sanderson and Paul Barry.