Google-apps
Hoofdmenu

Post a Comment On: C0DE517E

"Interview mistakes"

6 Comments -

1 – 6 of 6
Blogger Borealux said...

Nice article!

Personally, I have never seen a good technical test.

The main problem is often that they are not done in a "real world" way. Seriously, what does it tell you that a candidate does not remember a mathematical formula? It happens to everyone, and when it happens in real life, we just open our favorite textbook/website and get the information we want. What you want is to find if your candidate can use those formula in a creative way, and at the good time too. For this reason, I favor "high level" questions during interview than "low level" implementation detail. I want to know how the candidate work, when facing a problem that he does not already know the answer.

January 30, 2012 at 5:00 AM

Blogger DEADC0DE said...

Borelaux: There is a certain middle ground to it. I don't believe that an interview can be effective with only high level chat, even if we all love to talk about high level stuff.

You have to make sure that a given person still can code, do math, and that he actually has experience in what he's talking.

Asking to remember Ford-Fulkerson or quaternion to matrix? Surely a stupid idea. Most low-level questions should still be about the candidate's ability to reason, and not to just remember, that's why I said in the article, craft your own logic questions.

On the other hand though, asking what [isolate] does with the 360 hlsl compiler, or the distance between a plane and a point, or what is C++ "restrict" on the other hand "proves" the the person has seen these things enough times, that are part of his job, so there is a degree of memorization which is useful to test.

But these questions should be aimed at checking things which are common enough for a given kind of programmer (i.e. "feature rendering" versus "system or optimization rendering") to work with them daily or so, while not so common that people could have just studied them and not learned through first-hand experience (that's why I hate asking about "virtual")

January 30, 2012 at 2:29 PM

Anonymous Rim said...

An interesting read, thanks for sharing.

I have very little interview experience myself, but I find myself agreeing with Borealux about low level details or math questions. If a programmer knows plane-point intersection verbatim because he has implemented it on a daily basis or so, one might even argue a lack of abstraction capabilities :)

January 31, 2012 at 8:39 AM

Anonymous Rim said...

Forget my previous post, plane-point intersection... I couldn't have disqualified myself any better even if I tried :)

January 31, 2012 at 8:42 AM

Blogger Guoshima said...

I really like the article, but I don't fully agree with everything. Usually when I do a phone interview I first like to talk to the person and get more information on his background (after explaining a bit about ourselves, the project and company to make him feel relaxed of course). Find out what he likes, what he is proud of, what makes his day .. and where he wants to go.

From this info it's possible to find out his expected technical knowledge, and then some low level technical questions are always good to see if he 'lives' up to the expectation of what he told you before.

For this the 'virtual' function question is actually pretty good. What and how is not important. Everyone knows that. More interesting is, how is it implemented in C++, what is the extra runtime and memory cost, what about cache misses (code, data caches), why is more expensive on consoles compared to PCs, how do you profile the cost of this? This all starts from a simple virtual function question, but can easily go rather deep and see how much the person actually knows about C++, and how interested he is in trying to understand systems. Of course not everyone has to know everything, but the reaction of the person is also very good to see how they react to things they don't know yet.

January 31, 2012 at 9:04 AM

Blogger DEADC0DE said...

Oh, yes, virtual versus function pointers or jump tables, the powerPC implementation etc, these are great questions. I was criticizing the kind of lame questions about polymorphism and "can you make a simple example of where do you use virtual?" and stuff like class A : public B... what would B::Foo print? And so on, when asked to a senior programmer.

January 31, 2012 at 11:03 AM

You can use some HTML tags, such as <b>, <i>, <a>

Comment moderation has been enabled. All comments must be approved by the blog author.

You will be asked to sign in after submitting your comment.
Please prove you're not a robot