Jump to ratings and reviews
Rate this book

Learn Python The Hard Way

Rate this book
This simple book is meant to give you a first start in programming.

The title says it is the hard way to learn to write
code but it’s actually not. It’s the “hard” way only in that it’s the way people used to teach things. In this book you
will do something incredibly simple that all programmers actually do to learn a language:

1. Go through each exercise.
2. Type in each sample exactly.
3. Make it run.

That’s it. This will be very difficult at first, but stick with it. If you go through this book, and do each exercise for
1-2 hours a night, then you’ll have a good foundation for moving on to another book. You might not really learn
“programming” from this book, but you will learn the foundation skills you need to start learning the language.
This book’s job is to teach you the three most basic essential skills that a beginning programmer needs to know:
Reading And Writing, Attention To Detail, Spotting Differences.

210 pages

First published January 1, 2010

398 people are currently reading
2065 people want to read

About the author

Zed A. Shaw

18 books59 followers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
367 (29%)
4 stars
500 (39%)
3 stars
275 (21%)
2 stars
78 (6%)
1 star
32 (2%)
Displaying 1 - 30 of 128 reviews
Profile Image for Michael.
163 reviews73 followers
March 27, 2016
Considering I'm a software developer by profession and already know enough Python to be dangerous, I'm definitely not the target audience for this book. I still bought it for 2 reasons: (1) I like Zed's writing and also read his blog. (2) I also teach programming courses and thought this book might give me some good ideas on how to teach certain concepts to our students. I wasn't disappointed, this book is an excellent introduction to programming, the methodology is refreshingly different from all the dreadful "Learn X in 21 days" books in that it actually stresses how tedious and annoying writing code can be and if you are a new software developer and use it like it's intended, you'll definitely learn a lot. I for one will recommend this in the future!
101 reviews81 followers
May 25, 2018
I used this book to remember some of the basic things I had studied before. It was kinda okay up until the object oriented programming concept. the author basically throws in some code and expects you to understand it! if you can't, then it's your own problem. google it, freak!
The book should have been called "Learn to google the hard way with a twist"!
Profile Image for Tharindu Dissanayake.
309 reviews896 followers
May 15, 2020
This is an excellent guide for a complete beginner, not just to Python, but to programming in general. Downside is, it is of very little help if you are already familiar with the language.

Also, the book is based on Python 2, so for someone just starting, there might be difference in opinions whether or not Python 2 is the way to go. But once passed that, the book is very helpful.
Profile Image for Cynbel.
90 reviews7 followers
March 25, 2012
It's a decent book to learn Python, but it's really lacking. It starts off strong learning the simple concepts, but when he gets to classes, everything falls apart and he really slacks off in explaining certain details. Plus he throws you off the deep end before giving any actual exercise using tuples, saying here's the test code go write the program that works with it. I would make sense if he actually had explained things and given examples.
Profile Image for Chris C.
8 reviews3 followers
May 27, 2019
I think this quote sums it up:
the author basically throws in some code and expects you to understand it! if you can't, then it's your own problem. google it, freak!

I don't like Zed's approach to teaching. Other learning resources are much more pedagogical and make learning fun and rewarding instead of frustrating. If you're a total beginner I'd recommend starting and getting some practice with the basics before moving on to books. It'll make things more fun to be hands-on initially.
7 reviews
June 3, 2016
Worst programming book ever.

The author is condescending, the examples are tedious and that attitude of "do things this way because is the good one and all the others suck" or "type this and shut up" is stupid.

There are a lot of good resources about Python out there. This book isn't one of them.
Profile Image for Martin Balaz.
149 reviews30 followers
June 26, 2016
Kniha je v online verzi k dispozici zdarma zde:

Bohužel, LPTHW bych rozhodně nedoporučil nikomu, kdo chce proniknout do tajů programování v Pythonu. Jediná kapitola, která je užitečná, je Appendix A, jenž naučí základy práce v PowerShellu.

Přibližně od poslední pětiny knihy se praktická cvičení stávají absurdně náročnými, nové koncepty se ukazují na těch dosud nevysvětlených. Příklad 39, kdy se slovníky vysvětlují vytvořením hashmapy, je už opravdu úlet.

Více o kritice na knihu zde: .
Profile Image for Caroline Berg.
Author 1 book25 followers
September 1, 2019
Not a fan of Zed's tone, particularly in the early chapters, which made me set this book aside to read a different book in order to learn Python for a bit (Python Crash Course: A Hands-On, Project-Based Introduction to Programming by Eric Matthes) - especially since I already know how to program in several other languages.

