Help! I've got an interview with a local games co.

In my company, there is no dress code - people run around in short trousers, sandals on bare feet, etc. But still, where there is interview with a new person, people who talk with candidates have suits - sometimes only waistcoat instead of coat if it is very hot, but still elegant.

This is not as much about a dress code, it is about showing that you care about other person/job. I would not risk going to any job interview in anything totally casual - but probably nice shirt/jacket/non-jeans trousers is enough in most cases here.

Of course, in case you will get hired, please ask about a dress code - and ask for more money if there is such thing in company :slight_smile: I have a friend who works in bank, he has to iron new white shirt every evening before going to bed… Another 15 minutes taken from life every day…

I’ve been programming in C++ for quite a few years and professionally for a few now. Don’t mark this down as a trivial activity. There is a reason that people prefer to program in Java, you find you spend far more time in C++ worrying about language nuances than actually designing the software. The biggest hurdle is probably the C++ engineers culture tho. I’m going to write a paper on this one day, what ever the language is best at is what the engineers will focus on even tho this is the exact opposite of what they should do. Some examples:

Java Culture - everyone loves great design, however Java will tend you in the right direction anyway. Where you really need to focus is peformance.

C++ Culture - everyone loves performance. You’ll get that from C++ pretty easily, where you should be focusing is maintainability.

Visual Basic Culture - everyone wants it down quickly. You’ll get that since the whole langauge is about rapid prototyping, what you need to think about is reusability.

and finally my favorite:

Perl Culture - everyone wants to make their code unreadable, the language does that for you :slight_smile: What you should be focusing on is changing lanaguage. :wink:

Kev

I fully agree with Kev, as usual. I found using C++ not to be a pleasure, compared to Java. Add to this the lack of good (!) documentation in too many C++ areas.
Still I’d suggest you (Barfy) go for the games job, if possible. Do it a few years, even if you’ve to battle with C++. You’ll learn a lot about the complexity of game programming and also the nasty things in gaming industry, like for example the most inhuman deadlines ever, and so on. After this I’d suggest to move to a solid business with a smart language like Java. :slight_smile:

[quote]Perl Culture - everyone wants to make their code unreadable, the language does that for you :slight_smile:
[/quote]
Perl, the famous “write only” langauge. :slight_smile:

Anyway, good luck Barfy and God bless you.

[quote]Btw, I plan to pick up C++ since it’s still extremely popular in the IT industry. To all who have programmed in C/C++: Is it easy to pick up?
[/quote]
I’ve never coded in c++ professionally, but I did study it in school. I have used it a bit on my own and written one non trivial application with it (a level editor).

I’m not a c++ guru by any means. When I code in c++ I find myself coding in java-like subset ie, no enums, operator overloading, or multiple inheritance for example. Using the STL helps alot too. C/C++ coders seem to delight in using the language features to make their code as obtuse and their designs overly intricate. People talk about the ‘expressive power’ of c++. I think that’s complete garbage. Or maybe I haven’t reached that level as a programmer yet.

C++, is it easy to pickup? Depends on you. Is it easy to master? Hell no!

For application development you are spot on.

For engine development, you need all that intricate obtuse stuff.

My guess is that most of the abuse stems from intermediate programmers who wish they were gurus, or inexperienced programmers practising to try and get a hardcore engine job. I’ve met many of the latter category whose diligent obfuscation (!) attempts paid off and they landed core engine programming jobs for games companies.

However, for those of us who have to work with them beforehand, they are a liability that the producer often would like to get rid of (assuming they cannot be coerced into working better at their current job).

When I’ve been to their offices there’s been no dress code. The senior EA execs I’ve met wear smart-casual - unbuttoned polo shirt etc.

Never heard that concept before, but IMHO it’s brilliantly accurate.

I’ve witnessed the perl culture before, those buggers openly admit their evil plan to make their code unreadable (perl programmers).

