For example, in interviewing for a job, initial calls with a recruiter and the hiring manager are over. As part of the next steps, the candidate is given a short design or coding test to complete in their own time. This is what is meant by "homework".

My personal opinion is that it's an inappropriate use of a candidate's personal time and reflects poorly on a company's attitude towards work-life balance. I also think it's unprofessional, in that a candidate is being asked to do work for free, even if it won't ultimately be used. As a candidate, I've also had the situation where one company asked for a design test, thus extending their interview process, while another made an offer before the test was complete.

Edit: Just to clarify, it's not a dev project. I'm just using both as examples to make the question universal. Also, my point on the time is not that use of a candidate's time is required; it's on inappropriate use of a candidate's time (as opposed to use of both the employer and candidate's time together).

  • 4
    You certainly have the option to say no, but the hiring company gets to set the "price of admission". I've personally said no to interview opportunities because I didn't want to jump through some of the expected "hoops". This kind of "commitment" helps weed out those who can't and those who have minimal interest from those who can and have genuine desire to work at the company Dec 11, 2015 at 21:30
  • Yes. I guess one of my other issues is that it's so one-sided. I want to know how they work too. Maybe their work or their processes aren't up to my standards, and with this I can't tell.
    – user70848
    Dec 11, 2015 at 21:38
  • 2
    Certainly you can tell. You also have the same "right to inspect" that the hiring company has. When I use a homework assignment such as this, it isn't the actual test. The actual test comes with the review of the material which you should be quizzed on. Dec 11, 2015 at 21:42
  • 1
    This is a statement not a question.
    – paparazzo
    Dec 11, 2015 at 22:07
  • 2
    I don't know if it is inappropriate, but much like homework in elementary school, it may be borderline useless. Anyone who is truly stumped can just pass it off to a "smarter" friend. The company might only end up testing how good someone's network is, which I guess is something, but not really what they think they are testing. Dec 11, 2015 at 22:40

4 Answers 4


During the interview process, both the employer and the candidate are investing time and energy in the process. Some of this is time that is spent on their own, such as the candidate preparing a resume or the employer reviewing resumes. Some of that is time that that is spent together, where both the employer and the candidate ask questions to help them make an evaluation. At every step of the process, it is valid to ask whether a particular step meets the goals of the employer and the candidate and what other methods might also meet those goals.

In the particular case of homework, I would not categorically state that it is or is not appropriate. I assume that both candidates and employers are doing some amount of work on their own to prepare for the interview process. When evaluating whether a homework assignment is the right step to take in the interview process, I ask the following questions:

  • What specifically do we want to learn in the homework assignment?
  • What other ways could we learn this?
  • What is the benefit to both parties in completing the homework assignment?
  • What is the time investment associated with it, and with the whole interview process?
  • Is the homework assignment structured in such a way that its usage is limited solely to the scope of the interview process?
  • Are there unintentional side effects of the homework assignment, such as filtering out candidates who would otherwise be well-qualified?

It can be difficult to structure a homework assignment to allow the employer to assess the candidate, to keep the time investment appropriately contained, and to ensure that there are no unintentional side effects. I've seen plenty of bad homework assignments, from ones that expected candidates to spend a whole weekend on them to ones that were simply tasks taken from the project and thus felt like the candidate was doing work for free.

Speaking personally when I have been a candidate, if I get a homework assignment, I don't reject it out-of-hand. I evaluate it, just like I evaluate every step in the process to determine if I want to take part in it. I have chosen not to move forward with an interview process because the requested homework assignment didn't feel appropriate to me. There are other homework assignments that I have chosen to complete. In either case, I am clear about what drives my decisions and what I want to accomplish. Being clear about my own reasoning during the interview process helps me evaluate whether the position is one that will be a good fit for me.


I'm afraid I can't agree with you on that one.

A company has every right to test your skills before hiring you. Whether they ask you to complete a design/programming test during the actual interview, or take it home and bring it back is entirely up to them.

In a way they're doing you a favor by letting you take it home. You can probably relax and do better on it in a familiar environment, rather than on the spot during an interview.

To address your other concerns:

  • Work for free - is going in for an interview "working for free"? This is exactly the same thing.

  • Not being used - it is being used to assess whether you are worth hiring or not.

You're coming across as pretty bitter. Just look at it as an opportunity to prove how much better you are than your competition ;-)

  • +1. If others jump on this, I'll probably withdraw my answer. You're saying it better than I am. Dec 11, 2015 at 21:30
  • @user70848: This isn't WesleyLong's answer, and the penultimate sentence isn't at all attacking. It's simply an indicator of the impression the author of this answer has gotten while reading your question. Rather than taking it personally, it might be more fruitful to try to understand WHY this person sees your question as "pretty bitter". Also, I am the one who commented to you, not the author of this answer. Dec 11, 2015 at 21:40
  • 3
    @user70848 - I was commenting on the answer, not on your comment. However, the amount of anger and vitriol that you're coming across with are disturbing. You asked a forum for an answer. We're going to respond with what we will. We do not have to fit our responses within your narrow template of what's acceptable. Given your hostility, I don't think whether or not you do a take-home test is going to land a position for you. Dec 11, 2015 at 21:40
  • @WesleyLong - I guess it's pretty obvious that I won't be getting the answer for this question :-P
    – AndreiROM
    Dec 11, 2015 at 21:44

