Coffeehouse Thread
85 postsForum Read Only
This forum has been made read only by the site admins. No new threads or comments can be added.
Developer Interview Questions

I have a "Technical Interview" with a large Manhattanbased software company on Tuesday and I need you guys' help.
For those of you who do the hiring at your company:
 What are the toughest questions you ask of your interviewees?
 What are the questions that get the most blank stares?
 What is the one thing an interviewee can do to get/lose the job right off the bat?
And for those of you who have been through plenty of interviews:
 What's the toughest question you've had to answer during an interview?
 Is there any question in particular that you dread being asked?
If I get this job it will be my big break. I think I'm ready, but any extra help will definitely be appreciated. 
CompGuy101 wrote:
vbrunner__ wrote:
I have a "Technical Interview" with a...
Do you know if it's going to be a traditional interview or a behavorial interview? 
Either you are right for the job, or you aren't. If you are right for the job, be prepared to answer the interviewer's questions in a way that demonstrates that you are indeed right for the job.
The interview process is a twoway street. Ask questions about the company. Find out if it's the kind of place you want to work. It may seem like a "big break" job to you now, but maybe not so much after you find out what exactly the job entails.
Don't lie. You would be surprised how many people think that they can BS their way into a job. If you don't know something, say so and note it as something that you should study to improve yourself.

vbrunner__ wrote:I have a "Technical Interview" with a large Manhattanbased software company on Tuesday and I need you guys' help.
For those of you who do the hiring at your company:
 What are the toughest questions you ask of your interviewees?
 What are the questions that get the most blank stares?
 What is the one thing an interviewee can do to get/lose the job right off the bat?
And for those of you who have been through plenty of interviews:
 What's the toughest question you've had to answer during an interview?
 Is there any question in particular that you dread being asked?
If I get this job it will be my big break. I think I'm ready, but any extra help will definitely be appreciated.
The best questions are ones which anybody can answer, but not everyone can answer well.
Some of the genius questions we've used at work before (mainly in the context of Maths) are things like
What is the deriviative of x?
A bad answer is "I don't know".
// "lied on their resume"
A good answer is "one"
// "knows maths ok, we can continue to more difficult questions"
An excellent answer is "With respect to what?"
// "has a degree in maths."
What is the deriviative of x to the n with respect to x?
A bad answer is "I don't know"
// "lied on their resume"
A good answer is "n multiplied by x to the (n minus one)"
// "has A level maths"
An excellent answer is "n multipled by x to the (n minus one) plus x to the n multiplied by the natural logarithm of x multiplied by the deriviative of n with respect to x".
// "has a degree and experience in maths"
In the context of computer science you can ask questions like
What is a page fault?
A bad answer is "I don't know"
A good answer is "Something which happens when you try to access memory that isn't yours or is paged out."
An excellent answer is "System interrupt 14, used by the OS to page in and out virtual memory in the context of an OS, and a critical error in the context of a usermode program".
or given a rectangle R of width and height (Rw, Rh) and a second rectangle S of width and height (Sw, Sh), find the top left corner of S offset from the top left corner of R when using
a) Top align, Bottom align, Middle vertical align
b) Left align, Right align, Middle horizontal align
A bad answer is "I don't know".
A good answer is
left align: Sx = Rx, middle = Sx = Rx + (Rw  Sw)/2, right = Rx + (Rw  Sw)
and simmilar for vertical (sub x for y)
An excellent answer says
public enum Align {
Left = 0,
Middle = 1,
Right = 2
}
Sx = Rx + (int)align (Rw  Sw)/2
Write down when you take notes on the interview roughly how long it took for them to get to the answer, but don't time it or make the interviewee feel under timepressure. If they need to draw a diagram for the question above it means that they can reason their way through a problem. If they can just give you the answer it means that they've reasoned about it before. I.e. they are experienced.
The reason these questions are so good is that you don't get blank responses from most people. Many people can answer the question, but you have shades of correctness which help you see the people who've read books on the matter from the people who have worked in the field and have seen these problems before.
Also, try and steer away from yes or no questions, and never tell them that there is a better solution. If they say the deriviative of x is 1, then write it down and say "yes, you're absolutely right".
Also, try and spend a lot of the interview looking at their past experience. Ask questions with hidden agendas, such as "is this person a team player?", "is this person going to fit into our team?", "does this person have simmilar interests to the rest of the team, or is he just going to wind everyone up?". Don't tell them the hidden meaning behind the question or you'll just get a standard defensive response. A question which includes the word "team" will get their memorised "I am a team player" paragraph that they memorized last night, so be creative.
Also, drop in a couple of questions like "What is your biggest character flaw", and "what is the biggest failure that you've ever had while working together in a team? Why did that failure happen?" because these types of questions tell you whether their immediate response is to shift blame, and whether they're going to learn from their and other people's mistakes.

