Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I've been given the opportunity to provide a question bank for nontechnical recruiters to ask candidates. However, all of my favorite interview questions require somebody who knows the subject matter to properly evaluate the answer (eg. how would you design X, How do you feel about Y). I'll probably need to have a combination C#/.Net questions and more general programming questions, and the tricky part is they all need to have answers that the recruiters can confirm without understanding them.

Any thoughts?

share|improve this question

closed as too broad by GlenH7, Dan Pichelman, Ozz, Bart van Ingen Schenau, Robert Harvey Sep 27 '13 at 21:31

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

2  
Call work references instead. –  Amir Rezaei Jan 18 '11 at 20:10
12  
Sounds like a DailyWTF Recruitment story just begging to happen -> "all need to have answers that the recruiters can confirm without understanding them" –  Dan McGrath Jan 18 '11 at 20:11
2  
How many fingers am I holding up? –  Pemdas Jan 18 '11 at 20:37
4  
How can a non-technical person ask technical questions. –  Chris Jan 18 '11 at 21:09
1  
@Chris Easy. Just tell them to say "Explain the difference between abstraction and polymorphism in an object oriented programming language". They just won't have a clue if the answer is correct. ;-) –  Gary Rowe Jan 18 '11 at 22:05
show 2 more comments

6 Answers

up vote 5 down vote accepted

Consider an alternative approach if you're able to

Requiring non-technical recruiters to select quality technical candidates is difficult. You may find that using an online code submission process with an automated unit test would be more effective. Candidates login and are given a random extremely simple programming task (FizzBuzz, numerical sequences with limits etc). They post their code which is executed against a unit test (in a sandboxed environment obviously). This should be sufficient to screen out the non-starters automatically.

But I digress.

Recruiters want keywords

In general, the recruiter will not be able to understand half of what the candidate is burbling on about, but they can listen out for certain keywords. The purpose here is to identify candidates who appear to:

  1. know what they are talking about
  2. can communicate this knowledge effectively in the required natural language (English, Spanish etc)
  3. can demonstrate enthusiasm for the subject.

So, leading questions are the order of the day - and these are questions that recruiters love to ask. Ideally, they want to be able to count up the keywords and apply a subjective measure to identify the candidate that is most likely to result in a successful placement for them. You want to reduce the number of time-wasters that you're going to be talking to in the phone interview.

To make sure that the recruiters are not feeding their candidates answers, get them to provide a short summary of how the candidate performed.

Web developer

Explain in detail how a browser gets a generated page from a web server

Listen out for HTTP, request, response. Extra points for session, connectionless, stateless, socket, port 80. And so on... you get the picture.

General knowledge

How would you attempt to stop spam in your email or blog?

Listen out for keyword filtering, blacklist, whitelist. Extra points for Bayesian filters, early manual feedback and so on.

Overall, spend a bit of time exploring Programmers to identify some interesting questions and see if you can incorporate them into your question bank.

share|improve this answer
    
with all due respect recruiters won't manage to remember good keywords and not mix everything in their head. That is, unless they have a technical background. A nice HR girl who graduated from a psychology school definitely won't. Somebody from an IT/economics school might. Not every recruiter is the same. –  user8685 Jan 18 '11 at 22:08
    
But it's anyway better than technology keywords. The keywords inside a particular technology might yield better results. Actually, an interesting idea. +1 –  user8685 Jan 18 '11 at 22:10
    
@Developer Art I'm assuming that the recruiters will be conducting initial interviews by phone. That way they'll have the answers written down in front of them. Even in a face to face they can have the candidate droning on and still be able to surreptitiously make notes and ticks. I actually used this approach in a previous contract and it worked well. The recruiters were happy and I didn't have so many wasted phone interviews. –  Gary Rowe Jan 18 '11 at 22:23
add comment

Without technical knowledge a recruiter will only be able to collaborate on non-technical aspects which are nevertheless very important. All those things which are personality-related and not purely technical:

  1. Passion for programming, very first you want to know
  2. Thinker or doer
  3. Approach to solving problems and puzzles
  4. Learning and keeping up-to-date, attitude and approach
  5. Communication skills
  6. Ability to communicate to mere mortals by artificially "dumbing" stuff down to an appropriate level
  7. Behavior in conflict situations
  8. Interests and aspirations
  9. Preferred occupation, what tasks and activities
  10. Preferred office environment
  11. Preferred command structure

And many other really interesting things...

share|improve this answer
    
+1 for the passion observation. Perhaps add this link: programmers.stackexchange.com/q/37339/7167 –  Gary Rowe Jan 18 '11 at 20:59
    
At my college I worked in career services and we administered the Myers Briggs personality assessment. I wish more recruiting agencies used this tool to gauge potential benefits and barriers in the workplace. –  P.Brian.Mackey Jan 18 '11 at 22:11
add comment

If your interview process requires that the interviewee parrot a specific answer, then you're going to get people who can parrot answers they found on the internet rather than people who actually know their stuff.

