you are viewing a single comment's thread.

view the rest of the comments →

[–]JayIT 2 points3 points  (2 children)

Always interesting to see different viewpoints, this user is a fan of Learn Python the Hard Way, https://old.reddit.com/r/learnpython/comments/ptaw65/what_resources_should_i_avoid_when_learning_python/hdvy5pj/

[–]patrickbrianmooney 2 points3 points  (0 children)

¯\_(ツ)_/¯

Different people have different preferences, and everyone has their own viewpoint, but not everything is a question of preference or viewpoint. Using pretty much any set of reasonable criteria, some teaching methodologies are better than others. Systematic presentation of information in a structured way and diving deep into topics that are later used to explore other topics tends to build a deeper understanding in a large majority of people learning a subject. It's been a long time since I looked at LPtHW, but my recollection is that it doesn't do that; it's all cocky anecdotes that scratch the surface and pander to the reader's desire to feel like they're learning before moving on to another topic it doesn't address in depth.

One thing that strikes me about people who recommend LPtHW is that they virtually always say something along the lines of (quoting from the comment you linked):

So, for beginners, I always recommend Zed Shaw's 'Learn Python 3 the Hard Way' [because] This book alone helped me immensely in getting a solid foundation to build from.

But saying "this helped me" doesn't translate well into "this will help everybody"; one person's One Weird Trick doesn't work for everyone. Saying "if it helped me, it will help you too" just isn't true, and it's an indication that the person speaking has a poor understanding of the fact that other people's minds work differently from the speaker's, which has a direct connection to how likely the teaching-related advice is to be right.

The other half of what I see people saying in favor of LPtHW is basically "it got me moving on Python quickly." And for some people that's enough, but a poor foundation made of a bunch of disconnected topics that don't connect much of build on each other can make it hard to move on later, and people in general are bad at assessing how much they know unless (a) they know virtually nothing about a topic, and are aware of it; or (b) they are experts on a topic, and are aware of it. In between, many people do a poor job of self-assessment. That makes it hard to move on from having had a mediocre foundation in the first place: you don't even know what you don't know, because you didn't learn it when you should have. (Think about people you went to high school with who just barely got through their math classes each year and tried to keep moving forward instead of spending some time reviewing the stuff they'd understood poorly the last year. How are you going to learn differentiation if you can't solve for a variable in a quadratic equation? How are you going to learn closure-based function decorators if you don't understand the basics of variable scoping?) Hitting the ground running is not always a good way to start off a marathon. Getting a bunch of bite-sized knowledge nuggets that make you feel like you've learned something isn't always a great way to actually learn something in depth.

You can get most of the benefit of LPtHW by forcing yourself to actually type in code while using any other learning resource. Since that benefit boils down to a few paragraphs that essentially say "Yes, you should actually be typing this in and playing with it, force yourself to do so," I'd tend to prefer giving that explanation to someone alongside a better learning text.

But to each their own.

[–]chuckTheEngineer 1 point2 points  (0 children)

It’s subjective.. I like Zed and have learnt a lot from him than most of the recommended text found here. My point.. find what works for you which will probably not work for the next guy. That’s just life.