As complete programming newbie, this book was a huge source of frustration and hair loss for me. However, having gone through the book, I can actually use Python, and have knowledge to build on. So, while I hated the book with a passion, it did kind of do its job.
Some of the problems with this book:
End-of-chapter exercises often involve things like solving multi-variate calculus, resulting in hours of research just trying to figure out the components of the problem. It felt like Downey was trying to scare off less mathy folks like me. After spending upwards of 10 hours a week on these exercises, I gave up on them, and just did the less involved mid-chapter exercises.
It's often unclear when Downey is building on a previous example in the chapter, as he rarely makes it explicit. On multiple occasions, my code matched his, but failed because I didn't realize he was adding to an earlier function. This resulted in more hours of anger and tears.
Finally, I still haven't fully wrapped my head around object-oriented programming, or why you'd bother with it. I suppose I know it's there, anyhow, and can draw from it later.
In sum, this book was a battle, but I made it, through sheer belligerence. I'm relieved that it's over, and that I'm now solving more relevant problems with Python.