I am desperate for a way to screen my interview candidates (and weed out the incompetent).

What I am really looking for is a good solid coder (entry level). But asking a user to code in a phone interview does not work out so well. (And we have been told by HR that we cannot use online screening tools.)

What kind of phone interview questions can be asked that will prove that someone knows how to write a basic class and method?

+7  A: 

that depends on the technologies being used. Dont ask difficult questions. Ask them questions that can be answered in a sentence or two.

Things like

What is an interface?
What is encapsulation/information hiding?
whats and abstract class (java)
whats a closure (javascript)
whats prototypal inheritance (javascript)

what does IoC mean (Spring, Inversion of Control)

Make sure that if they have something like hibernate on their resume, you ask them what ORM is, what the session is, etc. Its amazing how many people lie on their resume.

Basically you just want to verify that they havent lied on their resume and have the basic knowledge you would expect from them. You don't want to ask them complicated design questions. You are screening, not interviewing. If they know the basics then you can bring them in for a more detailed interview...

edit -- i thought of one more thing. Dont spend more than 20-30 minutes on the phone with them. It shouldn't take that long to figure out if they know what they are talking about or faking it.

+2  A: 

When I had a phone interview (Java), it went as follows:

  • some personal staff
  • programming experiencies
  • concrete questions: polymorphism, inheritance, Proxy pattern, abstract class vs interface
Zoltan Balazs
+5  A: 

I'd be more inclined to ask about their approach to coding rather than specific coding questions.

  • How would they go about writing unit tests?
  • Do they know what mock objects are?
  • What design patterns have they used, and why?
Mark Baker
+4  A: 

Assuming you are looking for a programmer in object oriented programming,

I would recommend you to start off your interview process by asking some basic questions in object oriented programming.

Ask him why inheritance and why polymorphism.

Polymorphism can be one place where in you can find his knowledge depth.If he quotes a standard textbook quote then go ahead and ask him an example for polymorphism.

Try to test his analytical skills using some analytical problem.Often people with good analysing skills have success in programming.Try to find some nice problems where the answer is available in iterations.If he can solve a problem by 20 iterations ask him for more efficieny.Here are some examples for good puzzles.

Also try asking him some fundamentals in multiprogramming.Ask him how can you start a new thread?What is runnable etc etc?

I think these are some of the skills which you want to have in your r would-be programmer

+1  A: 

Have you you ever tried sending candidate a list of online questions or a test that they can take and you get emailed with the results ? I know there are couple of sites for screening candidates but this site Geek evaluation has good technical questions . You can mix and match topics for eg Java + Oracle + JSP.

Pre Screening Candidates

If not happy with questions, you can create your own questions.

The first 10 tests are free.

+1  A: 

My phone screen is typically more of a discussion on motivations, goals, and desires. I ask a handful of weeder questions (important things to the work we do is understanding hexadecimal (incl. two's complement), polymorphism, and basic linear algebra), but I save the "real" work to the "written" test.

I have a file with a dozen or so questions that ask for open ended discussion-style answers, along with feedback on the difficulty of answering the question and the candidate's feelings about the relevance of the question (so that I can tune it as I get negative responses). These questions expand on the phone screen style of questions but in a language agnostic way. One in particular that I remember is a question asking how one would model an ecosystem like a desert plain; how would one "codify" the animals and other life on the plains? This question alone brings substantial insight into a candidate's thought processes while coding.

+1  A: 

On phone interviews, I keep them to 15 minutes.

For entry level web developers, the two make-or-break questions I ask in an in-person interview are very simple.

  • Here's an array of integers. Write a method to sort it. Most interviewees try for insertion sort after a minute of thinking, and most of them screw that up. I accept insertion sort, as waiting for someone to give a merge sort or quicksort answer will take dozens of in-person interviews.
  • Please write me an implementation of Java's Vector class that supports add, get, size, and clear. You can use any data structure you want. Most interviewees also botched this one, and had no idea at all what to do.

But my favorite question is even simpler.

Tell me about the last thing you did at work or school that you were really proud of.

It either needs to be technically impressive or you need to seem pretty damn proud of it. If you've got both, odds are I'd give you the thumbs up for a job.

Dean J