Author: Mike McGrath
Publisher: Easy Steps
Audience: Complete beginners to programming
Reviewer: Sue Gee
Python has become a very popular programming language for complete beginners. Does this book give you a firm foundation?
In this book Mike McGrath sets out to cover the Python language basics and to introduce Object Oriented Programming, server side scripting and interface building with tkinter and to bring all of this together in a complete application, all in less than 200 highly colorful pages.
In order to be as helpful as possible the inside front cover is used to present Python keywords; list methods; file methods and string methods.
As I prepared to review this book I'd been wondering why Python is currently so popular as a beginner's language - and this question is addressed head on at the beginning of the book's first chapter. Mike McGrath points out Python's emphasis on readability and its use of English keywords and indentation and goes on to list features that make it attractive to beginners - including being free, versatile, extensible and having a large standard library.
A couple of short paragraphs are devoted to the fact there are two versions and that the book covers the Python 3.x. The fact that the language's name is a reference to Monty Python's Flying Circus, something you need to know to understand jokey references you'll come across in the documentation is included in a Don't forget side panel.
If you've read any other titles in the In Easy Steps series you'll know to look out for icons in the margin that have tips and extra information. In this title you'll also find icons that give you information about source files that are available and the first of these is found when we get to Writing your first program later in the chapter. This comes after installing Python and introducing the interpreter and by the end of this chapter we've already encountered variable, getting using input and correcting errors. OK so its presented step-by-step and in an easy-to-read fashion, but it is also fast paced.
Chapter 2 on Performing operations maintains the same rate and covers arithmetic, assigning values, comparing values, logical operators, conditional expressions, operator precedence, date type conversion functions and reaches bit manipulation by its end. Some of this will leave any complete beginner to programming feeling that the learning curve is very steep. It seems to me that McGrath is aiming for completeness when it would be more helpful to skip some of the advanced or esoteric features of Python like the ternary operator. When the beginner is struggling to master the simple if why complicate things with an operator form?
Chapter 3 on Making statements is rather more accessible to novice programmers, at least to begin with as we look at writing and maintaining lists. Things then get more complicated with the idea of tuples and the dictionary but if you already program in another language you find that the Python way of doing things is clearly explained. Branching, looping and breaking out of loops are also covered in this chapter.
Chapter 4 is about Defining functions and again suffers from trying to fit too much information into too little space without sufficient preamble or explanation. The topic of using functions is developed further in Chapter 5 where McGrath moves on to Importing modules and the tricky problem of scope.
Chapter 6 on Managing strings starts off with on-topic material - manipulating, formatting, modifying and converting strings. Then come two topics that seem out of place - accessing files and reading and writing files - before Updating file strings provides an indication of the possible relationship between strings and files.
Chapter 7 is devoted to object-oriented programming. It starts by looking at encapsulating data, then covers creating instance objects and ends with harnessing polymorphism. As usual in this book, the presentation isn't at beginner level but it will help anyone who already understands OOP to see how Python does it.
Chapter 8 is called Processing requests and is the book's excursion into server side scripting with lots of HTML. For once the chapter opens with some introductory material and this is followed by some very straightforward steps. Chapter 9 Building interfaces seems equally accessible and easy to follow and the book rounds of with Chapter 10 Developing applications in which you put what you've learned together to build and deply Lotto Number Picker, which uses a random number generator.
Despite explaining at the outset how Python is suitable for the beginner to computer programming, this book isn't a beginner's book although it could be useful to someone coming from another language.