Good Job Interview Questions

Recently, I interviewed someone who was described to me as a computer graphics expert. Being my first interview, I didn’t know what kind of questions to ask him in order to evaluate his expertise. Luckily my first question was, “What is gimbal lock?”, and to my surprise, he didn’t know. I can’t imagine a person at an “expert” or an even “advanced” level not knowing what gimble lock is.

Anyway, if I have to interview more people, I can’t go in armed with just one question! What are some effective interview questions to determine a person’s knowledge of 3D graphics?

What was the last book you have read? And what did you learn?

Well jambolo I can imagine an expert might not know.

If you’re interviewing someone for a graphics position and you don’t have a clue about it then maybe you should leave that aspect to another interviewer who does. Ask about what you DO know. Certainly to ask the question you did and form your opinion on that is misguided. If your question draws a blank you should go on and ask about Euler angles or why one might use quaternians, rather than making the assumption you apparently did.

Sounds like the candidate had a lucky escape to me.

[This message has been edited by dorbie (edited 01-25-2003).]

Firstly, gimbal lock is hardly a graphics question… I would most likely call it a 3d mathematics question.

Perhaps a better question might have been if they are familiar with Quaternions? Whether use Opengl and/or Dx? What they have used these API’s for and what features they have used (eg. VP’s etc.)

Ask to see his/her previous work, and go from there.

What could octree, BSP, etc could be used for in 3D graphics and is there principle.

There are plenty of questions one could ask, so an expert should be able to answer 90% or something.

Asking about previous experience, demonstration programs is part of the interview too.

I would start with something more general.
For example:
“Have you done any work in…
occlusion culling
lighting effects
collision detection
physics
animation
etc.
?”

When the interviewee affirms, then I would ask for more specific information on that topic.
For example:
Interviewer: “Do you have any animation experience?”
Interviewee: “Nothing implemented, but I’ve read several papers on the topic.”
Interviewer: “Is there anything in animation that you’ve studied in particular, like inverse kinematics or keyframe interpolation?”

I would make a note of the topic or topics that the the interviewee seems most enthusiastic or informed about and ask something like, “What interests you most about insert topic here?”

Yes, dorbie. I suck at interviewing. That’s why I’m asking questions so I can learn to do a better job. Why do you insult me?

I think the fact that he had never heard of gimbal lock is very telling. How many people on this board have never heard of gimbal lock?

And talk about assumptions…you assume I “don’t have a clue” and you are way off.

Asking the applicant to solve or think about some sort of problem might be better than asking straight out pop quiz type questions. You might hire a bad programmer who knows lots of buzzwords that way. Try “Lately we’ve been thinking about shader management/shadow algorithms/geometry transfer optimizations here at Monkey Interactive and we’ve run into issues a,b and c. What are your thoughts on that?” Or something along those lines.

well, first of all “expert” sounds bit silly.

and for this question…if this “expert” didn’t know 1 term you interviewed, it doesn’t mean anything…

Give me the job, Jambolo - I know what gimbal lock is, I’ve seen Pulp Fiction…

This ain’t about you & me Jambolo. :slight_smile:

If someone knows a subject they will have some idea what to ask in an interview. If you DO have a knowledge of the topic and are at a loss, just have a technical discussion with the guy/gal, and see where it goes, heck ask them to explain something they know and you don’t, you even learn something.

The use of the term gimbal lock has always been a misnomer IMHO, and isn’t universal. Of terms I’d expect someone to know it’s pretty near the bottom of the list, unless perhaps they have some simulation or instrumentation experience.

As for assumptions, I have your “he didn’t know” in bold face; it tells me what I need to know. At some point in our careers we all face an interview with someone who doesn’t correctly understand the subject they’re asking about, it leaves a bad taste. No offence intended, really.

[This message has been edited by dorbie (edited 01-26-2003).]

I read the term “gimbal lock” the first time here in the OpenGL forum about 1 year ago and I didn’t know what it means. But I solved it 3 years before in an OpenGL project. I simply didn’t have a name for it. So not knowing a term does not necessarily say something about the qualification.

In a job interview I always ask for the projects they did before. Then depending on their answers I can ask specific details on their software they did. When they come directly from university it’s important for me what private projects they did or if they only made the projects necessary to finish the university.

Kilam.

Some filtering questions I like to ask are related to the level of interest the candidate has in the subject: which sites he visits? which magazines? which books? how did he came to work on the subject? does he know of some “reference” or “famous names” in the industry, etc.
That’s a fast, non-aggressive way of filtering early on in the interview. If there is some substance, you can then proceed to inquiring about technical knowledge. Ask questions which require knowledge to answer, f.i. do not ask

“do you know what texturing is?”
or
“did you ever write some skeletal animation code?”

