I got really interested in programming games after I read Diane Grubers book a few
years back. I'm currenly undergoing traning at a software institute. I would like to
be a professional game programmer but have no experience. I'm writing a 2D side scroller
demo with DirectX. Should I post this demo to prospective employers? How do i land me a job?

There is no single answer to this question. If you ask 100 industry veterans,
you'll probably get 103 different opinions on the topic. So after you've read my
opinion, hunt down a few more opinions on the net from other industry veterans.

First and foremost, you need a clear understanding of your goals. What
exactly do you want to do? This should always include a good amount of
research. If you simply answered, "Dude! I want to make games that rox0r!" then
stop reading right now; you need to mature before you'll be able to deal with
the responsibilities and challenges that are required for any job, let alone
game development.

Still here? Good. Next question, do your goals match your talents? If your goal
is 3D engine design and programming but your talents are in physics, then you'll
need to refine your goals to include a few intermediate stages that lead up to
your final goal. This leads us nicely to our final question...

Are your goals realistic? This can be taken a few different ways, so I want to
be very clear about what I mean by this question. I do not mean, "Can you ever
hope to achieve your goal?" On the contrary, if you set a goal that you know you
can achieve then it's quite simply a bad goal. You should choose goals
that you consider impossible; they force you to excel and improve more than you
expect. This question was meant to ask if what you think you want to do
is really what you want to do.

For example, if you choose to go after 3D engine work, do you have any idea how
lonely that job is? You may be working on an engine in your spare time now, but
when it's your job things are a lot different. You can't simply take a few days
off because you want a break – just as you expect your paycheck, your employer
will expect you to produce. Notice that I used the word "produce" not "work".
You may pour your heart into your work, but that's not good enough. To an
employer, that's not what matters. What matters is when your work actually
produces something. This is the primary difference between coding for fun and
coding for a profession. So, are you prepared to pour your life's blood into
something and have it end up being "not good enough" at the end of the day? A
lot of engine coders are revered for their work. In reality, I think you'll find
that the challenges of the actual code are dwarfed by the indirect challenges
that come with the job.

In a recent telephone conversation with Billy Zelsnack he was telling me about
his new approach to coding. His reasoning behind the new approach stems from not
wanting to do the "100-hour work weeks" any more. He, too, touched on the topic
of loneliness when he mentioned features that he's worked on that "only six
people in the whole world would ever see."

Even if you didn't choose 3D engine work as your goal, most of these situations
will still apply to you.

Before I completely turn you off from trying to find work in the game industry,
you should also know that there is a balance. All the things you thought would
be cool about the work that ended up being the opposite are balanced with those
things that really are cool that you never knew about. I remember one day I was
working on a particularly hairy piece of code and outside the door to my office
was an executive of the company rolling around on the ground, wrestling with a
blow-up dinosaur. I remember the birthday-party cookouts on the company's gas
grill where one of the producers, "Joeske", was practicing his master ability at
cooking hamburgers. I also remember the excited shouts from people across the
office as they all got together after hours and play-tested the games they were
creating. I remember a lot of great things, and hope to create more of those
memories.

I hope at this point you'll have some idea of what you really want to do, and
have at least an inclination of what to expect realistically from a job in the
game industry. So how do you actually land that job? Well... that's the easy part.
Well, at least it's easy to explain. :-)

If you're still reading, then you've probably got the desire. What you need is
not the desire, but rather the aggression. I don't mean showing up at an
interview with guns-a-blazin' demanding a job. I'm talking about targeting a
specific position at a company (or set of companies) and going after that job –
calling them up and scheduling an interview. Notice how I specifically did not
mention asking for a job. I call this "polite aggression."

You want to hear a good story about aggression? I was reading an article about a
company that had the best sales force of any other company in the world. The man
in charge tells his secretary to tell the candidates that they're not interested
in hiring them. If they call back, she's supposed to tell the candidates (again)
that the company is not interested. If they call back a third time, they get an
interview which is a whole different story involving the president of the
company standing over the potential employee pounding questions at them. If they
survive this process (and very few will) then the company knows that they've got
the most aggressive employees working for the good of the company. Any company
would want this, so keep this in mind.

Before you grab for that phone to schedule that interview, you had better have a
good reason for them to hire you. Think about it. If you don't have a good
reason for them to hire you, you're only wasting their time and yours. What's a
good reason? Well, that depends on what position you're trying to get, but there
is a one-size-fits-all answer to this: you need to impress the person you're
interviewing with. For example, if you're hiring into a simulation-based company
and you're trying to get a job doing physics work, you'll probably be
interviewed by a project manager or producer that is used to seeing impressive
physics work. You had better have a demo or a portfolio that impresses your
interviewer. An easier way to think about it would be to consider somebody in
the same position you're trying to get. Would your work impress them? If so, go
for it!

Is a demo or a portfolio that important? Personally, I wouldn't try getting a
job without one.

Hopefully, this makes perfect sense to you so far, but there's a little more to
it. You also have to survive the interview process. For some companies this is
as simple as showing up, showing them your demo, meeting the team members (to
make sure they like you – very important because you'll be spending a lot of
time with them) and talking about your background and theirs (remember, you are
interviewing them, too!) Other companies have an interview process that spans
multiple days, meeting with multiple project leads and meeting none of your
future team members. So when you call to schedule that interview, don't be
afraid to ask them to describe their interview process.

I remember my interview at Terminal Reality some four years ago. It included a
few hours of the president (and resident 3D guru) pounding me with 3D questions,
including a few trick questions. The ones I didn't know I simply said I didn't
know, but I also asked what the right answer was (I was sincere in wanting to
learn.) As a result, I even learned a few things during the interview. But so
did he, he'd never heard of second-order Gouraud (I was struggling to find
something to impress him with. :-)

There are two huge mistakes that interviewees often make (I should know, I've
hired many people from various companies.) The worst one is confusing confidence
with arrogance. Confidence is good but arrogance is not. The other common
mistake is they forget that they're also interviewing the company. They forget
that the interview is a two-way street and let the interviewer control the
interview (some interviewers do this on purpose!) Don't be afraid to ask your
questions, too. You should have plenty of them. If they don't introduce you to
the team members, you might them to. How about a tour of the facility? What's
the typical work schedule? What about crunch times – how long have they
historically lasted? What kind of design structure do their projects work under?
Is there even a design document? What's the future direction of the company? How
much does the job pay, and what are the benefits? (Yes, you have the right to
know!) Are there bonuses? If so, how are the bonuses distributed? And before you
leave the interview, always setup the next contact time. Often times,
they won't know when a decision will be made, so you might consider saying
something like, "If I don't hear from you by the end of next week, I'll give you
a call, OK?" And every time you make contact, setup the next contact time in a
similar way – this goes a long way to show your polite aggression.

If I had to sum up the essence of the interview, I would describe it much like a
conversation between two colleagues on the subway going to work. Two people
simply discussing their work on equal levels. They're not putting up a front to
impress one another; they're just discussing their work.

Response provided by Paul Nettle

This article was originally an entry in flipCode's Ask Midnight, a Question and Answer column with Paul Nettle that's no longer active.