Python is an essential super power of data scientists and data engineers, so I decided to look for a book to train people on this programming language in a practical and funny way.
When I decide to teach something, instead of starting writing my own books I would like to see what books are available on the world, and for me Learn Python the Hard Way is the best book to start learning this programming language from those who has a little or nothing knowledge about programming to those skilled in some other programming language and want to start with python.
This is the kind of book I like since it takes you trough the python learning process by doing a series of practical exercises instead of starting with a lot of technical theory. For those who are unfamiliar with programming, I believe this book will be interesting and challenging, for those that are already savvy with some other programming languages and paradigms like object-oriented, imperative and functional programming or procedural, this book could seems to be boring, however I recommend, even for the code ninjas reading this book, to follow each exercise as is, I will result quite interesting (at least this was my case).
In this book Zed A. Shaw proposes 52 exercises that takes you to the python learning adventure, the author encourage to memorize by practicing the key concepts of python, he recommends to use flashcards as study hack, I actually love to that specially since my friend Alejandro Garcia “El Viejo” introduced me to Anki (You can learn more about Anki, flashcards and spaced repetition in this TedX talk by El Viejo -En Español-). So, if you are going to take this book as a reference to start (o review) with python I recommend you to create flashcards not only for the concepts that the author recommends, but also, to the entire book. You can download my Anki deck for this book here (it also has some extra concepts I goggled while reading the book or that I learn in Code School’s course “Try Python”).
If you want to start to take hands on this book you have the following options:
- Get the book from its official website, it’s just $29.95 USD and you also will have unlimited updates and some extra videos to boost your learning.
- Get the book on Amazon.
- Read the book on-line for free courtesy from the author.
As you can see, there are no excuses to start with this book today.
Extra tips
This section will be constantly updated while I’m personally reading the book or when someone who takes one of my training course shares any interesting insight I believe is worth to share here.
- For Exercise 22: I recommend to create flashcards using Anki since day one. Invest at least one hour per day reviewing your cards and improving them, also, I suggest to practice some extra exercises to improve you python learning, you can find tons of practicing bits in Code Chef.
- For Exercise 23: If you are just beginning with Python, I encourage you to follow Zed’s recommendation and invest a week reviewing code, or even practicing with some easy examples you realize or from Code Chef. It could be boring and even frustrating to see code you don’t understand, buy remember that these are your first steps. If you have proficiency in other programming languages, maybe you would decide to dedicate just few hours reviewing code, this is what I did.
- For Exercise 32: I found a nice explanation of all the lists’ functions and methods in this page, and also, I added them to my Anki deck of course. While reviewing the list’s super powers I recommend you to test by you own all the examples by typing them on the python console.
- For Exercise 36: When you reach this part of the book you have already learned a lot of great things about python, in my opinion this exercise is the beginning of the hardest part of the book, despite the hard it could seem, keep pushing on becoming a python code ninja; for first time programmers I really encourage you to spend a week or two doing this exercise. Additionally for experienced programmers that are adding python to their super powers set, I recommend to compliment this exercise by challenging yourself with some problems from Code Chef or Code Wars.
- For Exercise 37: This is another good exercise to reinforce your python learning. Despite you are an newbie or an experienced programmer I recommend to do this exercise, for me a great complement for every learning activity I do is to create flash cards for every important concept to remember, that’s why I use Anki and I recommend to use it since day one. Having your flashcards will make easier for you to complete this review exercise, specially if you are daily studying your flashcards.
- For Exercise 39: If you are following the third edition of the book, there is a typo on the code creating the dictionaries states and cities, the code uses squared brackets ( [ ] ) instead of curly brackets ( { } ), this situation could be frustrating for beginners, however if you where following the book and practicing, I believe this is a code bug easy to fix for everyone.
- For Exercise 46: On page 186 from the third edition of the book there is a typo on the code defining the dictionary of project’s configuration, the code uses squared bracket ( [ ] ) instead of curly brackets ( { } ). In order to ease the reuse of the project skeleton, I created a README file on my code repository for this book, that I pretend to be useful for easing you (an me) to reuse this skeleton in future projects.
- For Exercise 47: The code on the bug have some bugs, although it was fun for me fixing them, I could be frustrating for first time programmers, so if this is your case, if you have the book I recommend you to follow this exercise on the book’s website.