I'm currently rewriting our technical test (I have a lovely real world scenario which the good answer too would be generics or linq) but the question I used to ask to see how people thought was
Write a multiplication function; without using the multiply operator. It must take two integers as a parameter and be optimised. 
evildictaitor wrote: Many people can answer the question, but you have shades of correctness which help you see the people who've read books on the matter from the people who have worked in the field and have seen these problems before.
Which field would this be exactly?

ManipUni wrote:
evildictaitor wrote:
Many people can answer the question, but you have shades of correctness which help you see the people who've read books on the matter from the people who have worked in the field and have seen these problems before.
Which field would this be exactly?
Computational Research.

blowdart wrote:Write a multiplication function; without using the multiply operator. It must take two integers as a parameter and be optimised.
Is there a requirement for the function return type or a requirement for how to handle an overflow condition?

blowdart wrote:Write a multiplication function; without using the multiply operator. It must take two integers as a parameter and be optimised.
Aren't you also meant to prohibit use of For?
int Multiply(int operand1, int operand2) {
for(int i=1;i<=operand2;i++) {
operand1 += operand1;
}
return operand1;
}
//wrote it without thinking
///is it correct?

W3bbo wrote:
blowdart wrote:
Write a multiplication function; without using the multiply operator. It must take two integers as a parameter and be optimised.
Aren't you also meant to prohibit use of For?
int Multiply(int operand1, int operand2) {
for(int i=1;i<=operand2;i++) {
operand1 += operand1;
}
return operand1;
}
//wrote it without thinking
///is it correct?
No it's not *grin* In 3 very big ways. Which is why for isn't forbidden.

W3bbo wrote:
blowdart wrote:
Write a multiplication function; without using the multiply operator. It must take two integers as a parameter and be optimised.
Aren't you also meant to prohibit use of For?
int Multiply(int operand1, int operand2) {
for(int i=1;i<=operand2;i++) {
operand1 += operand1;
}
return operand1;
}
//wrote it without thinking
///is it correct?
i thought the same thing, but that would give you 32 for 2*6.

W3bbo wrote:
Whops, silly mistake there. How's this?
int Multiply(int operand1, int operand2) {
int origOperand1;
for(int i=1;i<=operand2;i++) {
operand1 += origOperand1;
}
return operand1;
}
Same 3 mistakes.
Fun this isn't it?

vbrunner__ wrote:
W3bbo wrote:
blowdart wrote:
Write a multiplication function; without using the multiply operator. It must take two integers as a parameter and be optimised.
Aren't you also meant to prohibit use of For?
int Multiply(int operand1, int operand2) {
for(int i=1;i<=operand2;i++) {
operand1 += operand1;
}
return operand1;
}
//wrote it without thinking
///is it correct?
i thought the same thing, but that would give you 32 for 2*6.
Whops, silly mistake there. How's this?
int Multiply(int operand1, int operand2) {
int origOperand1 = operand1;
for(int i=1;i<=operand2;i++) {
operand1 += origOperand1;
}
return operand1;
}
EDIT: Getting there..
2*1
4
2*2
6
2*6
14
6*2
18
9*4
45
10*0
10
10*1
20

longnight wrote:
blowdart wrote:
Write a multiplication function; without using the multiply operator. It must take two integers as a parameter and be optimised.Is there a requirement for the function return type or a requirement for how to handle an overflow condition?
long f(int i1, int i2)
{
return ( (long) ( ((double) i1) / ( 1.0 / ((double) i2) )));
} 
blowdart wrote:
Write a multiplication function; without using the multiply operator. It must take two integers as a parameter and be optimised.
long multiply(int op1,int op2)
{
return MassiveLookupTable[op1,op2];
};
Well you didn't say what it had to be optimised for. 
longnight wrote:
longnight wrote:
blowdart wrote:
Write a multiplication function; without using the multiply operator. It must take two integers as a parameter and be optimised.Is there a requirement for the function return type or a requirement for how to handle an overflow condition?
long f(int i1, int i2)
{
return ( (long) ( ((double) i1) / ( 1.0 / ((double) i2) )));
}
Ah first mistake solved; yes the return type should be looked at; overflow handling is a bonus.
Now that's a very very nice approach. Not seen that before; of course if i2 was 0 then bang.

AndyC wrote:
blowdart wrote:
Write a multiplication function; without using the multiply operator. It must take two integers as a parameter and be optimised.
long multiply(int op1,int op2)
{
return MassiveLookupTable[op1,op2];
};
Well you didn't say what it had to be optimised for.
*snicker* No points for cheating, but a point for long.

it works, but i sure wish you didn't have to cast so much.
Conversation locked
This conversation has been locked by the site admins. No new comments can be made.
Pagination