Top positive review
12 people found this helpful
Best for those coming from an OO background.
on 11 October 2012
I really wanted to be able to write a perfect review for Think Python but I'm afraid I just can't bring myself to do it. Have no doubts about it this is a great little book (little in this case is a relative term - it's 300 pages which isn't generally a lightweight but it's relatively small in the computer language learning arena) which is extremely well written and very easy to get on with. However, for me it's not quite perfect. My issue is as much to do with my programming background as with the book itself. I cut my programming teeth on C - not C++ but proper, old fashioned procedural C - before moving on to PERL and PHP with a brief flirtation with Lisp. For me object oriented languages are relatively new beasts. I've been playing with Python a little bit recently, mainly to use the NLTK package, and I'm aware that I'm just programming by analogy to the languages I already know so I've been writing a sort of procedural Python. I'm sure if I understood the language and object oriented programming better I could get more out of NLTK, hence getting Think Python. However I found the structure of the book was a little bit backwards for my needs in that classes, objects and their related structures weren't formally introduced till chapter 15 and when they were introduced their coverage was a little bit sketchy. I can't help thinking that an earlier and more complete introduction to the object model of programming would be of huge benefit both to those coming to Python from a procedural background and for entirely new programmers who don't have an understanding of the paradigm.
Even with this proviso, Think Python is an excellent book for anyone interesting in learning a new language. It's clearly and concisely written with regular exercises to make sure you understand what you've just read. Each chapter introduces a couple of new concepts which build on previous chapters so you end up with a pretty good understanding of how the language cab be used rather than simply a list of functions and what they do. Just be aware that some of the code you end up writing may make object purists weep though it will still run perfectly well. As it stands Think Python is a solid four stars with a better coverage of object oriented concepts and structures it would easily be a five.