Author: Katie Cunningham
Audience: Motivated beginners prepared to work hard
Reviewer: Alex Armstrong
Teach Yourself Python, what the whole of Python, in 24 hours? It sounds like a difficult challenge.
Although Amazon lists it as such, this isn't really a second edition - it is a completey new book by a different author, Katie Cunningham. All that is the same between this and the first edition is the title and the approach of dividing the topic down into 24 hour-long sections.
The first thing you really need to know is that this is a Pythion 2.7.5 book. Python is a language that is doing its best to move on to version 3, which isn't compatible with version 2 and so having a beginners book use version 2 isn't particularly good. The only justitification given in the book is that there are some libraries used as examples that aren't availalbe in version 3. I don't think that this is a good enough reason to not use version 3.
The first thing to do is get Python setup and the first hour details how to get it working under Windows, Linux and OSX. The next few hours introduce the reader the very basics of programming: Hour 2 introduces variables and expressions and Hour 3 deals with the if statement and logical expressions. The ideas are introduced in a steady logical way but there is a tendency to "over shoot". For example, as the beginner is just struggling to cope with the simple if we have the if.. else and before the neurons have set we move on to the if elif else. Then, without any real need, the try statement is introduced. The only justification is that the target is to get through the whole of Python in 24 hour-long chunks. However there are a lot of topics that are included that could have been relegated to another more advanced book.
Hours 4, 5 and 6 are about data - strings, performing I/O and using lists. All these topics well explained and to the point. Hour 7 introduces loops and of course makes use of lists as introduced in the previous hour. Beginners often have problems with loops the different types and how they are used. This is just a plain introduction to the Python statements that create loops and not really an explanation of the ideas that underpin the whole thing or what loops are used for. In other words, it's very short.
Hour 8 starts the journey into slightly more advanced Python and the way that code can be groups into larger structures. Hour 8 explains the idea of a function. Again, it is fairly fast paced and includes ideas that could well be split out into more advanced topics. Hour 9 does a small detour to look at the Dictionary data structure. Hour 10 dives into object-oriented programming with a bit of philosophy and a UML-like approach to drawing object hierarchies. It isn't until hour 11 we get to the real details of creating objects using the class statement. Hour 12 extends the ideas to include inheritance.
This more or less marks the end of the book's attempt to teach you core Python. From here it moves into what you might call related areas of application. Hours 13 and 14 deal with using and creating Python modules. Hour 15 is about documentation and Hour 16 is about reading and writing files.
The remaining eight hours are all about Python applications - using JSON, using a Database, web development with Flask, making games with PyGame and so on. Hour 22 is about versioning your code and Hour 23 is about debugging, a topic that should be covered much earlier. The final hour is a round out explaining how to go futher with Python - go to conferences, contribute to Python and Python projects and so on.
The main problem with this book, if you can ignore the fact it teaches Python 2, is that it deals with the core of the language in 12 hours, not the 24 you might imagine. This isn't a problem if you are a quick study and while the book is aimed at the beginner and is suitable for the beginner you will have to work to pick up the ideas quite rapidly.
As long as this is the case then you will welcome the later sections on things like Flask and PyGame as showing you some of the things that Python can do and can be used for. Of course if you are still a bit unsure of what an if statement is or what a class is for you might find this a bit irrelevant.
This is a well written and well thought out book, but it tries to cram too much into 24 hour-long sessions. The first 16 hours should be given more space to breath and expanded to fill the entire 24. A second book on Teach Yourself Python Application in 24 hours would be a good companion.
Recomended as long as you are bright enough, or hard working enough, to get to a level of competence beyond the number of hours indicated by each section.