7

My company is looking for a new web developer and we are eager to find someone that would be efficient as soon as hired and capable of making quality code. I will have to take interview and I would like to give them an assignment, so I can see

  • their general programming skills
  • if they are able to use CSS
  • the general quality of what they product
  • and probably so much more

The only problem I don't have good ideas of what to give to them. Some of the candidate would probably be working in some other company so it should be something like 8 hours work at maximum (like one week end) but it should be complicate enough to show their skills.

So far I was thinking :

  • a contact manager
  • a CD/BOOK manager
  • a blog ?

guys if you have some ideas opinions, please share!

Also the assignment would be in PHP using the Zend Framework, so it has to take in the calculation candidates might not be so experienced with the framework.

RageZ
  • 26,800
  • 12
  • 67
  • 76
  • 7
    Everyone hates coding tests at interviews (even Joel). 8 hours is far too long (and might not be enough for some of these). I agree with John, if you asked me to code for 8 hours at an interview, I would walk out on you. And if the coding takes 8 hours, what about the rest of it. Why not just do a traditional interview, with maybe a max 15 minute code test if you must, then give them a probation period. If they are no good, you can sack them in the first week. – Mawg says reinstate Monica Feb 19 '10 at 02:36
  • Btw, I prefer trust - most interviews I have had (every 6 or 12 months of 25 years freelancing in embedded systems), they explain the job and ask me if I can do it (they know that I can from my CV). I never lied once, told them any shortcomings; maybe I can do most of it, but not a certain part. Why lie? They will find me out and sack me (easy to sack freelancers), and I will be nervous & stressed until they do. But maybe that's just me (and, yes, that's how I interview others too). – Mawg says reinstate Monica Feb 19 '10 at 02:39
  • Sounds like a duplicate: http://stackoverflow.com/questions/1047232/what-would-be-a-good-sample-project-to-ask-a-prospective-programmer-to-code-durin – gnovice Feb 19 '10 at 03:01
  • @nawg: I agree you can sack some on first week but you have to get back to find new candidate and you've lost a week, I would prefer at least to take some guarantee before going to the whole hiring process. – RageZ Feb 19 '10 at 03:05
  • 1
    If I turned up for an interview and was asked to put in a full days work writing code, I'd walk out (or get them to sign a contract to pay me my usual daily rate). – Quentin Feb 19 '10 at 13:56
  • It is VERY BAD IDEA. Only the better candidates will be turned off leaving only the desperate candidates. I blogged about this https://blog.raychenon.com/companies-that-give-take-home-tests-before-interview-review-your-hiring-funnel – Raymond Chenon Jun 30 '20 at 15:55
  • @raymonchenon no disrespect but let's say between white board test and home assignment, I'll take home assignment hands down. White board interview is a plague of our industry... – RageZ Jul 01 '20 at 05:38

5 Answers5

15

I don't think you should give them such a long "test". In my opinion if you want to do something like this, make it a simple 5-20 minute application. Perhaps a small address book manager that stores name/number and maybe 1-2 other fields. But nothing too complicated. And tell them that it only needs simple styling to look "ok" but nothing fancy is required. If it were me, I really wouldn't want to do "homework" for an interview.

BlakeWilliams
  • 940
  • 12
  • 20
  • 7
    I'd have to agree with this. Unless the position was in some way incredible or I needed a job, I probably wouldn't spend 8 hours of side work just to get an interview. – John Feminella Feb 19 '10 at 02:04
  • I kind of agree but the problem is that, if I give only 1/2 hours to produce something they would probably stressed and product code worst then they would do in a normal situation, I am note interested in candidate capable of doing some hackathon, just capable of doing some clean coding in a normal amount of time. – RageZ Feb 19 '10 at 02:09
  • plus I didn't mention but my company is really into the interview process, to get me it took 6 interviews and one by phone with some guys on another continent, so anyway the person who is going to be hired would have to spend lot of time to get the position – RageZ Feb 19 '10 at 02:10
  • Give them a day or two to do it if you want. But a huge project really isn't the way to go. It is a lot of trouble just to code something up for a job. And even then, it could show how he works under time constraints and pressure which could possibly be a plus. – BlakeWilliams Feb 19 '10 at 02:12
  • 4
    Multiple interviews are an expected part of the process. Free work never is. – Alana Storm Feb 19 '10 at 02:13
  • @TheMoonMaster: I see your point so kind of on place test, so it leave my main question unanswered what kind of test would be good ? – RageZ Feb 19 '10 at 02:15
  • Personally, I would test them on the basics. I would ask them to create a small application that interacts with a database to show that they can code. Like my first comment an address book would be nice. Just ask them to make a small address book that allows you to add edit and delete entries. Let them create a Database table (PHPMyAdmin) and add the rows that you tell them. I would suggest requiring a first name, last name, phone number, address, and zip code. Then let him code it up and ask him to comment it well. Print out paper with clear requirements so they doesn't get confused. – BlakeWilliams Feb 19 '10 at 02:31
  • @TheMoonMaster: oky look good to me, I will have to work out the specs. – RageZ Feb 19 '10 at 02:48
10

