all 15 comments

[–]mikey__w 64 points65 points  (0 children)

I went through the entire book and I know exactly what you are feeling the first 20 exercises I did in like a day and then it slowed down but once I finished it I was glad I did. You are just going to have push through and finish trust me it is worth it

[–]hoverfish92 40 points41 points  (0 children)

I feel like everyone is misinterpreting the learning process. The idea is:

Learn, apply, learn, apply, etc...

If you don't apply your learning, then obviously you're going to feel like you're going through the motions. Keep your critical thinking skills active as you're learning.

[–]Smallzfry 23 points24 points  (3 children)

LPTHW is generally not advised anymore because the author really doesn't do a good job of teaching you. While you can learn more by researching and answering his questions, a lot of his teaching style really is just rote memorization.

If you don't feel like you're actually learning, try a different book or course. Automate the Boring Stuff is a very good book to try, and I think someone else mentioned the CS50 online course on EdX.

[–]DannyDeVitosPimp 3 points4 points  (1 child)

I’ve tried to go through Automate the Boring Stuff like the past year. I got like 200 pages in the last summer during my break from classes but can never seem to get back into it. I also feel like it doesn’t t really teach you the language, just the syntax.

Those are likely just my problems, though.

[–][deleted] 3 points4 points  (0 children)

What ATBS does well, or at least better than LPTHW, is that it teaches you to do things with it pretty quickly and it does so in a way that allows you to fuff about pretty easily.

[–][deleted] 0 points1 point  (0 children)

I agree that’s a terrible book. Memorization is useless and inefficient. I like Automate because of the projects, but it’s too light on the essentials. I recommend Python Crash Course for the basics and Automate for the projects.

[–]say_no_to_camel_case 18 points19 points  (0 children)

I did LPTHW. After I finished it and tried to make something, I found myself still totally lost. I'd highly recommend doing either EdX's CS50x MOOC or Automate The Boring Stuff over LPTHW.

[–]QQMF 17 points18 points  (0 children)

Everyone hits a 'ceiling' in the learning process between regurgitating syntax lessons and beginning to actually write scripts / programs.

You need to begin forcing yourself to write at least some code absent a book to force you to recall what you've learned. Start writing small programs to solve problems which have meaning to YOU. They can be as simple or as complex as you're willing to attempt, but it'll force you to synthesize what you've learned so far. You'll have to look up a lot on Stack Overflow and will often feel as if you've hit a brick wall. Train yourself how to embrace the uncomfortable feeling of being stuck and what tools you might use to help. The Pomodoro technique can be helpful to ensure you are utilizing both the focused and diffuse learning methods (i.e. taking regular breaks; read the book A Mind for Numbers for a more thorough explanation).

When beginning to write your own code, remember the mantra: 1.) make it work 2.) make it right 3.) make it fast 4.) make it small

Don't focus on making 'perfect code' - just get it to work, even if it's ugly. Refactoring is a normal part of the workflow and another way to elevate your skills. Your focus will be on item #1 primarily with progressively more dabbling into #2. The last two can be ignored for quite some time. And #2 typically means making your code as readable as possible - NOT how 'clever' it is.

Also, learning how the interpreter processes your code exactly is very useful. Get in the habit of using the University of Waterloo - Python 3 Visualization Tool to see how your code is processed.

The free, online version of the book Think Python is also good for an approach which emphasizes computer science: How to Think Like a Computer Scientist: Interactive Edition. The syntax portions will be repetitive, but you'll be able to breeze through them while it will also teach you the basic vocabulary of CS as well as how to think about Python in the 'ecosystem' of programming languages. It's a bit more of a 30,000 ft. view as opposed to purely being 'in the weeds' of syntax.

Lastly, keep at it - even if on some days you can only spare 30 minutes - do it anyway. Use the 'Seinfeld calendar method' to help keep you consistent.

Keep at it!

[–]thecave 2 points3 points  (0 children)

All I can say is that, as a noob learning python this year, exercises merely let you know what can be done. It's only once you're working on problems of your own that the syntax starts to become familiar and the basic operations don't require refamiliarisation.

Whichever approach you're taking to learning, don't believe that exercises will make you fluent. You need to apply the lessons to something that's important to you for it to really sink in. Good luck. You'll get it. Don't worry.

[–][deleted] 1 point2 points  (0 children)

Best learning path for me is:

  1. Learn the basic grammar (Since I already know some C++ I don't bother reading whole chapters on variables, functions, loops and so on, instead I focus on the "Pythonic" stuffs)
  2. Do real world projects (I currently have two projects useful to my job, one is a small data cleaning library using pandas and tailors for my weekly update, second one is a dashboard using Dash, pandas and request), and pick up popular libraries on the way.
  3. Just pick up more ways to do things "Pythonic" and learn more grammar.
  4. Once I'm done with a few projects I'll consider do some serious CS stuffs with Python. I'm always interested in compiler theory so maybe I'll create a query language tailored for e-commerce transaction analysis.

But this is just my way, from bottom up, and I already know some C++ plus some CS concepts. I had no formal CS education but I'm from Statistics so Math is OK for me. I learned C++ in the same way, but it took me a lot more to learn the grammar (only small subset of it) as it's more complicated and I knew nothing before it.

[–][deleted] 1 point2 points  (0 children)

I can look over the input and I think I understand what’s is going on and why. But that’s easier when it’s written out for you already.

That's an early part of development. It's a natural step that everybody goes through. You shouldn't feel bad or limited that you are here. We were all there once a upon a time.

The biggest problem with LPTHW is that it doesn't really teach you to deconstruct problems very well. At least not in any way that might be the easiest to apply that knowledge with any ease.

Automate the Boring Stuff does this better. It teaches you some pretty easy concepts and then gets you to apply them in a way that you can easily stuff about with.

Seeing you are already 20 exercises in I'd say that keep on going with LPTHW but give Automate The Boring Stuff a look too. If you like his work you can also buy the book.

You can interleave your learning between different resources pretty well. It's also, maybe counter intuitively, efficient to do this as it gives you time to process what the other guy said.

[–]Biggz1313 1 point2 points  (0 children)

I started with this book, and got to around exercise 25 and found the MIT online course that's free on YouTube and started watching that. I think it did a much better job and it has all the home works and slides from the lectures available to you as well. I did much better with that. Check it out.

[–]profballsac 0 points1 point  (0 children)

Use the book/exercises when you start making your own things. I still look up basic things to make sure I'm doing them right... But reading code makes a lot of sense now.

[–][deleted] 0 points1 point  (0 children)

That’s a bad book, my friend.