Another excellent article from Paul Graham, this time on holding a program in one's head ( http://www.paulgraham.com/head.html )
This is definitely a trait I've noticed in good programmers, they keep a problem and the code in their head. The more you can stuff in your head the better off you are. The higher the liklihood you will understand the consequences of changes, etc
Paul gives a number of points to help with keeping things in your head....
I think this is really important. The consequence of this is, if you start doing something else when you get a break in your flow ( a long build ) such as IM / Web / Email it will start blanking out the problem / program that's in your head.
This can be a problem with pair programming at times also, sometimes the pairing can interfere with getting a problem / program into both your heads. If two people get into the same headsapce however, it can be really powerful.
Use succinct languages
succinct language and code! Building up good abstractions is very useful, if you you have good abstractions it can be very easy to express a soloution to a problem in minimal amount of code.
Having a language where you don't have to write a lot of crap to express an idea is of course very useful as well, but often the choice of language is not an option.
though I'll plug Lua once again for any C/C++ programmers out there