Automotive Holiday Deals Books Gift Guide Books Gift Guide Shop Men's Athletic Shoes Learn more nav_sap_SWP_6M_fly_beacon Adele egg_2015 All-New Amazon Fire TV Get Ready for the Winter Gifts Under $50 Amazon Gift Card Offer bf15 bf15 bf15 $30 Off Amazon Echo $15 Off All-New Fire Kindle Black Friday Deals Shop Now DOTD

Format: PaperbackChange
Price:$33.99+ Free shipping with Amazon Prime
Your rating(Clear)Rate this item

There was a problem filtering reviews right now. Please try again later.

35 of 35 people found the following review helpful
VINE VOICEon March 19, 2011
This book should be retitled ThinkPython: An Introduction to Scripting.

I would whole heartedly recommend this book to readers looking for a quick 0-60 self study in (Python) scripting. It's a great place to start for someone with really zero or next to zero experience who is looking to get up and running as quickly as possible. This book does not spend much/any time on computer science. It spends very little time on software design over and above splitting scripts into modules and basic OOP.

When my 13 year old cousin expressed some interest in programming I gave him this book without a second thought. For a high school class / intro college course for non(-committed) CS majors looking to cover the same ground in more detail I'd recommend Python Programming: An Introduction to Computer Science by Zelle. (These recommendations assume you are committed to Python if not look at How to Design Programs by F, F, F, & K)

Bottom Line: If you are looking to cultivate an interest before crushing it with big O notation or have zero interest in CS but want to automate something using Python this is a good starting place.

N.B. This book is freely available online.
0CommentWas this review helpful to you?YesNoReport abuse
43 of 46 people found the following review helpful
on October 11, 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.
55 commentsWas this review helpful to you?YesNoReport abuse
42 of 47 people found the following review helpful
VINE VOICEon September 5, 2012
This relatively compact volume (277 pages including appendices and index) offers an excellent approach to learning Python and also could serve well as a foundation course for the Computer Science curriculum in high school or university. There are several distinguishing features of Professor Downey's excellent approach; he has a Ph.D.. in Computer Science from U.C. Berkeley and Bachelors and Masters degrees from MIT. What most distinguishes this superior text from other language primers (in my opinion) are the short, 1-2 page conceptual subsections in each chapter that build up a topic-based introduction to Computer Science. Other prominent features include
the availability (by permission) of a full PDF download of the books text (ideal for following along online), and two graphical packages "swampy" and "lumpy" prepared by the author to enable simple "turtle graphics" and visualization of Data Structures given in advanced programs. This is not only an efficient book for properly learning the Python language; it also gives an orderly introduction to concepts beginning with variables and data types, leading to control structures and functions, and fully including advanced concepts such as object-oriented programming, searching and sorting, algorithms and data structures and well as more complete coverage of debugging than I have found in other texts.

I highly recommend this text for a first course in Computer Science at both secondary and university levels. It is as its title suggests an introduction to Python for Thinkers.

--Ira Laefsky MSE Computer Engineering, MBA IT Consultant & HCI Researcher
formerly on the Senior Consulting Staff of Arthur D. Little, Inc. and Digital Equipment Corporation
0CommentWas this review helpful to you?YesNoReport abuse
20 of 21 people found the following review helpful
on September 8, 2012
"Think Python" is available online ([...]) which means you can decide if you like it first. Personally, I wanted to write in my copy making the paper copy a great thing. Inexpensive too for a computer book. It's one of those great books I know I'll refer to again. Can't imagine why you'd buy the Kindle version though.

The book is targetted at those learning Python. It's appropriate whether you are new to programming or coming from another language. And most importantly, it is NOT a "Learn Python in X days" type book. Those have their place, but this book targets those who actually are/want to be developers. Hence the subtitle "How to Think Like a Computer Scientist."

Each chapter ends with debugging tips, a glossary of terms and numerous exercises for practice. Common idioms are covered in addition to syntax, techniques and algorithms. Recursion is presented in a not scary, approachable way.

The author uses the term "state diagram" to refer to the state of variables in an object. I've never seen this usage before (being more used to the UML state diagram) and look forward to asking the author about it in his book promotion next month.

I think this makes for a great first Python book. To be followed by one that teaches the Python libraries. It teaches you how to think in Python. And how to be a developer; not just a coder.