[quote] For engine development, you need all that intricate obtuse stuff.
[/quote]
Really? That statement seemingly undermines your prodigeous java advocacy…

;D

Here’s how it went:

My interview with the CTO of the company went pretty well. We talked for awhile and he asked about my comments about Java and .NET taking over C++ in the games industry, and he tested me with a simple collision detection problem which I answered pretty easily.

Unfortunately, my other interview with the COO (chief operations officer) didn’t go really well. He was stressing that the game industry has horrible 80-100hr working weeks and the tightest deadlines. Then he basically said that he’s afraid to hire me because I have no professional game industry experience and that all the guys he has interviewed and hired have experience in that area.

After my formal interviews, the CTO invited me to have an informal chat with one of the programmers in the team. And we talked about the gaming industry blah blah, my BenTris game that I used as my portfolio and even a little about John Carmack and his prodiguous talent.

Altogether, I was there for close to 3hrs I think.

We’ll see if all that has paid off or not in a week and a half.

[quote]… even a little about John Carmack and his prodiguous talent.
[/quote]
Carmack isn’t all that talented. He’s good, sure. But I suspect his reputation far surpasses his real talent. Nothing he has done is particularly hard to do for a competent programmer that wanted to spend the time to do it. I mean, he isn’t actually inventing anything as far as I can tell. If you just read some papers and “do the math” you can accomplish the same stuff.

The other guys in id are probably a lot worse though :). Has anyone actually looked at the Quake source? I mean the game source that they make available for reference when you are doing mods. It’s total crap.

Enough of my off-topic banter though… too bad your interview didn’t go better, but I can understand where the COO was coming from. It’s so hard to find good people these days that I can see why they would want to see more experience in a candidate.

I think far too many people have tried to be programmers simply because they were told it would be good to get into “computers”. They have no real passion for it, and many of them don’t have the aptitude. Faced with that, I appreciate how cautious one must be when hiring.

While I can also understand where the COO is coming from with his warnings, he also made it sound as if working in gaming is absolutely horrible - full stop. Simply put, he didn’t address any perks at all (I wonder if he even knows there are perks besides “slaving like a dog and be happy doing that”).

However, I must say that I am still keenly interested in gaming and nothing can disuade me from going that way since coding + gaming is basically my inclination - it’s just what I want to do. I suspect all of you here probably know what I mean by that.

Why I said that my interview didn’t go so well was this: For all of the so-called “difficult” questions that he posed to me (like “How many times are you willing to redo a work you’ve submitted before you finally give up?”), I just answered realistically and reasonably and truthfully (ie “if it’s not satisfactory, then until it is since I’m a bit of a perfectionist myself.”). But I doubt that was the answer he was looking for. I think he was looking for a ultra-optimistic-to-the-point-of-stupidity, gung-ho-can-do-anything-and-everything-i’m-a-superman attitude… maybe to prove my determination to stay commited. Sigh.

If you keep an eye out, you’ll notice that I regularly lambast java’s complete lack of support for people attempting to write the pinnacle of re-usable code: 3rd party libraries. The whole language is geared to making it easy to write applications, and no thought was really given to libraries.

This, I think, will be the main differentiator between java and the language that consigns it to history (whatever that may be; and IMHO we haven’t seen it yet): java makes it too damn expensive to build and maintain really good OOP really usable really high-quality 3rd party libraries. In C++ there are many cases where you can reach for the STL and do some really convoluted stuff that seems stupidly difficult to maintain but … if you’ve seen the application spaghetti code that it can neatly avoid it starts to look like a bit of genius. I don’t believe that STL solves that set of problems - but it gives you a lot more of the power you need to do so yourself.

People frequently tell me (with reference to particular problems in this area) that I should just customise the JVM or etc. That completely misses the point: a language that places as much emphasis on code reusability as jav does should not force library developers to make proprietary hacks. Dropping to native code doesn’t work because you need to make in-java OOP structures that are modifiable in-java - but you need more powerful polymorphism than java lets you have.

