HR reps/people who've done interviews, please provide advice on hiring a developer intern.

yllus

Elite Member & Lifer
Aug 20, 2000
20,577
432
126
Being fairly early in my career, I'm just now starting to regularly interview people to come for me at my company. I'm looking at hiring a few bright young interns for the summer to run with a project or two that they'll almost totally self-manage. Any tips on questions I should ask to get an idea of their character? Self-motivated problem solvers are at the top of my list.

Also, what do you think of posing these "Fermi questions" to the developers on the spot and having them reason out each step as they problem-solve out loud? I'll provide the question on a piece of paper, with a pencil, so they can sketch out rough equations and keep track of the numbers they've already theorized. My goal with this is to get a sense of how good their on-the-spot analytical skills are.

1. How much has the mass of the human population on the earth increased in the last year? (kilograms)

2. How many litres of gasoline are used in your home town in one week? (litres)

3. How many individual frames are needed for a feature length motion picture?

4. According to the Canadian Blood Service, how many litres of blood are donated in Canada in the average year? (Hint: One unit of blood is equal to about 0.45 litres).

5. What is the total mass of the CN Tower? (kilograms)

6. How many traffic lights are there in Toronto? (number of traffic lights)

Edit: I think I didn't provide enough context for those questions. I was assuming that a lot of people here would have run into them because many people here work in tech jobs and were probably subject to one or two questions of this type.

The idea isn't to get an accurate answer or require much calculation at all; it's just a mental exercise. I'll cut/paste what a Fermi question is all about:

A "Fermi question" is a question in physics which seeks a fast, rough estimate of quantity which is either difficult or impossible to measure directly.

For example: The question "How many drops of water are there in Lake Erie?" requires an estimate of the volume of a drop, the volume of Lake Erie from its approximate dimensions and conversion of units to yield an answer. This answer would be an estimate hopefully accurate within an order of magnitude, i.e. a factor of ten.

Making accurate estimations isn't an issue. I want to see how they step through a problem.

Thanks. :)
 

halik

Lifer
Oct 10, 2000
25,696
1
0
I was trained not to ask those sort of questions, because most people know/have seen them online.

Whats the angle between the big and little hand at 3:15? And things of that sort... doesn't really prove anything.
 

yllus

Elite Member & Lifer
Aug 20, 2000
20,577
432
126
Originally posted by: SacrosanctFiend
What field do you work in?
Software developer.

Originally posted by: halik
I was trained not to ask those sort of questions, because most people know/have seen them online.
In my mind's eye I see them staring up at the ceiling, talking out loud as they run through how to solve the problem. They're undergrad university students; I don't think they'll be that prepped for this.
 

halik

Lifer
Oct 10, 2000
25,696
1
0
Originally posted by: yllus
Software developer, website work primarily.

Ask them about relevant stuff - css, ajax, JSON, scriptaculous, MVC, patterns etc.
 

yllus

Elite Member & Lifer
Aug 20, 2000
20,577
432
126
Originally posted by: halik
Originally posted by: yllus
Software developer, website work primarily.

Ask them about relevant stuff - css, ajax, JSON, scriptaculous, MVC, patterns etc.

Well, I don't really want to find out if they can code. Their resumes say they can; and if they can't, they'll be out in their ass in short order. I want to know if they can think.
 

aceO07

Diamond Member
Nov 6, 2000
4,491
0
76
Ask them what technologies they know. How they do a certain task or how they would approach it if they didn't know. Ask about databases. They don't need to know the answers, but know the concepts or how to find the answers.

It's good to see if they can think, but not everybody who can think can develop something.
 

SacrosanctFiend

Diamond Member
Oct 2, 2004
4,269
0
0
Originally posted by: yllus
Originally posted by: halik
Originally posted by: yllus
Software developer, website work primarily.

Ask them about relevant stuff - css, ajax, JSON, scriptaculous, MVC, patterns etc.

Well, I don't really want to find out if they can code. Their resumes say they can; and if they can't, they'll be out in their ass in short order. I want to know if they can think.

Start off assessing their abilities in the relevant areas that pertain to their job. 40% of applicants lie/exaggerate on their resumes, and turnover is costly no matter how long they work for you.

Next, assess their problem solving ability, not through puzzles, but through problems. Give an example of a problem that you have experienced, and ask them how they would handle it.

Next, move to assessing their personality and talents. Consider having them critique a relevant area through a dialogue with you. It gives you a little insight into how they think, as well as their ability to convey their knowledge.

Another option to consider, and some software companies that I have contracted with liked, was to see a sample of the applicant's code. If they can't legally share any with you, ask them to write something up before the interview.

