This presentation by Jonathan Blow is gold: Programming Aesthetics learned from making independent games.
His premise: Game programmers (especially those working independently or on small projects) have to be at least ten times more productive than the average programmer: They have to write more code, better code, and do a whole bunch of stuff on the side, too. How do you become ten times more productive?
His answer: Don’t be fancy. More precisely, “Impulses to optimize are usually premature.” That means staying away from special algorithms, advanced data structures, and one-use functions until you actually need them. The code may be poor from an academic point of view, but it will work reliably, be maintainable, and take less time to write.
Jon’s definition of a good game programmer:
- Gets things done quickly.
- Gets things done robustly.
- Makes things simple.
- Finishes what he/she writes.
- Has a broad knowledge of advanced techniques, but applies them only when necessary.
I’m curious to see how this idea plays out as I get into school.