That said, I'm glad I came back to this book for the later chapters, particularly about organizing game code since I love to write Interactive Fiction (IF) games and that kind of game is the example used through the entire second part of this book. I was also interested in the section for making it so your game could be played from a webpage.
Profile Image for Opensource.com.
3 reviews209 followers
June 27, 2014
Python is a great language choice for someone beginning to learn computer programming. Learning Python means you can hack on your Raspberry Pi, contribute to OpenStack, or do just about anything else in between. Learn Python the Hard Way by Zed A. Shaw is an excellent learning resource for the beginning Python programmer. Don't be turned off by the "hard way" bit; the book's exercises are well thought out and pedagogically sound. In fact, doing things the "hard way" will actually make you a better programmer in the end.



by is one of the books on the . Visit our site for details on how you can win a free copy of the book.
Profile Image for Tanabrus.
1,970 reviews185 followers
September 19, 2016
Nice tutorial for getting started with Python, with many practical exercises and step-to-step instructions.

Plus, and that's useful, it's widely used so for any issue we can find a thread already opened and solved on stackoverflow.

The only let-down is that often it throws in a bunch of new terms or codes without explaining them: they'll be explained later, or it's up to you to stop and search elsewhere.

Anyway, useful for a beginner.
Profile Image for Soham Chakraborty.
113 reviews31 followers
February 20, 2013
I am surprised this has such a low rating. I mean, yes, when I went to #python on irc.freenode.net and asked guys, I need a basic beginners python book, the immediate response was haven't you seen LPTHW.

Zed, you sir, are an awesome teacher. I mean, yes, awesome teacher. I love the line, "Remember, paying attention to details is necessary. make the code exactly as mine and run". Well, I did run it, sir.

One guy in my office, who is also in python-devel list and a seriously good python guy, also recommended this book first in his lecture when he gave a brief introduction of the language. Yeah, I have this book open in my tab most of the time. BTW, this is not for professional python guys who are executing .py all the time, this is meant to get a grip on the language and then further explore it. Even, Zed told that a number of times.

If you are interested in learning python, give this a try.
Profile Image for Nickolai.
869 reviews8 followers
September 5, 2017
Ужасная книга. Во-первых, чрезмерно раздутая. Фактического материала тут всего лишь листов на 50, а остальное - это патерналистские нравоучения автора, считающего себя величайшим программистом и призывающего читателей слепо следовать своим указаниям. Во-вторых, автор возможно и является хорошим программистом, но вот преподаватель он крайне слабый. Книга просто пестрит советами посмотреть тот или иной материал в интернете, вместо того, чтобы самому его объяснить. В третьих, очень много кода, который автор просто советует переписать, а читателю остается только самому догадываться, что же этот код делает и почему. В итоге получаем действительно "тяжелый путь" к изучению питона, так как по этой книге выучить данный язык программирования действительно очень сложно. Лучше обратить свое внимание на другие, неизмеримо более достойные, учебники.
Profile Image for Manuel Pages.
4 reviews3 followers
April 22, 2012
Read the whole book overnight.
Was hoping for some really hardcore chapters, but went through it like a knife through the butter.
On the other hand — I'm a professional programmer.

Nonetheless, I learned how to
>>> read and write python source code
>>> do simple test driven programming (though I seek for more details in «Test-Driven Development in Python by Jason Diamond»)

The downside of it was really misleading title. That was not the hard way, there were some extremely important details missing, but all in all it was OK, so two stars.
4 reviews
November 5, 2014
I find text based games really boring and I didn't like the style the book is written in, nor the whole idea of typing all the code first and then getting an explanation after that.

I'd suggest to take a free Coursera course "An Introduction to Interactive Programming in Python" instead. No need to install anything (everything runs in a browser), much better explanations of things, clear, fun and doable mini projects (a few card games, pong, asteroids with graphics and sounds!), community, etc.
Profile Image for P.
177 reviews2 followers
February 10, 2015
Four stars because it's damn good instruction manual, but it's not like it's All the Kings Men or anything.
1 review
September 21, 2021
Not the best book on learning python I've read.. The code examples contain _a lot_ of fluff and the author doesn't really explain much...
The chapters/parts are really short with 3/4 parts of code that you should write exactly like the author does. and then it's 1/4 of "Figure out why this works! Google it if you can't figure it out"

The reason I pick up books like these is to get a new perspective and see if the author brings something new to the table. This is not it.
Profile Image for Marielle.
130 reviews5 followers
June 7, 2019
This is my go to book recommendation for anyone who wants to learn either programming period, or wants to learn Python coming from a basic level in other languages.

Some of the other complaints are that there isn't enough explanation in this book - this is exactly what I love about it! Explanations never worked for me when I started learning programming. Repetition builds intuitive understanding, that's what this book is all about.
4 reviews1 follower
May 22, 2019
I have to agree with all other reviewers. Shaw isnt a great teacher. The book starts out with Shaw spending entirely too long explaining the most basic concepts and then once we get to the harder concepts he stops providing any kind of explanation and tells you to look it up on the internet. And he's right. Dont waste your time on this book when there are so many free resources available online. Oh and this book is 90% Shaw's poems and short stories incorporated in the code. For every line of code there are like 5 lines of nonsense.
5 reviews
June 5, 2015
When first picking up this book, I was expecting to see an anatomy of the Python on the first few pages of the book. However, I ended up finding the ABCs of the programming language named “Python.” 

I am currently in High School level, who never had any prior education on coding or computer science. I was looking through the piles of books trying to find the easiest book I could start with because I was about to start a little programming organization named the Online Student Programmers’ Organization.

This book simply instructs the readers to follow through the exercises first, and then teaches you the concepts of the code. Thus, this book is centred towards “hands-on” exercises rather than plain old “read and consume info.” Zed A. Shaw has incorporated numerous graphic images to allow the readers to comprehend the steps listed within each exercises. Finally, this book provides a little “appendix” section for all the sudo codes you can perform on consoles for the Windows, Mac, and Linux.

Overall, this book is great because it starts with the basics of Python; I would highly recommend this book to new coders as this book is easy to comprehend and follow through.
351 reviews57 followers
December 3, 2018
I like that it builds to building websites with Flask, which was something that I specifically wanted to know how to do. as a teaching aid, however, it's seriously hamstrung by the strange ordering of Python fundamentals (compare CodeAcademy's and Python Crash Course's presentation order of more or less similar material—for instance, dictionaries aren't introduced until 140 pages in), Shaw's obnoxious tone throughout, and his borderline useless type-this-and-shut-up pedagogy.

if I had had only this book available, I think it is fair to say I would not have gotten past the point of absolute Python beginner—it requires some other sources so that you can loop back around pick up what Shaw doesn't mention in the book, although in conjunction with those other sources I mentioned, I found it to have some use
Profile Image for Neal Aggarwal.
72 reviews13 followers
November 6, 2013
An excellent intro to Python programming. I use this to teach my students intro programming to lead onto my other courses in hardware design. Those courses are built on top of Nisan and Shocken's program that requires minimal programming skills in order to make the leap into building a computer from scratch. One of the most important things LPTHW teaches is that just as you cannot learn to ride a bike by reading about it, you cannot learn to program without actually keying in the programs and seeing them work.
Profile Image for Simon Cowan.
11 reviews22 followers
November 11, 2012
Finished is a bit inaccurate here as I'll be returning to this book again and again. Not only is it a great learning tool it's also an excellent reference when I get stuck. Yes when, not if. Also, I didn't manage to get further than the beginning of classes and such but that has more to do with my ability with Python than the book so doesn't impact my rating. I have, though, got a lot further with this than any other resource I've tried so hats off to the author. A definite add to favourites.
Profile Image for Chenglu Jin.
6 reviews
July 2, 2013
Yes, it is a good book for a program beginner. And the author is quite humors. But sometimes, he will leave you some questions without answers. You need to search it online. Although we can learn more from online materials, I still think it is waste of time sometimes. Maybe I just dislike this teaching style.
Profile Image for Allyn.
7 reviews3 followers
August 26, 2013
Not so much a book about Python as it is a book about learning to program. I often point new programmers to this book. It's not complete, but Zed wrote this knowing that the Internet is a thing and people that want to be programmers should utilize it (because StackOverflow will be your friend forever). This book gives you homework.
Profile Image for Kelly.
64 reviews5 followers
December 8, 2017
Author had a condescending attitude. Outside of that turnoff, the sections on testing were unusable later in the book. Nose2 is not compatible with Nose. Nose (1) did not install on my rather vanilla Macbook Pro. I did figure out how to use Nose2 for some of the unit tests but it was a bit frustrating.
167 reviews42 followers
January 24, 2019
Same thing everyone says, it’s good until OOP and it’s just trash from there. I switched to crash course for python after that. He even shits on inheritance pretty hardcore, and it seems dubious at best.

The first section is 10/10, and is really good at learning fast. It’s real effect there, so would be 3.5 stars but I guess I do grade inflation.
Profile Image for Danila Sentyabov.
19 reviews1 follower
August 9, 2015
I think this is the best way to learn programming without any prior knowledge of it. I wouldn't recommend it to experienced non-Python programmers learning Python, though. The book is really aimed at making the learner grasp programming for the first time.
Profile Image for Ntinos.
3 reviews
September 1, 2011
A really great book in order to get started with programming. You use editors, UNIX commands and learn how to type symbols by using them when you type code.
4 reviews
July 25, 2014
Did not expect such a basic book to be so helpful.
Profile Image for Strong Extraordinary Dreams.
592 reviews24 followers
June 5, 2017
A real "intro to programming, and some python too" book. Maybe it's OK at that. But tooo basic, really, and tooo slow.
Displaying 1 - 30 of 128 reviews

Join the discussion

Can't find what you're looking for?

Get help and learn more about the design.