NB: 1.5’s co-thingies and generics together go a long way to freeing up the expressive power that you need for this stuff. I’ve not seen them used on a large project yet, but I have high hopes for them…

Crikey, someone advocating the STL… I’ve used it for a fair few years now (in earnest) and frankly its crap. I wouldn’t even go as far as calling it powerful.

  1. The naming is extremely poor
  2. The understanding of object ownership isn’t communicated
  3. Large sets of useful (and commonly used) functionality is missing
  4. The syntax is unwieldy.

The really really scary thing is that in the land of C++ STL is the better option.

I’m also a bit confused here. Where would you say C++ was better for writing 3rd party libraries? The lack of commonality between C++ developers and their styles of documentation, language use and for that matter name mangling really caused me problems over and over…

Kev “bitter about having to work in C++” Glass

[quote]Here’s how it went:
Unfortunately, my other interview with the COO (chief operations officer) didn’t go really well. He was stressing that the game industry has horrible 80-100hr working weeks and the tightest deadlines. Then he basically said that he’s afraid to hire me because I have no professional game industry experience and that all the guys he has interviewed and hired have experience in that area.
[/quote]
Sounds to me (based on the scant information you’ve given us) either:

  • he was not good at hiring and recruitment
  • you have never done any serious commercial work in your life

If the latter is true (or even close to true), then forget what he said about 100 hour weeks; that is not what he really meant. What he really meant is that there is almost always (I can barely think of two exceptions out of hundreds of cases I’ve seen) a massive gulf of difference between a programmer on their first job and a programmer on their second job. The benchmark is that it takes 18 months of working in a programming job IF you are smart and hard-working to learn all the stuff about working in an office, in a team, on a commercial product, with real-life management and real-life project problems. This is the main part of why people with extensive work experience (those who took a year out of university to work in a full job in industry - not unpaid slave interns, but actual real jobs with a standard salary) are so highly valued: you know that they’ve probably learnt the majority of the stuff they need to.

I’ve tried to buck this trend myself by hiring people with no serious prior commercial experience. It was, at times, extremely stressful (and even painful) both for them and me, as I tried in the space of weeks or months to impress upon them all the lessons that they would otherwise just gradually have learnt, and to impose upon them the structures that would prevent them from getting into bad habits. I also learnt a lot of stuff about solving particular problems in people management that are usually too subtle to be easy to notice - but with first-timers it stood out like a sore thumb, and so I had plenty of practice!

I think it is probably not worth trying, usually, even if it works, simply because you have to tie up your most experienced staff for a long time just to bring a almost-useless newbie up to the speed of a “standard” programmer. That newbie may be gifted, or highly experienced in some areas already, and so you get a huge net gain - but is that enough to outweigh the productivity you lose in tieing up someone much mroe experienced?

Like so many people lament these days, “if only schools and universities actually taught to a high standard, we wouldn’t have this problem…”. It doesn’t mean you’d expect them to arrive knowing it all, just that instead of needing 18 months they could arrive needing just 4. Seriously - if I taught a uni course on C.S. I could achieve that just by spreading some stuff out over the 3 years so that by the end they really understood that 14 months worth without having to spend more than a month or two overall…

It’s maybe been discussed to death, but I will add my 2 cents regarding wearing a suit to an interview. In my opinion it’s a must. Got to do it. You might distract someone, but the worst they’ll think is “you cared enough about the interview to make an effort.”

If you don’t know the culture, or the person conducting the interview, much better to err on the side of looking good.

Then, when you get the job you can go back to shorts and sandals:)

Bill

