Author: Paul Barry
Publisher: O'Reilly, 2010
Aimed at: Programmers in another language
Pros: Covers a great deal
Cons: Need to be familiar with another language
Reviewed by: Alex Armstrong
Keen to learn Python 3 - could this be the book to help you?
This is an introduction to Python 3 but it would be best suited to the reader who already knew something about another language. The reason is that many of the ideas in Python are introduced by comparing them to what goes on in other languages. So for example Chapter 1 starts off by explaining how Python Lists work and makes a point of the fact that they are not typed and they are like arrays. So if you don't know what type is all about and have no idea what an array is both comments will go over your head and probably worry you. As long as you aren't worried enough to give up the book does tell you more or less what you need to know.
Despite the apparently simplistic approach to explaining thing taken by all of the books in the Head First series this particular title moves are a rapid rate. For example in the first chapter you not only meet lists, but for loops, nested listed, function and recursion!
Chapter 2 is about larger program structure in the form of modules. Chapter 3 is about error handling including exception handling. By Chapter 4 we have already reached files and by Chapter 5 we are considering formatting and sorting data. Chapter 6 takes it even further with a look at dictionary objects, classes and generally everything object oriented. That's it! More or less all of standard Python is covered by the end of Chapter 6. From this point on the book is more or less about using Python.
Chapter 7 is called "Putting it all together" and it deals with using Python via CGI to create a web application. The overall design uses MVC. Chapter 8 is about using Python on Android which is a very unusual topic to find in an book introducing any language, but it is probably a sign of the times. Mobile apps are now more important than web apps! Chapter 9 returns us a little bit to earth with a look at using SQLite to mange data but then Chapter 10 moves off into another exotic topic in the form of using Google's App Engine - which just happens to be Python based.
The final two chapters are a sort of wrap up overview and a look at things not covered. To see how far the book gets you just need to look at the list of topics that were just left out ... working with an IDE, scoping, testing, advanced features, web frameworks, object relational mappers and NoSQL.
To have come so far in 400 pages is quite a lot and if you are up to it then it's a fun ride. I have only one reservation - if you are clever enough to deal with so much complex stuff in so short a space why do you need the strange and chaotic approach of a Head First title? If your answer is that you like the approach then this is the book for you, but make sure that you know how to program reasonably well in another language first.
(It is also worth pointing out that this is about Python 3 which is not backward compatible with Python 2.)