If there's one thing that I always keep in my mind when I program is KISS. No, I am not talking about kissing my beautiful wife. I am talking about
Keep It Simple Stupid.
If you find yourself writing code that looks really cool and sounds awesome when you tell your friends about it... and then, when you try to debug it a couple of weeks later, it takes you ~ an hour to figure out what the hack you were doing there.... Well, that means that you were doing something wrong. To my opinion, one of the important things that a good programmer must have is the ability to write simple code. It may not look very cool, or it might be 1-2 lines longer. But when a co-programmer will have to debug your code, they will not have a puzzled and confused look on their face :)