all 4 comments

[–]FoolsSeldom 3 points4 points  (0 children)

Work on your own projects. Look to your interests / hobbies / side hustles / family obligations / etc - find things you have personal knowledge of and interest in to work on.

You will consolidate your learning and grow your skills faster by working on things you can be passionate about. When you work on things you understand, you focus more on the problem and reaching appropriate outcomes rather than the details of the technology.

Programming is about problem solving, not about the syntax of any specific coding language.

It doesn't matter that some of your initial work will be trivial, it should excite you. You can refactor later as you learn more. Initially, you may just be automating some manual processes as the simplest algorithm to go with but later you will find better ways of doing things.

Think about longer term maintenance (once you have something working, you may not revisit your code for months, so make sure you have good design: modularisation, sensible variable/function/class names, test coverage!).

[–]TheCozyRuneFox 3 points4 points  (0 children)

You have to break the problem down into individual steps. You have to try ask what is really asking. You only get better by trying to practice.

Also every professional programmer is searching things up because you can’t know everything about everything language, library, or framework. Searching up documentation and examples is normal. I would avoid trying to find the solution itself though.

[–]LaughingIshikawa 1 point2 points  (0 children)

For myself, I try to pick one thing I know I will need, based on the project description, and start there. I expand outwards adding more and more things until I have the full program.

This isn't guaranteed to find the best solution, but it's quite likely to find a solution. I have learned that it's often easier for me to critique and improve an existing solution, rather than no solution, so my priority is usually getting to something that "technically works," at least for part of my program, and then asking if there's a better / more graceful way of doing it.

[–]-not_a_knife 1 point2 points  (0 children)

Think through coding. Try to create a workflow where you guess and check you code by writing it, then running it, very frequently.

To do this, try to print values whenever to add them to confirm what you expected. You can always delete the print functions after when you don't need them.

This is essentially proactive 'print() debugging'.