I’ve been working on leveling up my Python programming, and a friend recommended I check out the book Think Python by Allen B. Downey. The second edition of the book is available free online as a PDF, so I grabbed a copy and checked it out.
At first, I was not super thrilled about cracking open an academic-style text book about programming, but right off the bat this book is different from any of the traditional Computer Science programming text books I’ve read in the past. The book was written to teach Computer Science students at a university how to code in Java, but was eventually adapted to Python after it gained popularity. In the book, Dr. Downey mentions his motivation for the book was to combat the large number of students who begin to do poorly in programming courses after the first 5 weeks or so when the material gets more challenging. He intentionally wrote the book to be more concise, and with less technical vocabulary than a traditional programming langauge book, so students would not get lost in the material.
Think Python covers all the core material that you would need to know to start working with a programming language. All the information provided in the book is described very succinctly, with a good balance of explanation and coding examples. This makes this book a great option for people who are just looking to learn the language basics, and start working on the applications. Think Python provides tons of exercises at the end of the sections, which I found really helped me solidify my understanding of different concepts. One of the things I really liked about this book, is that you can find all the solutions to the exercises in one place in Dr. Downey’s GitHub repo for Think Python. Some solutions use functions written in previous questions, which I don’t love because not everyone is going to do every single practice problem, and it takes some creativity out of the solutions, but nonetheless, they are a great reference most of the time.
I highly recommend this book for anyone trying to get better at programming in Python, as it as been a huge help to me.