As a follow-up to "why we love python" I thought some of you might be interested in what we've been reading on the subject. Since I have Ph.D. in computer science, my needs might be different than yours - I need to understand the language itself, as opposed to how to do something specific. Still, good books are good books...
Here's the brief rundown on what we've been reading on Python (the following are paid affiliate links, as an Amazon Associate we earn from qualifying purchases):
A terrible book! It's so terrible I almost feel sorry for the author... dont' be fooled by the "By Example" in the title: this book is little more (or less) than a copy & paste of the Python 3 documentation - which is way more useful than this. The author seems to be a serial-offender in that he has written countless "...by example" books. You won't find a single comment or explanation in this book, and personally I don't think that one line of code should count as an example. Stay away... To be fair, if you're like me, you'll still learn a lot, but you'll be doing so on your own. At least, the ebook is fairly priced.
No review of books about Python would be complete without a mention of Jan Bodnar's amazing tutorials! Yes, you've heard me - tutorials... free tutorials! Not only are they insightful and extremely useful - whether you're just starting out or just building up your GUI experience - but also extremely well-written and long! This is an example of generosity that we should all be thankful for. If you're looking to get started building GUI's with wxPython (the only sane choice in our opinion) look no further.
This just might be the most well-rounded book in the lineup. While the title leaves a lot to be desired, you'll get a good and thorough introduction to Python from reading this. Don't expect any deep insights, as there are none to be found, but it is "coding by example" done right. Anyone who wants to get started using Python should give this book a chance.
If, for whatever reason, you don't want to use wxPython for your graphical user-interfaces, Tkinter is the other option. In no way is it comparable to wxPython, but neither does it deserve the bad reputation (at least not recent versions). It's a different philosophy and different way of building up your GUI (although many concepts are universal - so learning one, will make you better at the other). In a nutshell, you give up a lot of control in exchange for something that 'just works'. For what it's worth: I don't consider PyQT, PySide or PyGTK as alternatives due to the restrictive licenses they come with. Only wxPython (which is the gold standard anyway) and Tkinter allow you to keep your code to yourself. All considered, this is a pretty nice book - although not particularly recent (there's a second edition, but I didn't know until it was too late - the link provided here points to the updated, recent edition) which will get you up to speed with Tkinter. The best thing about Tkinter is that it comes bundled with every installation of Python... it just works out of the box! The biggest shortcoming of this book can be summed up as follows: there is quite a bit of fluff, and that is OK, but unfortunately a lot of important (to me at least) details are left as unexplained mysteries to be figured out by the reader. This is made worse by the rather pitiful state of the official documentations (plural). The Tcl-language related documentation is, unsurprisingly, the better - although even more unseemly to the eye - of the two:
tkdocs.com is nice, but only if you're looking for a glorified tutorial - not so much when you're trying to understand what goes on under the hood. For what it's worth: a lot of the material in this book is also found on the website - we could say that the book is an extended version of the website (nothing wrong with that). Still, I'd suggest suggest to take a look online first and, if you like what you see, shell out the money for the book. Hard to go wrong this way.
A pretty good book, or at least the first half of it! It's exactly what I needed when I got started with Python - giving me insights into the language that are hard to come by. Unfortunately, about 50% of the book (the second half) are a (more or less) random selection of Python vs. other languages. I honestly have no clue what the author was thinking when he decided to do that. I'm not saying that it's useless, but it's certainly not the reason I bought this book. So, if you're looking for a book that goes a bit deeper and are willing to accept that 50% of the book are of little to no interest, then by all means give this a try.
By the way: shall you decide to order any of these books, please do so through the links provided in this article. Amazon's Affiliate program is one of the few things that provides a little bit of income - at zero cost to you! As an Amazon Associate I earn from qualifying purchases.