Disclosure: I received a copy of this book from the publisher in exchange for writing this review.
22 commentsWas this review helpful to you?YesNoReport abuse
11 of 11 people found the following review helpful
on September 24, 2010
This is a great book for learning how to think about Python and basic object-oriented computer science in general. A friend and I have been using it as a self-directed study text, and find the exercises fun and enlightening. The exercises often illustrate python gotchas in a memorable way, which I definitely appreciate. To get the most out of this book, I have found it helpful to have the PDF version of this book open in one window, a python interpreter open in a second window, and a text editor open in a third. As I read, I type examples into the interactive interpreter so I can play with the code and see how to get it to fail. For the exercises, I type my guess in the text editor and check it by running it in the interpreter to see if my guess is correct. This is definitely one of the best books out there for beginners or beginners to Python.
22 commentsWas this review helpful to you?YesNoReport abuse
14 of 15 people found the following review helpful
on November 18, 2012
I like the style, the Monty Python jokes are okay with me. It's a great contrast to the Zed Shaw book "Learn Python the Hard Way" which I also purchased. They're both good but completely different approaches. I'm 250 or so pages in and hardly even realized it. Python is a great language and this author clearly knows his stuff. As with all good books, this one has exercises and examples.
0CommentWas this review helpful to you?YesNoReport abuse
8 of 8 people found the following review helpful
on April 1, 2013
Full Disclosure: I obtained a free copy of this book as part of the O'Reilly Review program.

Even if Python's syntax is very intuitive and simple, learning to program in it still represents a burden for non-specialists.
Differently from other learning-to-program books, "Think Python" introduces the programming beginners both into the language and in the computer science logic behind it. In this way, the book becomes perfect both for self-learners and for those who teach Python to programming beginners, as it introduces gradually all important programming basics concepts, such as debugging, stack diagrams, development plan, catching exceptions and helps readers in solving these tasks. Although it is written for beginners, the book is spanning over everything, and thus can be useful also for more advanced learners: starts with the simplest concepts, such as variables definition, and ends up with modules to process databases and search algorithms analysis. A good thing is also that the book introduces functional programming since the beginning, and by this teaches the best programming practices.
The book is written in a very simple language, uses glossaries, and attractive exercises, like using turtles objects to draw shapes, drawing fractals or processing project Gutenberg books. The exercises have been specially developed for this book, and are available on the author's website.

In addition, the book contains a couple of chapters with exercises relevant to Computational linguistics tasks, such as word frequency, or random text generation, so it would also introduce the interested readers into ways of solving the field's tasks, before switching to a more advanced Python for NLP book, such as O'Reilly's Natural Language Processing with Python. Go for it: It is fun, easy, not scary, and effective! :)
0CommentWas this review helpful to you?YesNoReport abuse
11 of 12 people found the following review helpful
on December 6, 2013
I was asked to tutor a bright high school student who was being introduced to programming with this book. She was struggling with a program that I thought was too tough an assignment for having only completed the first 8 chapters of this book: implement Wheel of Fortune (no graphics, and not the complete rules, but challenging for a beginner - see Wikipedia for description of the rules). So I skimmed the (free online version of the) book before the tutoring session.

I am very impressed with the book for all the reasons listed by the most popular review. It does a terrific job of teaching basic programming and computer science concepts in a logical progression, using Python. And Python is a great choice thanks to it's emphasis on readability - as the author states in his intro, that makes Python a great language to use for this purpose.

