Interview: Yahn Bernier - Valve

The structure of Valve makes it a bit difficult to find people boxed into a specific area (e.g. lead programmer, web-developer ), as they are well known for basically being able to, at any time work on what they feel is the most appropriate use of their time. Yahn Bernier is listed on Valve’s homepage with the following bio:

“Yahn was an Atlanta patent lawyer with a degree in chemistry from Harvard. So obviously he ended up in Seattle developing computer games. He taught himself to program at the age of 12 and has worked on the systems code and tools for most of Valve’s titles. Yahn’s proudest moment was when he was able to edit the text of this paragraph, after leaving it unchanged for more than a decade.”

I decided to ask mr Bernier a few questions on how to best spend your time when trying to gain some mastery of programming, and he was kind enough to reply!

What are the biggest mistakes novices do when programming?

Prematurely optimizing code, writing overly complex/long procedures without thinking through architecture, exposing low level details to high level APIs, not stepping through every line of new code in a debugger to ensure it’s doing what you thought you wrote it to do. etc. etc.

Even at the professional level, what mistakes are most common?

Writing overly complex code still occurs in production environments.

If you were to train someone like me, (who has a rudimentary programming knowledge) for making a game for ludum-dare due in 4 weeks and had a million dollars on the line, what areas of programming/concepts would you have me focus on, what languages?

Language isn’t as important is your expertise in the development environment, your debugging ability, etc.

If I was to focus on professional game-development in teams, how would the answers those questions change?

They’d be the same.

Are there any communities which greatly benefitted your learning-process ? (Online or offline)

Working in a group of programmers who are better than you (!) and getting feedback is the best thing I’ve done.

If you with your great experience might have any other wisdom to bestow upon me, what else do you think is/was integral to your learning programming (and I assume continuing to do so).

You have to fundamentally have a love for coding — but you probably already have that based on your questions.

Best of luck!

Yahn

Written on March 9, 2013