Short answer: homework assignments are neutral in themselves; neither appropriate or inappropriate, professional or unprofessional.

Long answer: there are basically three kinds of "homework" assignments.

  1. Uncompensated and unused by the company.
  2. Compensated and at least potentially used by the company.
  3. Uncompensated (or undercompensated) and used by the company.

The only kind to avoid is the last, as even if they are genuinely interviewing and not just looking for free work, they have shown themselves to be both cheap and at the very least unprofessional, if not outright dishonest.

Uncompensated and unused is just asking you to invest time in showing them that you have the required abilities, no different from asking you to come in for an interview; you will invest time in doing the work, they will invest time (possibly less, possibly more) in evaluating the work you did.

Compensated and used are known as evaluation projects, and can be beneficial for both sides. The terms should be appropriate for the work done -- i.e. if the position pays X, then you should at a minimum get X for the project, regardless of whether they use it or not. This gives you a chance to judge the kind of work they will be having you do and how they will interact with you. It gives them a chance to see what you can produce and how you work with them. Do you you ask appropriate questions, do they provide sufficient details? From the employees side, this is all good--typically evaluation projects will only be requested of serious contenders, you get paid for it. So, it's like a long interview, but you get compensated. From the employers side, it can be a bit expensive and it is difficult to come up with an appropriate project--it can't be too long, it can't be too easy or difficult, if you don't do a timed limited project you don't know if they did it in two hours or two days, if you do limit the time you don't know if they missed it by 5 minutes or two days. Typicality companies work around the downsides of this by doing regular interviews (no paid homework) for a contract to hire positions thru a recruiter or temp agency.

Uncompensated (or undercompensated) and used -- they are ripping you off. Run away.

  • Do you think uncompensated and unused could be replaced by a portfolio review?
    – user70848
    Dec 12, 2015 at 23:43
  • @user70848: not really. The key reason to be asking you to do some actual work, is so that they don't have to take your word for the fact that you can do actual work. When you hand over a portfolio, you are implicitly saying "this is my work, not Alice's, take my word for it". While you might get Alice to do your homework as well, it's a least harder to fake it. Also, the requirements might be intentionally vague, to see how you approach the problems -- do you assume US-ASCII, UTF8 or do you ask?
    – jmoreno
    Dec 13, 2015 at 0:01
  • See, asking you to prove that the work is actually a candidate's work sounds as though they are assuming someone might be lying and that is where I feel that the test is inappropriate. Granted, it is true that some people do lie to get a job.
    – user70848
    Dec 13, 2015 at 0:10
  • @user70848: yes, they are assuming that someone might lie, and you just agreed with them! You are taking it personally, as an impugnation of your character. It's not. They don't know enough to judge you or to be suggesting that you are a liar, they are simply saying "do this and we'll know what you can do". And uncovering liars isn't the only benefit, although simply having it can drive those away, it also shows how you work. A portfolio is something that you polish, for weeks or even years. A homework assignment is done in a day or two at most.
    – jmoreno
    Dec 13, 2015 at 0:26
  • It's interesting reading through the different POVs on this. You are the first person to state that the homework is really about questioning the character of the candidate, whereas others have suggested that the assignment is more about the discussion afterwards. Very interesting.
    – user70848
    Dec 13, 2015 at 0:33

Are drug tests unprofessional? What about interviews? What about job applications? Some of your time is going to be required when applying for a job..

Interviewing ain't great

Programming interviews are tricky (or broken, depending on your opinion).

Evaluating skill comes down to a few completely flawed ways. Normally you get trivia tests or other pointless discussions that don't even attempt to answer, "can you develop good software?"

I would much rather a company review code I wrote than waste my time with a huge set of in-person trivia tests or interviews, etc. Ideally, this is a github or other item. But for many people who work on private code or don't have an open source contribution a coding interview is the only way a company can see their code.

If a coding test outside of work allows that? It's great. It is far more beneficial to me to do this than take more time off work or rearrange more of my life. It also avoids putting people on the spot (how many people can relate to making dumb mistakes under interview pressure you'd never make in a relaxed environment? why penalize them for that).

How serious are you?

Another important benefit is that a coding test probably narrows down the field to only get people who are somewhat serious about the job. Is it perfect? Of course not. But there is no perfect way to find people's abilities and interest.

It's like homework in school. Oftentimes this isn't really useful. It mainly proves you can jump through beurecratic and process steps...

... it turns out this is a very useful skill in getting project work done in the real world.

Unrelated anecdote

Anecdotally this reminds me of music auditions I used to do. When I auditioned, I normally had to prepare pieces which were completely irrelevant to my "job" - but that's just how the process worked. It was a way for them to see how I performed and could prepare. I spent many hours on these (more than I ever will for software dev position interviews).

  • 2
    "How serious are you"... There are lots of employers out there. I am never serious about wanting a job with one particular employer. I demonstrate to employers how good I am, they can make an offer, I pick the best offer. From the moment I am employed to the moment I quit or get laid off I am serious about working for them. The moment before and the moment after, I'm not.
    – gnasher729
    Dec 12, 2015 at 13:25
  • This is a thoughtful response, but I'm not sure it answers the question. The question was: Are homework assignments appropriate? Separately, I also provided reasons for why they might be considered inappropriate. The prefix of your answer is about the reasons, not about the question.
    – user70848
    Dec 13, 2015 at 0:02

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .