I recently picked up a copy of "Learn Python in One Day and Learn It Well," by Jamie Chan. This article is a book review, but it’s not a normal book review. This book sets out with a promise — learn Python in a day — and I want to know if the book can keep that promise. To properly test the claim, I have given up my normal day’s work (Can you tell I’m crying on the inside?) to go through the book and write this article. The book weighs in at a “hefty” 92 pages, with 27 pages of appendices and supplemental information.
This exercise has to start with a bit of a confession. I don’t really know Python. I can read it, I can read debug output, but I’ve never written anything in Python at all. I’ve bought several books on the language, but have never had time to finish one nor use the language to the point of any sort of proficiency.
I’ve even written ZenPacks while going to great length to avoid using Python. It’s about time I learned it, and I have a day to do it. This is a workday, eight hours. As I’m typing this, it’s just after 9 a.m. With the time spent writing this blog and eating lunch, I’m allowing myself until 6 p.m. — not a minute more. I’m writing this article as I go through the exercise, so the result of this experiment is unknown.
Without further ado, I’m going to dedicate today to learning Python with the goal of answering two questions:
1. Can I learn Python?
2. Can I learn Python in a day?
Learn Python in a Day
The book is divided into eight chapters. I told you, this is not a normal book review — I won’t be covering the content in the book, but a basic layout of the book’s structure is probably helpful. The book starts with an introduction to Python and then proceeds to cover Data Types, Operators, Interactivity, Logic, Functions, Modules, and File IO, and finishes with a project. If I feel like I completed the project without major hassle and understand what I’m doing as I do so, I will declare this effort a success. In the event of failure, well, I’m still a pilot, and you aren’t. (Those of you who made fun of me at the beginning of this article for not knowing Python have now been solidly put in your place!)
I’m not half an hour in, and my MacBook Air needs Python 3. I’ve downloaded and installed Python 3 and TCL/TK so that I can use IDLE (recommended by the book). I’m not at all intimidated by TCL/TK or installing on a Mac, but this might put off some readers — especially those trying to do this from Windows.
I’m at the halfway point, and have just gotten through the chapter on If, For, and While loops. This is where I’m starting to learn rather than reviewing things I learned in other failed attempts to pick up Python. I’m just over four hours in, and I’m honestly somewhat nervous about retention. Retention and relevance have always been a fear of mine with these books because I don’t know that basic logic, and printing things is going to help me in the real-world use of Python. All of us learned math in school, but it was after we were out of school that most of us learned (or didn’t) to balance a checkbook.
At the End of 8 Hours
I didn’t get there. There’s no other way to say it. I completed the course material and the first four exercises of the project, but I’ll have to finish over the weekend. I also noted that while I was working on the final project, I spent a lot of time referring back to earlier exercises. (e.g., “How’s that dictionary get formatted again?”)
I have a lot of the concepts needed to use Python but little practical understanding of what to do with them or when to use them. I don’t fault the book, per se, it’s just arriving at the same point I always arrive at — and one of the reasons why I’ve never become a developer.
I’m writing this the next day. I’m a bit less down than yesterday. Eight hours and not achieving what I wanted to was tough. I feel a bit better this morning, and I also feel like my knowledge of Python is at least eight hours better than it was yesterday, but that wasn’t the point of this exercise. I set out to answer two questions. Let's review those and answer them in the cold, harsh morning light of reality:
1. Can I learn Python? Twenty-four hours ago, I’d have said no. Today, the answer appears to be yes.
2. Can I learn Python in a day? No, but I did get almost all the way through the book.
This is probably a great book for learning Python if you already know how to program. I did learn a lot of things I didn’t know, and feel somewhat more comfortable moving forward in the world of Python than I did a mere eight hours ago.