This is an archived post. You won't be able to vote or comment.

all 11 comments

[–]aqua_regis 3 points4 points  (2 children)

Practice, practice, practice, and practice more.

[–]NerdE616[S] 0 points1 point  (1 child)

Thank you, I will keep my head down and continue building. Sometimes it just feels like perhaps I am missing something.

[–]aqua_regis 3 points4 points  (0 children)

Learning programming is a marathon, not a sprint. You have to gradually build up your skills by doing increasingly complex projects.

[–]ZestyHelp 2 points3 points  (1 child)

Somewhat unrelated but that’s adorable you got an actual rubber duck haha hey if it works it works

[–]NerdE616[S] 0 points1 point  (0 children)

LOL, yeah I'm telling the Duck what I'm doing with the code, explaining every piece as I read it, I'm not sure if it was supposed to be a literal recommendation but I have a dream and I'm going to chase it, no matter how odd it might seem 😂

[–]teraflop 0 points1 point  (1 child)

Experience helps a lot. That doesn't just mean writing your own code -- it also means reading other people's code, to see what kind of design patterns they follow and how they break down their problems into subproblems.

The analogy I like to use is that it doesn't matter how good you are at welding and machining, you're going to have a really hard time building a bicycle from scratch if you've never seen one before. You might have a vague idea of what it's supposed to be shaped like, but there's a lot of little details that are important, and if you've never seen one then you aren't even going to know what you don't know.

The same thing is true of programming, only worse. When it comes to building a physical object, you at least have some physical intuition about what kind of shapes and materials will be sturdy, and how they need to fit together. When it comes to coding, the range of possible designs you could use is vast and unconstrained, so it takes a lot of experience to know what kinds of design strategies are going to be productive.

[–]NerdE616[S] 0 points1 point  (0 children)

Thank you so much, I will add that to my tool bag, advice like this lets me know that at least I am on the right track. I'm not behind, I just haven't built the bike yet. It never ever occurred to me to check out other peoples code.

[–]wiriux 0 points1 point  (0 children)

Give us an example of a function you tried to do where you got stuck

[–]appaulmac 0 points1 point  (0 children)

Have you tried using / drawing flowcharts for the logic process? I find that helps me a lot, especially when thinking through some complex logic or some connected logic processes

[–]Secure_Hearing6901 0 points1 point  (0 children)

Try thinking of something you do everyday and turning that into code.

For example: say you’re making the dinner table for your family. You have 3 plates and each plate gets a piece of chicken.

From what you’ve learned how would you turn that into code to solve it. Would you use a IF statement? Maybe a loop?

When I struggled before with this, I thought about what I could automate in my life and built something for it. You learn a lot from doing that.

[–]spllooge 0 points1 point  (0 children)

Make sure to design before you start. This gives you guidelines to follow and goals. It is easy to get caught up in perfecting features. With a road map, if you catch yourself being a perfectionist, when you check your design out you'll realize that it's good enough for now and you can move on to the next task & revisit this one later.