Review: Python Crash Course
Now that I am back on dry land and have a steady connection, better get to updating the blog. What better place to start sharing what I’ve been learning lately than with a good old fashioned book review? The real kind made from dead trees and can carry fancy bookmarks with kittens shooting lasers or if you’re lucky, love notes. Throwback Thursday type material.
Well, today I’ll tell you about my take on Python Crash Course by Eric Matthes and what led to my picking it up.
I have been looking at introductory data science materials for a few months now. It seems to me, that most of the people who are working with data are passably proficient in both R and Python. Now, my first tutorials and online courses were in R. Which, somewhat ironically, is where I realized perhaps I should back up and start by learning to program in Python first. You see after I finished a few tutorials in R, I began to suspect I could speed my progress my switching to Python. The reasons :
- Python has a strong community full of people who meet up on a regular basis and are happy to help newbies like me (PuPPy here in Seattle)
- The bootcamps and degree programs I am interested in teach python
- The syntax is logical and easier for me to grasp being so rusty at coding
So, deciding to focus simply on basic coding skills first, I went about trying to find a good reference book. There are l lots of great free resources online I might add, which are totally free! Although with my limited connection at work I started looking at Kindle selections. The great reviews on Amazon for Python Crash Course led me to download a sample, which I liked well enough to decide to buy a copy. I opted for the old fashioned dead tree version because, well the kindle copy kinda stinks. For whatever reason, there is an issue with the font that the actual code snippets are in displaying properly. While you can change the font for the main book text, the code is static. That’s rather, um, important in this subject… So hello paperback. I will say that the paperback is of a very high quality, the cover has a nice satin finish, is of heavy stock, and the spine allows the book to lay flat for referencing it while it lays open. Pretty important when you are typing the coding examples.
Here is what I really liked about the book. Every chapter and topic doesn’t just have an example of the code that you follow along with, it has aptly named “Try it yourself” sections, that simply suggest other scripts or functions for you to code out on your own. This is where I felt I got the most out of the book, not just parroting back what was written down, but fumbling through the try it yourself sections and learning by doing it on my own. If you get stuck, the author has complete code examples available on his github account for you to compare to. The bumbling on my part through these got less and less as I progressed and the example code got more and more involved and complicated and I actually felt less compelled to complete them all toward the end.
The next thing that I liked was the selection of projects chosen for subjects. I am learning to work with Data. That being said, I enjoyed programming my own space invaders style game the most. By the way, that is actually the first project in the book. This bad boy will take you from Noob to having coded your own game before even cracking page 320. Thats a crash course for sure.
Which brings me to my critiques. First, even though this book is a crash course, I found myself wanting for more explanation for the functions we used in imported libraries like pygame and json. I suppose this is coming from having just worked in R studio extensively, where the documentation for every library is right at your finger tips. It would’ve been nice for there to have been more information on where to find the documentation for the libraries you use in the projects though. There is an appendix with a list of resources, but it’s buried in the back and well, you probably would end up finding those resources on your first few google searches anyway.
Next up was the slight issue I had with pygame. This is an external library that is required to complete the space invader style game that I talked about earlier. I am running a MacBook Pro with OS Sierra, which I feel is a pretty popular bit of hardware/software for people who are or aspire to be programmers of some sort. Problem is that pygame won’t install with pip or with conda for python 3x on OS Sierra. (As of this writing) There is a workaround of course, using homebrew and a beta version of pygame that isn’t listed on the official distro page, but it still took me the better part of 3 hours to figure it all out. The fact of the matter though, is that when you use open source third party libraries like that, there may always be some problems with different environments. That’s the nature of the beast, and I don’t really feel like it detracted too much from the experience for me, was just a hassle that we all deal with when using technology.
Another thing I liked about this book, was the selection of projects. I feel like you probably have a goal in mind when you start coding in a language. A versatile and popular language like Python is used for so many different reasons… Your reason could be very different than mine (Data). Whatever your motivation is, I feel like the projects he chose to include are a good mix. Easy enough to complete as a beginner, advanced enough to make you proud of the work you’ve done and varied enough to be of value to most motivations. That’s a pretty tall order when you think about it.
So, in conclusion, I would highly recommend Python Crash Course by Eric Matthes. It’s a great way to get started programming Python in an entertaining and fun way. Unlike, ahem, the books with the critters on the covers… Which I shouldn’t trash talk, I love those too, and will likely recommend some of them in the near future, however this really opened my eyes for what a learn to code book could be. The potential in a medium you didn’t see, when realized, is so very refreshing.