Throughout the entire process, just get to know them (while staying within legal bounds. Ask open-ended questions, and let them answer. When they've finished answering, give a 5 or 6 second pause to see if they provide anymore unsolicited information. Most of the time they will.

Lastly, consider a trial period. Even a half-day trial period to see how the acclimate to teh environment and the work can save you a heck of a lot of time and money.
 

GasX

Lifer
Feb 8, 2001
29,033
6
81
Your questions all require minute trivial knowledge and/or huge assumptions. Unless you state you are focusing on the process rather than the results, you will just get a bunch of gibberish
 

Chronoshock

Diamond Member
Jul 6, 2004
4,860
1
81
I also think those questions aren't the best test for applicants. You can fulfill your goal of listening to them think out loud and seeing their thought process but in a more meaningful way by asking more specific software design questions.
An example would be to ask them to design the API of an application (I was asked to design an online radio station in one interview) which will test their knowledge of OO design principles and organization.
In that same vein would be to ask a system design question; in one interview I was asked to design a distributed file distribution system for an e-commerce site. Those kinds of questions give insight into their knowledge of real world constraints like redundancy, latency, maintenance, testing, etc.
Another example would be to give them an algorithm question testing how they go about solving it (do they quickly give a correct non-optimal solution, do they demonstrate knowledge of techniques of dynamic programming, divide and conquer, basic sorts, how is their intuition, etc).
 

randay

Lifer
May 30, 2006
11,018
216
106
Originally posted by: yllus
1. How much has the mass of the human population on the earth increased in the last year? (kilograms)

I dont know let me google it.
2. How many litres of gasoline are used in your home town in one week? (litres)
wheres your computer at?
3. How many individual frames are needed for a feature length motion picture?
can you type in the password here so i can get online?
4. According to the Canadian Blood Service, how many litres of blood are donated in Canada in the average year? (Hint: One unit of blood is equal to about 0.45 litres).
how do you turn off the firewall on this thing?
5. What is the total mass of the CN Tower? (kilograms)
hrmm, google seems to be blocked. ill have to use my iphone.
6. How many traffic lights are there in Toronto? (number of traffic lights)
oops, no signal in here.
 

Extelleron

Diamond Member
Dec 26, 2005
3,127
0
71
Asking questions to see how someone thinks on the spot is not a bad idea in an interview. But those questions are.

Most of them rely on information one could not possibly know and without that information nobody (no matter how great a thinker they are) could provide a reasonable answer. What is the mass of the CN tower? How would I possibly approach that problem if I have no idea what the dimensions are, what it is made out of, etc. All I can do is give you a bunch of gibberish.

Frames needed for a motion picture is easy and not a problem.

Units of blood donated? Number of traffic lights in Toronto? How would you honestly expect someone to approach that kind of problem? It doesn't involve thinking at all, it requires math but you need hard numbers to get any reasonable answer. Otherwise it is a random guess.
 

AgaBoogaBoo

Lifer
Feb 16, 2003
26,108
5
81
Does the plane take off? :p

Seriously, make sure to ask what they want to get out of the internship and why they're applying with you.

By the way, is the schedule in Canada different in US for universities? Most people are probably at least a week into their internships now, if not a few weeks.
 

Bignate603

Lifer
Sep 5, 2000
13,897
1
0
I would stick with questions that are a bit closer to what you need them to do.

For example, ask them to make an algorithm for an interesting problem (give them a white board and a marker to make a flow chart). Nothing too complex, maybe like seeing if something is a prime number.
 

yllus

Elite Member & Lifer
Aug 20, 2000
20,577
432
126
SacrosanctFiend: I will likely incorporate all of your advice, thank you.

Originally posted by: alkemyst
GRATZ LOOKING FOR ANOTHER NEFFER IN YOUR FIRM!!!! GOOD MAN GOOD MAN!

Hey, someone has to do the work that's piling up around here!

Originally posted by: Extelleron
Asking questions to see how someone thinks on the spot is not a bad idea in an interview. But those questions are.

Most of them rely on information one could not possibly know and without that information nobody (no matter how great a thinker they are) could provide a reasonable answer. What is the mass of the CN tower? How would I possibly approach that problem if I have no idea what the dimensions are, what it is made out of, etc. All I can do is give you a bunch of gibberish.

Frames needed for a motion picture is easy and not a problem.

Units of blood donated? Number of traffic lights in Toronto? How would you honestly expect someone to approach that kind of problem? It doesn't involve thinking at all, it requires math but you need hard numbers to get any reasonable answer. Otherwise it is a random guess.

Ah, my mistake - I think I didn't provide enough context for those questions. I was assuming that a lot of people here would have run into them because many people here work in tech jobs and were probably subject to one or two questions of this type.

The idea isn't to get an accurate answer or require much calculation at all; it's just a mental exercise. I'll cut/paste what a Fermi question is all about:

A "Fermi question" is a question in physics which seeks a fast, rough estimate of quantity which is either difficult or impossible to measure directly.

For example: The question "How many drops of water are there in Lake Erie?" requires an estimate of the volume of a drop, the volume of Lake Erie from its approximate dimensions and conversion of units to yield an answer. This answer would be an estimate hopefully accurate within an order of magnitude, i.e. a factor of ten.

Making accurate estimations isn't an issue. I want to see how they step through a problem.
 

Evadman

Administrator Emeritus<br>Elite Member
Feb 18, 2001
30,990
5
81
the only one of those I can do off the top of my head is the 3rd one.

3. How many individual frames are needed for a feature length motion picture?
There are 24 fps in a standard motion picture reel, and feature length is between 90 and 120 minutes. Assuming 110 minutes, you would have 24 frames * 60 seconds/min * 110 minutes = 158400 frames.

Everything else would require that I either guess (bad at an interview, or just in general doing analytical anything) or look up values. Those are also all incredibly simplistic. Here is one I got at an interview that actually required thought.

Imagine a wall of 100 lockers that are all closed Then, for numbers 1 though 100, you will open or close the locker (whatever it isn't) that corresponds to the number you are on. For example, if all lockers are closed, for #1 you will open every locker. For #2 you will close every other locker so that 2 is closed, 3 is open 4 is closed 5 is open, 6 is closed etc. for #3 you will again toggle the lockers, so that now 3 is closed, 6 is open (you closed it on 2) 9 will be closed, etc)

When you run though all 100 numbers, what is the final state of all lockers? Which are open and which are closed?

Questions like this test thought processes and don't require obscure knowledge, like how many liters of blood are donated in some country no one cares about.

Answer: (and my thought process) The lockers that you toggle an odd number of times will be open and everything else will be closed obviously. That rules out prime numbers, because they only have 2 factors, 1 and their number. (13 will be toggled on 1 and 13, 17 will be toggled on 1 and 17, etc) Then I figured it out, it is any number that has an odd number of factors, or in other words perfect squares. that means 2^2, 3^2, 4^2, 5^2 etc or in other words 4, 9, 16, 25, 36, 49, 64, 81. They all have odd numbers of factors (9 is 1, 3, 9 so it will be hit on the pass of 1, pass of 3 and pass of 9 for a total of 3 times, which is odd)

 

halik

Lifer
Oct 10, 2000
25,696
1
0
Originally posted by: nakedfrog
Originally posted by: KLin
http://www.codinghorror.com/blog/archives/000781.html

Have them do that. :D

Man... we've been interviewing for a replacement for weeks now, and it's true.
We found two good applicants, and one of them decided not to take the job after he was offered it (probably got a higher paying offer) and the other one pissed off our boss (I have no details on that).

Hmmm try being more selective on their educational background. Odds are if you don't have any real CS education, you're one of the 199 in the 200
 

WHipLAsh13

Golden Member
Jan 17, 2001
1,719
0
76
Originally posted by: yllus
Originally posted by: halik
Originally posted by: yllus
Software developer, website work primarily.

Ask them about relevant stuff - css, ajax, JSON, scriptaculous, MVC, patterns etc.

Well, I don't really want to find out if they can code. Their resumes say they can; and if they can't, they'll be out in their ass in short order. I want to know if they can think.

I can tell you, as an IT Manager, I would never ask these questions. Also don't assume they can code either. It's a very different thing having book knowledge from college and being able to apply that knowledge to a given project. You are better off asking simple sudo coding questions related to the development they are going to be doing for your company to see how they rationlize through a coding scenario.
 

SacrosanctFiend

Diamond Member
Oct 2, 2004
4,269
0
0
Originally posted by: WHipLAsh13
Originally posted by: yllus
Originally posted by: halik
Originally posted by: yllus
Software developer, website work primarily.

Ask them about relevant stuff - css, ajax, JSON, scriptaculous, MVC, patterns etc.

Well, I don't really want to find out if they can code. Their resumes say they can; and if they can't, they'll be out in their ass in short order. I want to know if they can think.

I can tell you, as an IT Manager, I would never ask these questions. Also don't assume they can code either. It's a very different thing having book knowledge from college and being able to apply that knowledge to a given project. You are better off asking simple sudo coding questions related to the development they are going to be doing for your company to see how they rationlize through a coding scenario.

That's way too simplistic to garner a qualified candidate without luck.
 

dingnecros

Golden Member
Mar 23, 2005
1,579
0
71
From what I can see these are just bad questions to ask in a interview. Someone with bad to no coding skills can answer these questions and you will waste time training them too much and to think more along coding than someone with excellent coding skills and structured thought procedure. I usually start with basic questions and make them more complex as they answer it. For eg I will say draw me a bridge rectifier, once they draw it I will ask them to draw the output waveform then ask them for filtering followed by regulation, techniques for regulation, providing metering and so forth this way u test function skill and get to know depth of knowledge and there will be one point that they will stumble (nobody knows everything) and then u can check thinking skills as well as learned material application. Of course this changes with the type of position being interviewed. For some positions where u know that the person can prolly ace any question you are asking, ask them of specialized situations in their past experience, there action to that situation and the outcome also if possible try to read body language it gives away a lot. Also try to befriend and make the candidate as comfortable as possible coz then u can mine for deficiencies and not seem hostile