It is the most popular Python programming book in the world. And now, thanks to Udemy - it's on video. So if you're looking to learn Python - should you download the book or watch it on Udemy? Well, you're asking the right guy: I just finished this excellent course. Here is the full review.
Programming is hard. Reading books can help. But having an expert narrate, share insights, and talk with you about techniques & concepts: that is going to make the learning process even easier (and a lot more fun).
And indeed, it's a big advantage to to hear the creator, Zed Shaw, talk about Python. This is the closest thing you'll get to having him mentor you in-person.
What you get
First thing to know, is that the Udemy version of Learn Python the Hard Way includes both video + the book (most recent edition, in PDF). So in this particular Udemy course the videos serve as simultaneous material to watch as you read through the PDF.
The book alone is 175 pages. The video? Almost 5 hours. So we aren't just talking a few bonus videos to go along with the book. Zed goes into detailed overview on almost every one of the 52 chapters. And that is a huge benefit for you, the Python noob.
The Udemy Advantage
Before I get into the 'meat' of this review I wanted to point out a cool advantage you get with Udemy courses. When you subscribe to any course - you get the unique (and optional) benefit of sharing feedback to the platform. This enables you to post comments, questions, or problems directly where the author can see and respond to them.
Your script throwing an error you can't figure out? Just post the details right there on the Learn Python the Hard Way Udemy page. So far, Zed has been very helpful to subscribers: replying to every question. In fact, he explicitly encourages questions. Again, this really is the closest you can get to having him mentor you in person!
Learn Python the not so hard way
As Zed explains, programming is very much something you learn by experience. You cannot learn just by reading or watching. So his course reflects that. The basic structure of each chapter is an introduction to a new concept or technique. A little primer on how to use it. And an exercise that he has you type out.
Finally, you run the code and see what happens.
And then, you dig into the code even more. And experiment with it in an attempt to earn the 'Extra Credit' Zed defines at the end of each chapter.
But this isn't new to anyone who has read the book. So what the videos do, is provide you a unique experience you cannot get by reading. By giving you an extra perspective. And by reading the book and watching the videos... the pace is slowed down a bit. So what you learn soaks in all that much more.
And honestly, it's kind of neat to have someone actively doing the course with you. Text is pretty lonely. Videos are fun.
In the videos, Zed drills into more detail. He'll type in the code with you. He talks about what is going on in the code. He's able to share insights and tips that aren't included in the book. With Zed explaining everything, it's a much more friendlier way to learn Python.
What you will learn
Here's a brief summary of what you will learn.
The basics: Once you've got Python up and running, you'll quickly learn about print statements (strings), comments, and basic math. You'll combine strings with math. Use boolean statements, then variables. He'll have you combining variables & strings. And introduce you to Python format & escape characters.
Intermediate: Pretty soon you'll learn how to take raw_input() from the user. Use that input in your code. You'll learn how to pass arguments along to your scripts. How to import modules. To read and write files. You'll be memorizing logic operators. For & while loops. And learning to write your own functions. Lists. And dictionaries.
Advanced: In the later half of the book, you'll get your first taste of OOP code. And an introduction to using classes in Python. And some examples to show you how powerful they can be. You'll do some exercises to help illustrate the difference between objects and classes. You'll learn how to setup a 'project skeleton' so you can install the apps you make. And test them. You'll program a game. And even a web application. And eventually Zed will begin to 'challenge' you. I'll admit, as someone who is primarily a designer, this course wasn't easy!
This is definitely not one of those courses that you can simply breeze through by typing what the instructor says. The Extra Credit in each chapter forces you to think on your own. And, particularly towards the end of the course - you'll need to be a lot more proactive to follow along.
In this way, the course has awesome long term value. Cause you can always go back and make another attempt if you don't get it the first time through. Perhaps weeks or months later after you get some more experience under your belt. Start at chapter xx and see if you can get through without stumbling.
For me, the designer-wannabe-programmer, I started to stumble around a bit with the introduction of classes and OOP. But that's how you learn - by getting out of the comfort zone. And actually having to look up stuff, which Zed repeatedly encourages you to do throughout the course.
How to learn it
This course is long! If you're a beginner programmer, allocate at least 2 to 3 weeks on it for sure. If you're expecting an "Express version" of Learn Python the Hard Way, this is not it. Far from (well, if you're doing everything he tells you to). The course will probably take longer than you think. Particularly if you're tackling all of the extra credit.
You'll want a good desktop setup for each session you have with LPTHW. Ideally, you have at least an extra monitor. Seriously, because the course involves the Udemy video, the PDF, your GEdit window, the terminal window and perhaps another browser window for looking up stuff. Below, I show a snapshot of my desktop during the course (and had the Udemy videos playing on the secondary screen).
To progress through the course, Zed recommends reading through the chapter in the book - and then reviewing by watching the video for each chapter. But I found that for the first half of the book you can generally do both at the same time, save a few pauses here and there, since Zed actually is typing what you type anyway.
So generally you can play him while you code. He will keep you company.
At times though it can be uncertain whether or not you should be reading or watching. You'll just have to go with the flow.
As you complete the course, Udemy will help you keeps track. It can tell when you have completed a video and a little progress indicator bar will show to reflect the estimated completion. All of the course material is conveniently organized so you can jump in and out anytime.
There are a few overlaps and quirks here and there as you progress through each 'week' in the course, but otherwise Zed has done a good job in structuring the course.
And I really enjoyed it. It inspired me to program several of my own little Python apps (that I'm still tinkering on to this day). In addition to the ton of material covered and the playful examples he makes you do - Zed shares a all sorts of tips, techniques, and recommendations that might just make you a better programmer.
Where I think a lot of the value gained from this course is in some of the habitual techniques Zed reinforces in you. For example, something he shares might not be a terribly insane concept, but the way he gets you into the habit of doing it is when things may finally start to click for you. Until eventually you just do it every time.
Author, Learn Python the Hard Way
Learn Python the Hard Way on Udemy is currently $29 - an awesome value. Check it out!