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 read a lot of different articles on how to locate good programmers, including the Joel Spolsky and Steve Yegge stuff. Overall I feel we have a pretty good interview process. We ask good questions and we have a coding test problem that we give to candidates to help screen out people that can't actually code; this problem takes a little while and is a "take home" where the candidate is given a few days to return a solution.

Overall this process has worked fairly well with us, but we have still landed an occasional dud on the programming front. In at least one case I now suspect that the solution provided was not the candidate's own, but there would be no way to prove this out; nor would it matter as such.

We are in an environment where once someone is hired it is incredibly difficult to let them go, so this makes it all the more critical we end up with a good candidate.

So I would like to add a coding exercise into the actual interview and have the candidate work through a solution in a pairing style environment with an existing team member. I'm looking for something that is not terribly complex; something any competent programmer could solve in about an hour, but also something a little more difficult that the fizz-buzz problem.


I've looked at the following questions as well as other similar questions, but most are slightly different in that they are not asking for specific problems that could fit within the time constraints and are well suited to pairing, or I haven't really seen good answers provided.

Code During Interview

Favorite Interview Question

Passionate Programmer?

Fizz Buzz, really?

And many many others...

share|improve this question

closed as too broad by gnat, Thomas Owens Jul 14 '13 at 23:56

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  
the third paragraph is the true problem, tell HR to use probationary periods (say a year) with a temp contract after which the new hire is evaluated and hired for a permanent position, –  ratchet freak Jul 14 '13 at 23:19
    
IIRC, there's a bunch of questions similar to this on Programmers.SE already... –  Izkata Jul 14 '13 at 23:39
    
@ratchetfreak, agreed that it is a big part of the problem; but that is a part that is out of my control for the time being. –  bigtunacan Jul 15 '13 at 0:17
    
@Izkata, I have found quite a few questions that are from an interviewee perspective of showing their code. And I have seen plenty of "how can I find a good programmer" questions on here. I haven't seen anything quite like what I am asking for. –  bigtunacan Jul 15 '13 at 0:21

2 Answers 2

Give the the take home work and ask them to submit it as you currently do. Then get them in and either ask them to fix the defects you find, or change the requirements slightly, and implement the fix/change in a 1/2 hour interview. Go though a code review process with them in another 1/2 hour. It will be pretty obvious if it is their work or not.

share|improve this answer
    
Hadn't considered that, but it is a good idea. Thanks. –  bigtunacan Jul 15 '13 at 0:32

Even though you didn't mention Jeff Atwoods Blog, I'm sure you've stumbled upon this fine piece: http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html

Personally I would think (no hiring experience) that one can get the best assessment of coding ability by looking at previous work; That is, GitHub Repos, other OpenSource stuff, something they publish on their website, or even specifically selected samples. You could also ask them to pick out particularly challenging or interesting work of theirs and ask them to explain the challenges and solutions they chose. If someone doesn't know his sh*t, it will be obvious, and you will get an idea on the overall experience of the candidate.

share|improve this answer
    
Works - until you discard the perfect candidate because they have worked their entire career in closed source environs stitched up in NDA's and DOD confidentiality contracts... –  mattnz Jul 14 '13 at 22:59
    
True that, but, reading my answer again, one might say the key should be to have a person talk about programming and to be specific about it. –  phi Jul 14 '13 at 23:04
    
I have read the Atwood post you mentioned, and am aware of the fizz-buzz dilemma. Like @mattnz said though; looking at open source as criteria often times eliminates some really good developers. Some of the best programmers I've worked with put all of their time and effort into closed source proprietary systems; if asked to show code in an interview they may feel uncomfortable due to NDA's or moral objection. If it was proprietary code and they were willing to show it to me in an interview, then I might end up questioning their moral character. –  bigtunacan Jul 15 '13 at 0:36
    
last 10 years I worked for companies that do not allow to publish on any public services, code I wrote (because it's company code and it's commercial). I wrote some programs for myself, but I don't see any reason why I should put it to github (or some similar service). So if you would ask me to show some code from my previous work - there's is none I can show. And IMO it's wrong, if you will pick 5 years old code and will assume that is code I would write today.. Of course there's probably a bright side of that - I wont work in such place. –  Dainius Jul 15 '13 at 8:32

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