The job of a programmer is to think and then implement a solution.
It is better to not write for an hour when you don’t have your thoughts organized in your mind than to write for hours and then spend all week trying to fix and fiddle with it.
When starting initially students are thought to write down the algorithm, make flowcharts, etc. and it is understandable that as you get more experience programming you may want to skip that.
Especially if the problem is something you have already worked on.
But don’t implement something without giving it thought. Take time to get your thoughts organized. You are not sitting in an exam.
Why time-tracking is counter-productive?
The reason I say time-tracking is counter-productive is:
- Somedays you realize you have written a bunch of code and it works but works like crap but you cannot do better.
- Then the next day you come back to it… it’s still ugly.
- Some days later you realize that the work you have been doing for the past several days is already done in an Open Source Module.
- And you discard whatever you had coded up to that point and start from scratch again.
Programming requires a lot of “research” and thinking. Things that can be done (can be done better) away from a screen.