I recently came across a wonderful review of 'A Byte of Python' by the admin of the South Jersey Linux Users' Group. I have reproduced it here for your convenience.
After reading the online book, 'A Byte of Python' I feel I know a little more about Python, but not as much as I wanted to. This is not to say that the author worte a bad book, but rather shows my lack of programming knowledge. Let me say that the book is incredible, and contains a lot of information in those 96 pages. The book likes to jump ahead at times, but follows a nice flow to get you through the chapters.
Let's start with what I found to be the negatives about the book. The reason I start with that is because there are so many positives about the book, and why leave you with such a bad taste in your mouth for nothing.
- The book contains a lot of information within 96 pages
This is both a positive and a negative. The book is so easy to read due to it's size, but it can not contain the information needed for new users within 96 pages and try to include everything it did.
- The book seems to be geared more to existing programmers than newbies
The only reason I bring this up is because this book came so highly recommended to me as a neophyte programmer. Please don't get me wrong, I am able to look at simple programms and disect them. I am now looking for Python programs on the web to look at and dissect to learn more how it works, and to give me ideas on future programs or projects that I may want to work on.
What is great about this book is everything else. The author takes you on a geeky journey through the world of Python, taking you from the simple to the mildly complex (complex for a beginner programmer). The author takes you on a short tour of IDLE, Python's own version of an IDE and using files. It discusses installations on both Linux and Windows platforms and how to create executables to run the programs. Do not get this confused with binaries, these are just 'chmod'd files.
From there the author moves you onto the basics of integers, strings, variables, etc... You are made to write different programs based on each type of lesson you were learning, which makes you feel like you are learning. To get a feel for the type of programs you learn, I am including it here:
#!/usr/bin/python # filename: var.py
i = 5 print i i = i + 1 print is = '''This is a multi-line string. This is the second line.''' print s
The output goes like this:
$ python var.py 5 6 This is a multi-line string. This is the second line.
From there you move onto Operators and Expressions where you get a table of Operators with explanations and examples. All programs come with an explanation of how the programs work, and although this is a great idea, the explanations can be terse and uninformative, but they do give you an insight to how the program works. I am not saying that all the explanations were that way, but with some things that I personally did not unerstand, I could have used a more informative explanation. The book went over functions, classes and modules. You really got to delve into some cool programs to learn how to program, which is really cool for newbie programmers but more experienced programmers may feel bored. You get to learn about tuples, lists and dictionaries. Like I stated previously, everything you learn is followed by a sample program to help you grasp what you are reading. The program samples are excellent, and do give you a great insight to what is happening. All through the book you are given hints about how to handle Python's code if you are a Java, C/C++/C#, Perl, PHP, etc...programmer. The help he gives you when crossing over, is great. The explanations are clear and concise, and guides you into the Python way of doing things. As you progress through the book, you are introduced to more advanced topics like the Python Standard Library and some of the modules you can use to get answers within your programs. The book wraps up with chapter 16, "What's Next?" Here you are told about graphical software like:
All these pieces of software are discussed briefly, with a summary about these libraries. Following that is a list of links to different sites that can help you leanr more about Python, and then a couple of appendicies. This book is definitely for people who want to learn how to program in Python. It may not be well suited for beginners to programming, which I feel a class in programming at your local college would be your best bet, but this book is solid. The writer of the book seems very passionate about getting the word out about Python, and helping the reader to understand the language that is Python. I suggest if you want to learn Python, pick up this book and read it, follow the programs, and try different programs out after that.