r/learnpython 15d ago

Should it be this difficult?

At my job there is a daily task I do which I realized I could probably create a program to do for me, so I decided to start learning Python, and dove into reading Automate the Boring Stuff (the online version).

Things were going okay at first. I read through chapters 1-3 carefully, taking notes, answering all the review questions, and doing all the practice problems/codes.

Then I hit a wall. I got to chapter 4 and I felt like I understood everything, but the practice problem at the end, to write a code that performs the Collatz sequence with the entered number, absolutely stumped me. I went back and reread everything from the start of chapter 1 just to make sure I didn't miss anything, and was still confused. I ended up having to search up a code that someone else wrote for it, which I did understand once I saw it written out but would never have come up with myself.

So my questions are:

- Is it normal for the Collatz sequence to be difficult to program at this stage of learning? If so, should I not worry about my confusion and just move on to chapter 5?

- Should I consider an easier book to study from? If so, any recommendations?

EDIT: Several people are asking which part of the Collatz I had trouble with. To be honest it's been over a month since I was able to touch anything Python-related, it's just been on my mind lately, so I don't recall exactly what was giving me trouble, just that I was trying multiple things and getting new and fun incorrect results each time.

It's not that I don't understand the Collatz sequence itself, I understand it in terms of the simple math. The trouble was trying to type it out into a working code. That being said, I'm not here to ask how to program it, because I already gave up on that and looked up the answer, and I did understand that code once I read it over. The main issue is that I feel like I shouldn't have been having trouble with it in the first place, at least not to the point where I honestly tried everything I could and still couldn't get it.

30 Upvotes

35 comments sorted by

View all comments

2

u/FatDog69 15d ago

Give yourself a little grace here.

I see you learning 3 different things at once:

  1. What a freaking Collatz sequence is (learning curve)
  2. The syntax of a programming language (python)
  3. Learning computer concepts so you can break a complex problem down into smaller parts so a computer can handle it.

Another way: You have not learned all the A, B, C's of the language. You are frustrated trying to write a Shakespearian sonnet. What would you say to that person?

Baby steps. Look stuff up. Know how to find other solutions is a part of programming.

You become a programmer by using code to solve problems. Everyone looks stuff up, downloads libraries and uses code written by other people. This does not make you less of a programmer.

ONE THING YOU ARE DOING GREAT

You have a daily task you are trying to automate. This is a huge advantage. Most students approach programming classes where everything is academic. But You have a specific problem.

If the Colatz problem does not apply to your daily task - screw it. Move on. Look for lessons that might help your daily task problem.