and other questions that can be answered with a yes/no and a reference to some previous work (in which it’s often hard to know what part he/she played exactly). But rather:

“how would you texture/skin a sphere/zergling/whatever mesh?”

(is he/she naming 3D design tools? standard texture coordinates generation? or is he/she staying in the vague, refering other peeps in the team?)

You can also mix some plain stupid questions with regular ones, to see if his/her technical side reacts, you can voluntarily place lapsuses in your sentences: invert “mesh” and “texture” in the previous question f.i.

“I think the fact that he had never heard of gimbal lock is very telling. How many people on this board have never heard of gimbal lock?”

I got asked that question for the position i’m working at now doing 3d software developing. It is a valid graphics related question and is a great quesiton to ask in an interview (according to one of my old 3d Graphics professors as well as my current boss)

Additional questions that may not have posted already are (these are generally applied math questions but should generally be known by anybody who works in 3d graphics development):

How do you represent a camera transformation?

What is a projection and what is the difference between orthographical and prospective projections?

What are homogeneous coordinates and how do you convert them into cartesian coordinates?

What is the difference of a post multiply and premulitply when dealing with matricies? (for example generalize the different effects that the following two statements have: RotationW vs. WRotation, where rotation is a rotation matrix and W is a matrix that is not axially alligned or about the origin.

What is a dot product and how is it useful in 3d graphics?

What is the viewing frustrum?

Additionally you could ask them about illumination models(specular, diffuse), shading (flat vs. gouraud)…etc

[This message has been edited by Walrus (edited 01-27-2003).]

Originally posted by Walrus:
[BI got asked that question for the position i’m working at now doing 3d software developing. It is a valid graphics related question and is a great quesiton to ask in an interview (according to one of my old 3d Graphics professors as well as my current boss)
[/b]

Yes but apparently the candidate was described as a “computer graphics expert”. There’s more to CG than 3D -and there’s more to knowledge than knowing the names of things…

How do you represent a camera transformation?

What is a projection and what is the difference between orthographical and prospective projections?

What are homogeneous coordinates and how do you convert them into cartesian coordinates?

What is the difference of a post multiply and premulitply when dealing with matricies? (for example generalize the different effects that the following two statements have: RotationW vs. WRotation, where rotation is a rotation matrix and W is a matrix that is not axially alligned or about the origin.

What is a dot product and how is it useful in 3d graphics?

What is the viewing frustrum?

The problem with many of those questions is that they are just RIGWAT. That is, Regurgitated Information Given Without A Thought.

If I’m hiring a programmer, I want to know that he’s capable of more than just RIGWAT-ing information from a text book. I don’t mind a graphics programmer who carries around Foley or a linear algebra boox because he doesn’t remember the precise definition of a projection matrix or the difference between “pre-multiplying” and “post-multiplying”, as long as I’m sure that this person can think. A programmer who can RIGWAT but not think is useless.

A person who can think can learn graphics easily. Teaching a person to think takes far longer than teaching a thinking person any particular subject.

BTW, you first question, about representing a camera transform, is way too vague. There are any number of ways to represent a camera transform, and you use different ways depending on a situation.

Now, had you given him a particular situation and asked how a camera’s transform should be represented, then you have a question that tests the applicant’s ability to think.

Bravo!
You’ve got to worry when you get someone who’s answer to all those questions is ‘google’…
Thing is, you’ve got to wonder what use any of this knowledge is when you consider the rising popularity of 3rd party renderers and physics api’s…who cares if he knows what a projection matrix is, it’s all done for him. He basically just needs to be good at C++, unless he actually works for Criterion…

What are homogeneous coordinates and how do you convert them into cartesian coordinates?

that might not be a good question to ask given that the interviewee very well know more about projective geometry than the interviewer. Homogeneous coordinates are NOT just simply “We tack an extra value—lets call it “W”—and represent cartesian coordinates as x/w, y/w, z/w”. What if the person turns around and explains the axioms of projective space (each pair of lines will intersect in one point; there must be at least four points, of which only three must be collinear), or illustrate’s pappus’ theorem.

How many people here know what the principle of duality is?

Although part of an interviewing process may well be like an oral maths exam, I think its more important to see if they can understand concepts if theyv’e been explained to them. Suppose the guy doesn’t know what gimbal lock is; what if you explained the problem. Did he understand what you’re talking about? That is more important. Maybe he hasn’t heard of it before because his graphics expertise was in another field. I bet the guys who work on algorithms for rendering liquid don’t necessarily need to know a lot about gimbal lock.

my 2cents worth.

cheers,
John

No, ‘gimbal lock’ is a bull**** graphics question, I don’t care what your professor / boss says. It’s a misnomer and I wouldn’t be surprised if a graphics expert with a doctorate in quaternion mathematical formulations had not come across it being used.