However, seeing what my student was struggling with, I realized she was doing well with many of the basics but had very little clue about selecting appropriate data structures and therefore had numerous global variables to store data (when one list of lists would do, or better yet a class). Some of this was the fault of her teacher for assigning a task before the book introduced data types appropriate for it (they started chapter 9, lists, while the assignment was outstanding and classes aren't covered until chapter 15). However, some was due to the book being light on program design and selection of appropriate abstract data types.

I studied how the book handles program design and data structures. The book does touch on some aspects of program design in 4.8 (A Development Plan) and 6.2 (Incremental Development). The book covers data structures in a gradual and light way starting in chapter 12, and in section 13.9 talks about them explicitly. But the treatment is mostly discussion and theory with very little in the way of example - the student is expected to design programs and figure out abstract data types to support their design on their own. In my opinion, this process is a common task that is not at all intuitive for beginning students. Most students will benefit from examples and simple exercises before moving on to writing a 100+ line program.

I remember my first intro college course on computer programming discussed Pascal records at great length and it was a key to being able to implement several assignments, including the final exam (a coding exercise that had to be completed within 5 hours). Many programming tasks require storing collections of data like this.

If you are teaching using this book, be sure to supplement with examples of good and bad data structure selection, emphasizing how a mass of global variables is far more difficult to debug than a single global variable that stores everything in a list of lists (and when you get to chapter 15, define a class and use objects).

edit 12/17/13: After writing this review, I did some more research to see if I could find good resources to help the student I'm tutoring. They were difficult to find and I'm still searching. It seems to be the case that most intro programming books are very light on program design. Based on my research so far I refined this review to refer to program design, not just data type selection.

edit 12/31/13: After skimming several more books I finally found a book by John Zelle that does a great job teaching design along with Python and Programming: Python Programming: An Introduction to Computer Science 2nd Edition. I still think "Think Python" is a good book but a teacher needs to teach design as well, and one way to help with that would be to supplement Think Python with Zelle's book. The specific sections in Zelle's book on design are: 2.1, 2.2, 3.3, 7.5, 8, 9, 10 (especially 9!!). Zelle's book also does a fantastic job introducing object oriented programming (chapters 5, 10)
11 commentWas this review helpful to you?YesNoReport abuse
3 of 3 people found the following review helpful
on November 29, 2013
Where was this book when I was taking college programming classes! I have to start off in saying that if you're a beginner in programming, this book is phenomenal. Allen explains the basics very clearly and thoroughly. I'd have to say this book is half about beginner programming and half on Python. As an FYI, this book is good for many basic principles of Python but if you're looking for anything more than just that, I'd recommend Learning Python, 5th Edition by Mark Lutz.

I bought this book for a new job that I took. I minored in CS and wish I would have had this book as my first programming book. I was attracted to it because I needed to learn Python (for work) and all of the guys use the Learning Python for reference. I figured why not start from the beginning and work my way there.

As far as the progression of the book, it moves pretty quickly. You have to stay on your toes with the examples. Having been exposed to a bit of Python before reading, I was able to keep up with the examples just in my head for a little while but as the book moved on, I was doing them in a console. I also think the flow of the book and how Allen moves from topic to topic keeps things cohesive quite well.

Overall, very well executed book and Allen assumes the reader has no experience in programming. Great book!

Update 1/20/14:
After finishing the book I wanted to write a follow up. I have to say that I stand by my initial review and rating! It has been a huge help in getting me up to speed. There are a few specific things that I would like to address.

In regards to the basic principles of Python, this book had done a very good job at balancing what you need to know vs what you can know. It was good to be reminded that this book is a beginner book. I ended up looking up more details and specifics of certain functions and methods mostly because I had specific requirements that I needed to perform with them. This can't be faulted on the author. As I had mentioned in my first review, if you're looking for more specifics, Learning Python, 5th Edition by Mark Lutz is a great tool. I've borrowed a coworkers copy and will be getting one of my own soon.

I cannot speak on behalf of the database content since I skipped over that section and have no experience doing database/structure.

Otherwise still very good book. I enjoyed being challenged as I read the examples and I like how it wasn't just a "finish what I've shown you" type of examples, but the author said, "Ok, I showed you mostly how to do it this way, and you finished it in another example, now do it a completely different way with what we just discussed."
0CommentWas this review helpful to you?YesNoReport abuse
3 of 3 people found the following review helpful
on November 22, 2012
Wanted to learn Python and found out that this book is being used by a prof. from Cornell. Bought it and read it and fell in love with it. Each chapter is not very long to read and his writing is very clear to understand and follow. Will recommend for all with very little to no prior exposure to Python.
0CommentWas this review helpful to you?YesNoReport abuse
Customers who viewed this also viewed

Learning Python, 5th Edition
Learning Python, 5th Edition by Mark Lutz (Paperback - July 6, 2013)

Think Complexity: Complexity Science and Computational Modeling
Think Complexity: Complexity Science and Computational Modeling by Allen Downey (Paperback - March 12, 2012)

Send us feedback

How can we make Amazon Customer Reviews better for you?
Let us know here.