I'm an experienced software developer who would fit your description, and I'd walk away from the interview the moment I was asked to do any unpaid work that would take more than an hour. Only the desperate and/or inexperienced are going to bite on something like that, and neither of them are going to be able immediately contribute on your project.

  1. Ask them to send a code sample

  2. If they don't have a code sample they've cleared with previous employers, ask for a personal code sample

  3. Google them and find the kind of stuff they've produced vs. what they've sent you

  4. Ask for a technical reference, and ask the reference what kind of work they've produced

  5. Hire them on a contract-to-perm/part-time contingency basis. If, after two weeks, they're not living up to your expectations, end the contract with no hard feelings either way.

Alana Storm
  • 164,128
  • 91
  • 395
  • 599
  • Agreed - particularly if it was some rote boring dull project, like yet another address book. Now if the project were *interesting*, I might sink some hours into it... – Philip Kelley Feb 19 '10 at 14:46
  • 2
    If you'd walk away from an interview the moment you were asked to do any unpaid work without thinking about how interesting it was or what the job was going to entail, that's not desperate or inexperienced, it's arrogant and a little childish. I try to offer interesting problems to solve that require some algorithmic thinking - I don't give a damn is someone can drag and drop an address book together. But good candidates who find a potentially great job will put in a couple hours to do something that they ostensibly love to do. Mercenaries need not apply. – cynicalman Mar 09 '10 at 14:34
  • If it was an interesting problem it wouldn't be unpaid work, it would be a chance to think about an interesting problem (irrespective of the interview process). – Alana Storm Mar 09 '10 at 15:31
6

I don't think many of these answers are from the employer side of the relationship. Writing a function on a whiteboard gives me a tiny glance at someone's potential, and essentially no real picture of efficiency. There's always a chance that they've memorized a really cool way to reverse a string in place and remove duplicates from a list and count the bits in a byte because those questions are all over the internet.

I've had interviews with people that turned out to be nothing but posers (I guess liars would be a better term for it), so I think it's incredibly important to have some kind of tangible piece of work. I'm not saying 8 hours, but it gives you a few better hints:

  • How is it packaged - a zip with a build? Or a text file pasted into an email.
  • Is there any documentation?
  • Is there a sensible algorithm or is it brute force?
  • Are there objects or is it a whole mess of static gunk in one class?

We're hiring Software Developers that need to be able to design as well as code -- the probation period should not be the first time a person writes more than a method for you - by the time an ass is in a seat, you've spent a lot of money just to find out they get lost trying to write a method with business value.

I'll admit that people can fake it on assignments (this is usually, but not always, pretty easy to flush out in a post-assignment interview), I've had far more success hiring people with good code assignments than hiring people with a great resume and great interview.

If the job isn't important enough for someone to spend a couple hours writing some code (which we ostensibly love to do anyway, right?), then I'm glad they wouldn't do it, because I wouldn't hire them.

cynicalman
  • 5,861
  • 3
  • 30
  • 30
  • I agree to this. I presume candidates won't really pay much attention to documentation when all they got is 30 minutes. However, I would assume candidates will do their best if they got an evening at home to prepare work for an interview. That work could, I believe, be regarded as a sample of the coding style and documentation style which that particular candidate could be assumed to deliver in "real life". – sbrattla Nov 20 '11 at 19:00
  • 1
    You can also assume that you will loose some reasonable candidates who are not willing to give up their spare time just to get the chance to interview with you. – wobbily_col May 27 '14 at 14:10
4

It would probably be better to have them write some code on a white-board in person than a take home assignment. You can learn a lot more about the candidate that way, such as how efficiently he/she solves problems and thought process.

Giving them a take home assignment doesn't really give you a clue as to how efficient they are. You could have two candidates, both of whom turn in the exact same thing, yet one of them did it twice as fast. You would have no way of knowing.

I have to agree with the other answers: if an interviewer asked me to do a take home assignment that was too long, I wouldn't do it.

Ryan Thames
  • 3,204
  • 6
  • 31
  • 32
2

As others have written, asking people to do so much work for free is insulting.

Assuming you can find some victims, how confident are you that you would be able to objectively esatblish which one produced a better finished article?

Why are you so obsessed about the Zend framework? I would much rather employ someone with a solid understanding of programming, good problem solving and communication skills than someone who can only demonstrate competence with a very specific set of tools - presumably tools where you already have a strong skills base.

Indeed one of the things I look for in candidates is what new knowledge and interpretation they can bring and how it might complement the existing team. I would even value good knowledge of procedural, OO and non-procedural programming alongside knowledge of HTTP over specific skills in PHP.

When I interviewed candidates for PHP programming posts, I had a carefully prepared PHP script (about 1 page full) which was lousy with bugs and bad style (using register globals, calls to header after output started, functions which are not called, using numbered instead of associative arrays, function args in the wrong order, using computationally expensive functions when simpler ones would have surficed....) which only used common PHP function calls and gave them 30 minutes (with access to a internet connected computer) to identify what was wrong with it.

This also meant that they could carry out the test in controlled conditions.

I would hope it was evident to the candidates that this was exclusively a test of their abilities rather than anything I might profit from - and debugging code is a lot harder than writing code.

C.

symcbean
  • 47,736
  • 6
  • 59
  • 94
  • @Symcbean: thanks for your answer, I release asking for a home work style thing is not a god way to go. I will go to some test after I have to workout the content! – RageZ Feb 21 '10 at 01:42