I am still a big believer in throwing away code after 4pm (or whatever time of day you stop being productive).

But taking a stab at a hairy problem, throwing it all away, and then trying again the next day (or trying something twice) can work wonders when faced with sticky problems.

For one you are under no pressure.
It’s the end of the day—you are going to throw it away anyways.
No big deal.

Also you are guaranteed to learn something.
You may not solve it, but you’ll know where the traps are for the following morning.

So the next time you reach the end of the day and are considering surfing the web or checking your blog for the umpteenth time.
Take a swing at that hairy problem instead.

It’ll be easier to solve the next day.
And it may not be as bad as you think.