• Python 3
Reading time
  • Approximately 29 days
What you will learn
  • Programming Basics and Python Syntax
  • Graphics and Computer Vision
  • Algorithm and Data Structure
  • Allen B. Downey
  • 6 years, 6 months ago
Packages you will be introduced to
  • turtle

Official description

If you want to learn how to program, working with Python is an excellent way to start. This hands-on guide takes you through the language a step at a time, beginning with basic programming concepts before moving on to functions, recursion, data structures, and object-oriented design. This second edition and its supporting code have been updated for Python 3.

Through exercises in each chapter, you’ll try out programming concepts as you learn them. Think Python is ideal for students at the high school or college level, as well as self-learners, home-schooled students, and professionals who need to learn programming basics. Beginners just getting their feet wet will learn how to start with Python in a browser.

  • Start with the basics, including language syntax and semantics
  • Get a clear definition of each programming concept
  • Learn about values, variables, statements, functions, and data structures in a logical progression
  • Discover how to work with files and databases
  • Understand objects, methods, and object-oriented programming
  • Use debugging techniques to fix syntax, runtime, and semantic errors
  • Explore interface design, data structures, and GUI-based programs through case studies


There are 1 reviews for this book on GitHub.
Hendeca left a review on GitHub 4 years ago.

⭐️ ⭐️ ⭐️ A novel approach to a beginner's Python book, but still ultimately a beginner's book


Think Python presents an interesting premise: it will teach you to think like a computer scientist and at the same time, teach you Python. I was especially attracted to this idea as a coder without a computer science degree. I was intrigued by the book and got it after I began learning some Python. However, I really only started reading it after I'd become more familiar with the language and ultimately found it to be too much of a beginner book to hold me interest.

Since it deals with Computer Science topics as well as Python topics, some of the basics of computer science that I've learned through coding over the years were just too basic to be interesting. I appreciated that the book had plenty of questions and small exercises and that it was thorough in its coverage of the common terms and ideas involved in writing programs.

I wish I had read this book years earlier when I could have taken advantage of the fact that this book really starts from square 1 and does a good job of explaining the terms and concepts integral to programming. For me, this book was just too basic and I lost interest quickly.


  • Very thorough explanations
  • Lots of coding exercises to test your knowledge, great for learning
  • Excellent book for a brand-new programmer
  • Seems to do a good job of covering Python-specific topics


  • Very slow pace
  • Written a bit like a school textbook (in fact I think that was the initial impetus to write the book) and can feel tedious
  • Too basic for even an intermediate-level programmer

Write a review

Read this book? Comment on this book's GitHub issue page and share what you liked and what you didn't like about it. Your GitHub comment will show up as a review here.