Agree with all of it. I used to do the same, directly jump to code without knowing what to do. Making a simple to-do of the smaller chunk is such an obvious but effective strategy.
I would like to add one more thing to this. If the current chunk of the problem gets too difficult to solve, take a walk. Take a break for some time and start fresh.
Also, explain the problem by saying it out loud or writing down. The rubber duck approach has helped me see the issue countless times. 🐥