When I was doing programming competitions, the most valuable advice I was given was to print out the problem set and then walk away from the computer for the first hour of the competition. This skill was even more important for the four-people-one-computer challenges, where you have to be able to design, implement, test, and debug your code without the crutch of a computer to be productive.
This advice I consider to be the most valuable programming advice I have ever received.
Code can be a distraction from the process of coding. It is way too easy to got lost in the minutiae of how things are to be implemented and delude yourself into believing you are making progress when you don't know what you are doing. The saga of the Sudoku solver [1] is a pretty well-known example: the coder in question spent an awful lot of time redesigning the implementation of the game board because he didn't know how to actually solve anything, and yet changing the implementation looks like progress without making any steps on the actual problem.
This advice I consider to be the most valuable programming advice I have ever received.
Code can be a distraction from the process of coding. It is way too easy to got lost in the minutiae of how things are to be implemented and delude yourself into believing you are making progress when you don't know what you are doing. The saga of the Sudoku solver [1] is a pretty well-known example: the coder in question spent an awful lot of time redesigning the implementation of the game board because he didn't know how to actually solve anything, and yet changing the implementation looks like progress without making any steps on the actual problem.
[1] See http://ravimohan.blogspot.com/2007/04/learning-from-sudoku-s... for mention of it.