Think Python by Allen Downey is the first computer science book I have enjoyed reading. Never once did it get boring or ‘learner unfriendly’.
The goal of the book is to teach you how to think like a computer scientist. It teaches the process of programming. In other words, the process of problem-solving. Not only do you learn how to program, but you also practice your problem-solving skills.
Programming is more of a means to an end as well as a skill that is sharpened over the 240 pages.
Difficulty
Think Python is a beginner and intermediate friendly textbook. I opened it when I knew nothing about python other than that it was a programming language. I also find it quite resourceful to date. Honestly, it makes programming easier because it changes the approach of the user to thinking about programming as a means to an end instead of a complicated skill they need to be a guru at. Allen Downey’s tone throughout the book is friendly. Sort of like that tone the nicest teacher in school would use. He doesn’t assume his reader knows what he’s talking about. The whole book maintains a certain level of clarity that makes the reader properly understand something in one or two reads.
He also throws in some humor here and there
Exercises
Like any other textbook, there are exercises at the end and middle of a chapter. These exercises are aimed at practicing solving problems using the context taught in the respective and previous chapters. These problems are fun to solve and keep getting interesting as the chapters progress.
Clarity
The fact that Allen Downey teaches how to think like a computer scientist instead of just teaching python makes this book the perfect one for being a good programmer not only in python. It teaches tactics that can be applied in other languages as well.
My Two Cents
Computer Science textbooks may get very bleh at some point, or just plain difficult. I struggle to find the best ones so when I stumbled upon this one, my learning process became AMAZING. I prefer books over youtube videos because I find youtube videos somewhat vague. They just teach ‘how-to’, instead of the ‘why’s’, ‘when’s’… etc. Also, books push me out of my comfort zone, because then I am learning offline. I think on my own on various ways to solve a problem without having to google, which to me is a much efficient way to learn something.
Think Python: How to think like a computer scientist is 240 pages of a worth it process that will not only teach you how to program in python but equip you with skills in solving problems with programming. It is good enough to build a firm foundation in programming and is very easy to understand.