(please note that, unless stated otherwise, the links in this post are paid affiliate links - as an Amazon affiliate we earn from qualifying purchases)
Finally, a truly good book on Python for beginners. There are plenty of reasons why I review beginner's books on Python, but in particular because I hope that some of you will give this marvelous language a try. If you do, and want to avoid undue headaches and suffering, a good book is makes all the difference. Sadly, it seems a lot easier to find a decent book on (much more complex) low-level languages like C(++) than a good book on Python... at least that's my impression. The fact is that most of what I've read wasn't really worth buying (unless it's the best of bad choices). Ironically, some of the best materials on Python can be found for free and this book is no exception (details at the end of this article). Provided you have a good book, Python is both fun and easy to learn even if you've never written a line of code.
Unlike, to varying extents, the other Python books I've reviewed so far, it took me all of 5 minutes to know that 'A Byte of Python' was a keeper. It may not be new and shiny, but it's a solid book that will teach you all you need to know to get started (and more). It's well structured, organized and without the language flaws that plague many of the other books I've written about. Believe it or not, this book is one you might actually enjoy reading, as it is very well written and it never feels like a chore. The author's passion, his expertise and the book's many revisions are plain to see. C. H. Swaroop is the rare combination of a knowledgeable programmer and a gifted communicator. I've liked reading 'A Byte of Python' so much, that I'll go on the record saying that everyone with an interest in Python programming - no matter what level - should read it. It's short (well under 200 pages) but sweet, and - while not holding any revelations for those who are past the beginner level - you'll almost certainly find a few gems here and there.
Unfortunately, for reasons that I'll spare you, I've found myself with a version of the text that is slightly outdated. While explicitly supporting Python 3.x, there are several "holdouts" from v2.x in my version. The good news, and what really matters, is that not once has this been a problem. While I'm sure this has been corrected in the latest edition, I wouldn't feel any less inclined to recommend it even if that wasn't the case. In organizing the book's content, the author has taken more than a few pages from the large publishers. Far from being a bad thing, it completely side-steps the chaos that affects many of the books I've covered in the past.
While, for all intents and purposes, this is strictly a book for beginners, I’m amazed by how much in-depth content the author has managed to present. I can hardly imagine a better way to get started, especially if you're like me and want to understand how things actually work - and not just how to get them done. More experienced programmers will appreciate the notes found throughout the book. Nothing really advanced, but nonetheless, unless you know Python really well, chances are you will learn a few things here and there. Perhaps, one should say that this book is great for beginners and potentially interesting to intermediate coders. Obviously, you shouldn't buy the book solely for a few insights, but it’s a great example of how much care and detail went into its making. The point is that, sadly, this is much more than what I've come to expect from a beginner's book on Python and, as such, a really welcome bonus. I also like that - shall you find yourself wanting more information on any given topic - you’ll generally find links to the documentation right in the book. Did I mention that the author took a lot of care to get everything right?
The one and only thing which has obvious room for improvement is the index (of my, outdated, version). That being said, I've seen that it's already fixed in the current version. Not a big deal anyway, but the only objective fault I've found. I feel it's important to point out that, although my copy is not the latest, at no point I've found this to be a problem. Even a complete beginner shouldn't have an issue with it, since this book - unlike many others - isn't based on examples. In other words, all concepts are explained and the tinkering is left up to you. After all, there are plenty of examples on the web and in the Python documentation itself.
Incredibly for its size, 'A Byte of Python' also covers what a lot of other books consider to be for 'Intermediate' level programmers (whatever that means). Best of all, it never feels overwhelming or overly challenging (as far as I can tell). It just feels rightm thorough and complete, as evidenced by a (very short) chapter on software design. It contains a lot more material than what I’ve come to expect (admittedly, not a great standard) and is a great tool for anyone taking his/her first steps programming in Python.
On a tangential note: while reading this, I've found myself wondering if perhaps - and this is a wild guess - the ease of getting started with Python, has led (a plethora of) authors to write shoddy books. After all: with low-level languages (or anything that has a lot of complexity built into it), you have to be very careful. With Python? Not so much. Unfortunately I don't have time to test this hypothesis, but your comments are very welcome!
Thanks to its permissive (BSD-Style) license, ’A Byte of Python’, has been translated into several languages. So, even if you don’t speak English very well, this book has you you covered. Like all great things in life, this book is - in principle - free: you can find an online copy at the author's website but you can also buy a copy (generally, for a very modest price) and support this site at the same time. As with everything: keep in mind that a lot of work went into it and, given the great content, you should really consider a purchase. In any case, if you buy only one book on Python, this is the one worth getting. However, if you decide to get the free (online) version, which personally I find a bit hard to parse, you can always support us by making a donation - we won't forget it!
The bottom line is simple: this Python beginner's book is as close to perfect as they come, and it covers a lot of ground. The overall quality, readability and completeness, make 'A Byte of Python' an excellent choice for anyone looking to learn Python, whether from scratch or to solidify basic Python skills. It's by far the best book on the subject I’ve reviewed so far. Even now, in it's latest revision, it's not particularly new, but don't let that fact keep you from buying what's, in every way, a fabulous book. Actually, even if you somehow get an outdated copy - as long as it supports Python 3.x - you'll do just fine.
If you're in the market, do yourself a favor and get a copy: wether free (Web only) or for a modest price through the links on this website (in which case, you'll be helping us at no extra cost to you). 'A Byte of Python' deserves your attention. Happy to report that good programming books for beginners still exist!