For this post, however, I thought I'd write about my recent experiences in the industry.
I know a lot of people on this site work professionally for game developers, but I figure another viewpoint won't hurt. Specifically, I've just recently landed myself an internship for the summer which will hopefully greatly increase my chances of getting a real job when I graduate in 2 years time, so I'm going to talk about both getting the internship, and about the internship itself.
To briefly explain the background, about 2 years ago or so I was involved in writing a chapter for More OpenGL Game Programming with a bunch of people from this site and others. That was basically the first thing I did that I could really put on my CV (resume) that separated me from any other hobbyist programmer.
I had been making demos and games and simply playing around learning anything I could get my hands on for years previous, but that was my first real solid experience. I obviously don't know how much difference it made to the companies I applied to (more on that in a bit), but I think that any experience or things you can put down that are more than just 'I write games for a hobby' is a Good Thing(TM).
So then things went on, and I started university, and over the course of my first year I was offered on the basis of my grades an internship at IBM here in Scotland. Since I had no plans at the time for the summer, and I was grateful for any experience I could get, I accepted and worked there over the summer.
I could write a whole other entry on my time at IBM - maybe I will if anyone's interested - but I spent most of the time doing some fairly low level systems programming, working on an internal tool that was used in all sorts of places and one package, which gathered all the possible information you could want about a computer's hardware and software - and then some. It also gave me a good idea of how hobby programming differed from real program.
It differs a lot.
I saw some really ugly code, some hacks and some code which seemed to work inexplicably. It all worked though, and overall it really wasn't that bad - it had been rewritten a couple of times over its years-long lifespan as the requirements had changed, and had a fairly flexible core. However as time pressure and deadlines loomed, sacrifices were made and dodgy code was written.
So when it came around to the next summer, I knew that IBM would be happy to give me another summer job but I wanted to apply to some game developers here in Scotland. I didn't seriously expect a job, since I was coming in without a degree or any experience, and none of the companies were even advertising summer jobs.
I cranked out a game using the engine I have, put it up with my portfolio and sent off my CV to companies I thought might take me on (I didn't email Rockstar [wink]).
I got a couple of polite replies saying they would keep my details on file, but I simply took that to mean "sorry, we don't hire people for the summer". Frankly, that was more than I expected, and I wasn't surprised that most of the companies never replied.
Happy with the result, I figured I'd just apply again perhaps next year when I have more experience. I contacted IBM and they sent me out a contract.
The very day I received the contract - indeed only a couple of hours before I would have signed and sent it away - I received an email from one of the companies asking me to come in for an interview. It caught me off guard, but it was most certainly a pleasant surprise. I arranged an interview for a couple of days hence, and began to prepare myself.
I wasn't exactly sure what to expect, but I'm not sure it fulfilled any of my expectations. I didn't really get asked any direct questions, I just talked to two people. We briefly discussed some of the stuff on my CV, and they remarked that they liked my portfolio, but nothing too specific was talked about. It pretty much resembled the kinds of conversations 3 developers have together - talking about ideas for games, interests, as well as the projects that they had going on.
They also gave me a brief coding test, but it was pretty half-hearted. They had me spot a couple of basic bugs, e.g. one to do with dodgy macro usage:
#define SQUARE(x) x*x
float foo = SQUARE(1+1);
and they asked about simple concepts like pass-by-reference and const correctness. Nothing too stressful.
I'm not sure if it was because I asked to know quickly whether or not I got the job, or if they liked me, but by the time I got home after the interview I had an email waiting with the job offer.
Tomorrow or something I'll write up about the work I'm doing. The project is a kid/family oriented game for the PS2, which is due out sometime next spring. I'm not sure how much detail I can go into because I'm under an NDA, but I can probably say a fair amount without being a problem.