If this is just a basic pre-screening before they get to an actual technical interview, then I'd go the FizzBuzz route - set them up with a computer and a development environment, and a relatively simple problem, and just have the recruiter check whether their answer gives the correct output.

share|improve this answer
    
If you do have them ask that question, have them store the code with the application for the technical interviewer to see. I mean, anyone can write Response.Write 100 times to get the correct results. –  Rachel Jan 18 '11 at 20:43
1  
@Rachel: Won't work. Everyone codes differently, and without knowledge of the developer's domain, the recruiter will not be able to tell if the coded solution is correct. –  Robert Harvey Jan 18 '11 at 21:02
    
True, but all code is similar and they should be able to tell if it was coded badly or not. –  Rachel Jan 18 '11 at 21:25
add comment

I would want questions that show the candidate is intelligent and capable of learning.

I've seen some broad questions asked such as "How many people will eat Curry in the city tonight?" which are used to judge someone's problem-solving abilities.

Another one could be asking what resources they use when they're stuck on a problem. I would look for an answer involving something that keeps up with current technologies, such as Google, online subscriptions to books, Q&A boards, etc. I'd be wary of anyone who claims they don't need external resources and can figure out anything, or someone whose key resource is an outdated library they purchased back in school.

A related question could be to ask what they do (if anything) to keep up with current technologies. Are they willing to invest their own time or money into improving their own knowledge and skills?

Overall, I really wouldn't trust a technical interview to a non-technical recruiter. I would be more interested in them finding me intelligent people who are capable of learning and keeping up with technology, and I'd have someone else do a techinical interview later.

share|improve this answer
2  
God, I hate the Curry questions. –  Robert Harvey Jan 18 '11 at 21:03
    
Just pick something within the ballpark and then provide that as the answer...ie..."About the same amount that will eat pad thai". –  Aaron McIver Jan 18 '11 at 21:07
    
Its more of a question to judge their problem solving abilities. A good solution would be one a non-technical recruiter could easily understand. I would never ask the question like that though... I would probably phrase it something like "if you were given an impossible task, such as figuring out how many people are going to eat curry tonight, how would you approach it?" –  Rachel Jan 18 '11 at 21:32
add comment

1) What's some of your pet projects and why did you do them? Programmers who spend some of a their spare time coding is an indicator a strong programmer.

2) How many hours of programming experience would you estimate you have? The higher the better. It takes 10 000 hours to become an expert in anything. Have them break it down for you, "I've been programming for x years, x years professionally, generally x hours in my spare time etc"

3) What's your favorite algorithm and why? Check that they have any and can rationally describe it, passion is a always a plus. Not every programmer comes in close contacts with algorithms it's true but it's a sure indicator of a pretty hardcore programmer that they do know something of a sort algorithm , string search or similar.

Logical puzzle interview questions are less revelant IMO and have little to no correlation to actual programmer performance and productivity. Passion and experience however does have a strong correlation

Not that the above questions might exclude some good programers, you'll have some false positives but few false negatives (IMO). Ie you'll miss out on some good programmers but you wont hire that many duds either and in my experience duds are more dangerous to a company.

share|improve this answer
2  
I consider myself a strong developer based upon my level of experience, past success with projects, involvement with the development community, desire to learn and amount of studying I do. Yet, I have 0 pet projects. The very small amt of spare time I have in my life I choose to devote to other tasks. As far as algorithms, I can spoute off something from my data structs course, but I honestly have little use for a specific algorithm with the .NET framework's built-ins. I consider design patterns more useable. By your criteria i'm unhireable. Consider an open dialogue with potentials instead. –  P.Brian.Mackey Jan 18 '11 at 21:58
1  
Point 1 is pure BS. Some people have children and spouses and other reasons why they cannot work on personal projects. This is a terrible way to exclude people from being hired. –  HLGEM Jan 18 '11 at 22:00
    
Even if you have children and spouses you do have some free time, maybe it's spent gaming, watching tv etc etc. If you really love programming why wouldn't you spend that time coding? No one can code all the time but really strong programmers tend to do it as much as they can –  konrad Jan 19 '11 at 4:10
    
@Brian, I'm not saying you're unhireable, but I think those questions are a good indicator of a really programmer, they might not be the only ones and some might fall through the cracks. You might get some false negatives but probably not many false positives –  konrad Jan 19 '11 at 4:13
    
(+1) Good Idea as a plus, but bad idea if considered as a requirement. –  umlcat Sep 26 '11 at 16:40
add comment

Perhaps grammar skills (as shown on the resume and cover letter) could be a helpful non-technical indicator of how well a candidate writes code. If you can write clearly, and if you pay attention to small details of grammar, those are good signs that your code will be clear and that you are detail-oriented. And good naming is really important in programming, of course.

Conversely, if the resume is riddled with grammatical errors and awkward phrasing...that's not a good sign.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.