To understand what this review means, you will need to know about two things: what Python is and my background. Python is an object-oriented, interpreted programming language suitable for scripting tasks as well as serious programming projects. I see Python as the interpreted language for those who expect to be able to go back and understand their program a year after they have written it.
Now, about me. You may know me as a magazine publisher, but I am truly just a geek who found a way to make less money. I have been writing in assembly language and FORTRAN since the '60s, and in more UNIX-like languages such as C and AWK since 1980. I have seriously used at least a dozen languages and am generally very comfortable around most anything except Cobol.
What I am not is an object-oriented programmer. I understand the concepts, but have never worked in an object-oriented language such as C++ or Modula.
Python is interpreted like Perl or awk, but it is object-oriented. I was ready to give it a try. The problem is that I am not a full-time programmer, because I have this publishing job to do, but many times I do end up writing code.
Armed with O'Reilly's Programming Python, I was off to become a Python expert. Well, to make a short story shorter, it didn't work. While it is a good book to use as a reference or to take with you to a desert isle along with your Python-equipped laptop, it wasn't the book for a part-time programmer with over 30 years of non-OOP experience to use.
Enter Learning Python. My executive summary is that this is the right book for me and probably for many others as well. While Learning Python doesn't tell you everything, it is a good 366 pages that will get you up and running. Written in a textbook style with examples and exercises, it introduces both object-oriented programming and the Python language.
Both authors have done Python training, and it shows. Examples appear where you need them, and the exercises actually test your understanding of important concepts. This is a book to read with a computer nearby. You will learn a great deal from the exercises.
The book is divided into three parts. The first part covers the core of the Python language, explaining types and operators, basic statements, functions, modules, classes and exceptions. Part two moves you out a little into Python's built-in tools, common tasks and finally how to build real programs. Part three covers Python resources on the Net, platform specifics and answers to the exercises.
I have been very thorough in going through this book (because I actually want to add Python to my language set), and have found the book to be extremely accurate. The examples all work and you won't be misled by the text--a problem far too common for first printings of technical books.
Who, besides me, should get this book? I would say anyone who is comfortable with computers and wants to learn a very cool object-oriented language. By ``comfortable'', knowing one programming language or at least a scripting language is going to help a lot. While the book covers the basics, if expressions like ``dynamic typing'' or ``syntax rules'' scare you, then you may need to get a little more comfortable before attempting to learn a real programming language.
Phil Hughes is the publisher of Linux Journal. He can be reached via e-mail at phil@ssc.com.