[quote]Crikey, someone advocating the STL… I’ve used it for a fair few years now (in earnest) and frankly its crap. I wouldn’t even go as far as calling it powerful.
[/quote]
I’m not even going to dream of contesting the problems you highlighted. But together with C++'s generally low-level access to things it lets you do some tricks to subvert OOP that are extremely powerful for library developers. These are tricks worthy of a perl obfuscator, in that they pretty much make no sense to the casual reader, and they may be extremely difficult to maintain - but in java you don’t have that option, and instead of creating a small kernel of “very expensive to maintain, but you only write it once and it makes life easy in everything else you do”, you have to struggle with trying to force stuff into Java’s limited perception of what OOP means (which is a subset of what it really means) and end up creating lots of messy code just to try and work your way around the application-centric stuff that is forced upon you.

For a trivial example (which doesn’t exhibit that stuff above, but does demonstrate the application-centric view of java-the-language), look at package-protection: it is not possible to make data or methods “only accessible to my subclasses”.

From a library-development POV this is stupid. The assumption appears to be that “anyone writing a class in the same package as me is going to be working with me or actually be me, so they don’t need to be isolated from the implementation details of my class”.

At the other end of the stick, the fact that packages have no inheritance - their hierarchy is a fake - means that library developers have to put masses of classes into huge monolothic packages, because IF they attempt to subpackage things, they instantly (and irrevocably) lose access to everything in the super package that is not public.

It wasn’t planned from a library-developer’s perspective, and it shows.

PS I once got offered a job (illegally - breach of contract: they had to make the offer through the agency because I was working as a contractor), and then they told the agency they’d turned me down on the grounds that I hadn’t been wearing a suit jacket. The temperature was over 35 celsius, and I’d been carrying the jacket on my arm instead of wearing it! LOL. FYI, that was a division of Carlsberg (I never attempted to sue them, so I might as well shame them), and I think the temperature must have been affecting the brains of the interviewer…

80-100 hour work weeks aren’t normal work weeks… just normal work weeks when you are behind schedule and approaching a deadline (which is probably only most of the time, not all the time). Hopefully you can land the job, you were probably supposed to somehow convince that COO that your godly skills and effective communicatino would easily get you through the team work involved in commercial development, but it’d be hard to come up with an arguement to prove that on the spot.

I’ve never worked as a programmer in a company that primarily did programming, though I have worked as a programmer and built the entire backend of some pretty large projects, the kind of stuff that’d probably land me a job at most programming companies without too much hassle, but I’d be stuck on the same points as you, when it comes to programming I’ve always been self taught, there’s probably enough code conventions taught in college courses that I’m completely unaware of and don’t understand that someone would regret hiring me, but that’d be their problem (and I doubt it’d take more than 3 months for me to get up to speed).

I’ve been working on a project lately that I needed for a game I’m building, and I plan to post it as soon as it’s tested a bit more, the reason I mention it, is it’ll need more work than I plan to put into it, and I’ll give open sourcing it a try, I expect that will help teach me some of the things I lack that are necessary for working in a programming company, anyone care to elaborate on whether or not managing (or just being highly involved) in an open source project is comparable to company work? (Obviously since no one is paying you anything, there isn’t a lot of leverage they can use if you aren’t meeting a deadline but other than that it should be pretty similar).

[quote]For a trivial example (which doesn’t exhibit that stuff above, but does demonstrate the application-centric view of java-the-language), look at package-protection: it is not possible to make data or methods “only accessible to my subclasses”.
[/quote]
“protected” ??? what am I missing?

[quote]From a library-development POV this is stupid. The assumption appears to be that “anyone writing a class in the same package as me is going to be working with me or actually be me, so they don’t need to be isolated from the implementation details of my class”.

At the other end of the stick, the fact that packages have no inheritance - their hierarchy is a fake - means that library developers have to put masses of classes into huge monolothic packages, because IF they attempt to subpackage things, they instantly (and irrevocably) lose access to everything in the super package that is not public.
[/quote]
Yeah, that does suck. But does C++ offer anything better? I’m not sure how namespaces (the C++ version of packages it seems), do this.

In any case, I don’t think many people are really having any trouble with this given the vast amounts of Java libraries out there.