At work I structure my days by doing the difficult coding problems at the start of the day and then doing progressively easier things or stuff I know by rote.
Ideally I'd be updating documentation, running some tests, organizing a project at the end of the day. Although it rarely goes like this ofcourse.
If I run into a nasty problem when I'm way past my daily mental peak and there is time I'll just wait for the next morning. Experience has shown that nine times out of ten I see the solution the next morning so I won't be wasting time on it.
Ideally I'd be updating documentation, running some tests, organizing a project at the end of the day. Although it rarely goes like this ofcourse.
If I run into a nasty problem when I'm way past my daily mental peak and there is time I'll just wait for the next morning. Experience has shown that nine times out of ten I see the solution the next morning so I won't be wasting time on it.