Jonathan Blow, perhaps best known for making Braid, gives an interesting talk on programming.http://the-witness.net/news/?p=1004
To me, an inexperienced programmer, the things he said generally make a lot of sense but I hadn't realized them before. I think these things can be applied to programming in general and not just to making games.
A few interesting points he makes:
- Optimization is usually bad.
- Using the right data structure(s) is about optimization, therefore it is usually bad.
- One parameter/metric which people generally forget to take into consideration when thinking of optimization is the limited resource known as time. i.e. minimizing the amount of your life you spend implementing a feature or working on a project is more important than saving a few CPU cycles.