Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What would be a good sample project to ask a prospective programmer to code during the hiring process?

Tags:

php

My understanding is that asking for a work sample is a good way to determine if someone has the skillset you are looking for, as some people just interview well. So I want to ask potential developers to write some sample code for me.

I'm looking for ideas on what kind of small project would be something they could do in an hour or two, and would show that they have a good grasp of OOP, good coding practices, etc. And what to look for once they finish - how to evaluate it fairly and usefully.

For context, I'm a small business owner, interviewing prospective developers, for PHP development on internal projects. I can code PHP but am not an expert (some of the work is refactoring code I've written to be better structured and consistent), and so I'm also looking for what to look for when evaluating the samples, given that I'm not a trained or super experienced programmer.

Especially for people who have done hiring of this type before and used this method.

I was also thinking I could give them some code to refactor, and see how they do on it. Has anyone ever given a refactoring test as part of the hiring process?

Clarification: I'm not talking about coding during an interview. I'm talking about coding instead of an interview. For context the inspiration for this question came from this article in FastCompany about how work samples are better predictors of job success than interviews:

Why It May Be Wiser To Hire People Without Meeting Them http://www.fastcompany.com/magazine/136/made-to-stick-hold-the-interview.html

like image 417
Emma Arbogast Avatar asked Jun 26 '09 03:06

Emma Arbogast


4 Answers

I would create a not necessarily good application and embed some bugs. I would come up with some simple functionality to be added to the program.

Does the applicant find some bugs?

How does the applicant's code integrate into the existing code?

Does the applicant get stuck on something that doesn't really matter?

Does the applicant adapt to the coding standard of the existing code?

After this exercise, discuss the code with the applicant. This may be more valuable than the actual code.

NOTE: with regards to @bpapa answer I would make sure that problem is novel and obviously not to be used in production.

like image 67
jrcs3 Avatar answered Oct 04 '22 21:10

jrcs3


Personally I would refuse to do this when asked. An interview is one thing, and doing programming questions on paper to asses technical knowledge is fine, but actually writing some kind of application for somebody is billable and I wouldn't do it for free. Even if it only is supposed to take an hour.

I think you should focus more on what the person has done in the past, and ask technical questions that you know the answers to (since you said you have limited PHP knowledge and want a PHP developer).

like image 36
bpapa Avatar answered Oct 04 '22 20:10

bpapa


I would heed Joel's advice that giving homework assignments for interviews just weeds out the best programmers (paraphrased from his book). The better programmers have a lot of options and so won't want to go through the exercise of a programming assignment. They just won't apply. That will leave you with the mid-competency people. Unfortunately, in my experience those are the ones most likely to try to look better than they are and if you aren't an expert yourself, the ones most likely to mislead you.

Here's an alternate option. Have them point you at some work they have already done. Not necessarily the code, but the site. During the interview, ask them questions about how they coded it. What data structures did they use? How were the classes or functions organized? What problems did they have to overcome?

Then as traditional programming questions in the interview that they could answer for you ont he spot. This way you can gauge their understanding and their syntax. The two don't have to be the same question.

like image 25
Steve Rowe Avatar answered Oct 04 '22 20:10

Steve Rowe


If you are not an expert then I would suggest you be careful about trying to evaluate other developers. You should probably figure out a better way to assess the dev skills of someone else if you are not that comfortable with your own level.

I am not sure there is a good solution for you.

I'd make the coding samples very straightforward and not have it take an hour or two. Simple coding exercises that take a few minutes should be sufficient - combined with other discussions about best practices, frameworks, design questions, etc.

like image 35
Tim Avatar answered Oct 04 '22 20:10

Tim