Think Python: A Review

About a year and a half ago I started learning how to code, inspired as I was after meeting some very skilled creative coders. The journey that followed has, so far, been equally exciting and challenging. Unsurprisingly, trying to learn something new and alien can be fiendishly difficult at times, especially when you’re also juggling a full-time job, a martial arts practice, and learning two human languages.

Around six months ago I hit a bit of a wall: I felt I was making very little progress. Although I enjoyed parts of the learning process, overall I started wondering whether perhaps this coding thing was not for me. At the same time, I knew I had felt like this before, usually right before a major breakthrough. I wasn’t quite ready to give up yet.

Think Python by Allen B. Downey was recommended to me by my brother. As he knows more about Python than I can ever hope to learn I trusted him and ordered the new third edition. It turned up on my doorstep on a sunny June afternoon and I immediately dug in. It surely helped that it was a book: anyone who has ever read this blog before knows that I’m a big fan of those. Code can feel abstract and fleeting; it was nice to own a physical object I could touch.

Sex months down the line I can say that I’ve learned more from this single book than from months of trying to figure it out on my own. Downey is one of those rare experts who truly understands what it’s like to be a beginner. His tone is patient without being condescending with appropriate touches of humour (I particularly like his use of Monty Python quotes to explain how functions work). As cheesy as it may sound, it truly felt like I was being guided by a much more experienced friend.

The book is also very clearly structured. Each chapter builds onto the next, but more experienced coders can skip the very first ones (these are fantastic, however, for complete newbies). Each chapter includes plenty of examples, a glossary, exercises, and suggestions for further study. On one hand the book offers a clearly structured learning path but it also lends itself to being used in a more freehand way by experienced coders looking for a refresher.

Even if you don’t know whether Python is the language you’re looking to specialize in the book is still well worth a read. Basic computer science and coding concepts are explained in a crystal clear manner and can easily be translated into other languages (which Downey has also covered in some of his other books).

Coding and data science have become buzzwords lately as the new skills you need to have to stand out in the increasingly competitive job market we all have to live with. Many expensive online courses will promise you the world if only you hand them your credit card details. The truth is much less glamorous: this stuff is really hard and I think it’s much better to see it as an exciting hobby than as a guaranteed ticket to a well-paid job. Whichever way your journey takes you, you will need guides, and Think Python is a fantastic starting point.

Image my own @thecococatani

Leave a comment