I’ve been reading game programmer job postings this week. Here are some key phrases:
- "Expert C++ programmer required"
- "Must work well in a team environment"
- "BS in computer science or related degree"
- "Excellent communication skills"
This matches what I wrote about last time, but it’s not really specific to game programming at all, nor does it help define the difference between a great game programmer and just a good game programmer.
I’ve worked with dozens of game developers in my career. Here are my observations about the great game programmers:
- They get the big picture. They understand the needs of artists, composers, game designers and game players. They can see the forest for the trees.
- They get the details. They understand the performance implications of their programming language and hardware. They have deep technical expertise and ability in things that matter for games: graphics, audio, networking, AI, physics and so on.
- They have an interesting and vibrant life outside of work. I’ve known perfectly fine game programmers with no life outside of work. All the great ones embrace life. It doesn’t matter whether they ride unicycles, play jazz, write books, or go kite surfing. The important thing is that they have balance in their work and play.
- They know where and how to find the answers to hard questions. They don’t spin their wheels when they get stuck. They ask questions. They connect with other experts. They consult books. They stay up to date technically.
- They have a ship mentality. They meet deadlines. They’re willing to make tough tradeoffs. Good programmers work on games. Great programmers ship games.