8

Is it normal that if one applies to a programming job, he must do some programming related task for free before the he signs the collective agreement? I think it is not nice to ask to do a job for free. Should I ask payment before I do the task or what to do?

I'm very junior in getting job.

  • 18
    How big of a coding effort are we talking about here? – Mister Positive Aug 6 at 12:36
  • 6
    is it a FooBar test, or a several day work? – Kepotx Aug 6 at 12:39
  • 19
    You may want to do some searching, there are a lot of questions on here about coding during interviews, or being given "homework" projects during the hiring process. – dwizum Aug 6 at 12:40
21

Is it normal that if one applies to programming job, he must do some programming related task for free before the he signs the collective agreement?

Yes, this is a pretty common practise in IT industry. The goal is to check the candidate's ability to complete a task similar to what they'll be required to take up on a day to day basis.

However, the coding task generally isn't very intensive (definition of intensive varies according to the role and the candidate's experience level) or time consuming, and should be doable in a 1-2 hour time frame. Anything beyond that is asking for too much.

Update: As noted in the comments and from some first hand experience, some companies may ask you to perform one or more programming tasks spanning a day or more. However, this practise is generally followed in reputable/large sized corporations or high tech startups, who generally seek specialized and/or exceptional talent.

While this clearly contradicts with what's established previously, this is a common practise. The company wants to make sure they hire a really good fit. In cases like this you get compensated by getting a lucrative and prestigious job which tends to pay pretty well.

Should I ask payment before I do the task or what to do?

Don't explicitly mention it, as such requests don't put you in good light.

However, in a few rare cases, some companies use this practise unethically to get actual work done by the candidate. If you feel that the assignment is pretty lengthy and requires way more time and effort than is typical for an interview, you may not choose not to go ahead with the interview at your own discretion.

In a few cases it is seen that companies offer to pay for the time that you spend completing the task. This happens when it requires one to a few days of effort.

I'm very junior in getting job.

It's safe not to explicitly ask for any compensation, especially considering that you are a junior developer and may not have specialized skills which the company may find valuable beyond their general expectation.

A guideline you can follow is to go for the task only if you really value the opportunity and are eager to work for the organization in question.

P.S.: By demonstrating your skills in an exceptional manner in the assignment puts you in a better position to negotiate your compensation. The assignment is generally reviewed by a senior team member or hiring manager and not by the HR or the recruiter. Thus, impressing the one who designed the test enables you to get compensated indirectly (in a recurring manner on a monthly basis instead of just one time that you may be currently seeking).

  • " If you feel that the assignment is pretty lengthy and requires way more time and efforts than is typical for an interview" It's obvious the OP may not understand what is typical here. – Gregory Currie Aug 6 at 12:58
  • 8
    "..Anything beyond that is asking for too much." I agree, but as soon as it extends over three hours and is not generic but already quite specific to the field the company is operating in, it'd start to smell fishy to me. Some cheeky companies have a tendency to use coding-assignments in interviews as free resource to improve their product or solve some issues.. – iLuvLogix Aug 6 at 13:19
  • @GregoryCurrie & Nimesh In regards to being 'good': In IT we basically never stop to learn and advance as this industry is very agile - the most important skill to nourish is the ability to quickly understand new technologies including their capabilities, limitations, syntax and methodology. The rest comes from practice, [seriousness off] and not from commenting or answering question on The Workplace instead of coding ;) [seriousness on] – iLuvLogix Aug 6 at 13:28
  • @iLuvLogix - I really disagree with the "some cheeky companies have a tendency to use coding-assignments in interviews as free resource to improve their product or solve some issues" - see my answer for an extended discussion – dan.m was user2321368 Aug 6 at 13:34
  • @iLuvLogix That may be true for some companies, but there is also a lot to be said for having experience within a domain. – Gregory Currie Aug 6 at 13:37
18

I see this concern brought up a lot, but I really have a hard time believing that any development shop anywhere uses the interview process to obtain code for any other purpose than to evaluate candidates (I'll allow that some non-developer "entrepreneurs" might exploit you, but no place with professional developers would do so). This is not based on any notion of ethics or morality, but just on pure common sense based on the costs involved.

For the sake of argument, let's assume you are interviewing with me, and that I assign you a task that takes one week of your effort to complete.

Lets say in one week you produce a piece of code with some value (or effort level - they are interchangeable), W. Given that you don't know the rest of the platform your code will integrate with, our coding standards, etc., and given that I need to review your code, test it for bugs, test it for performance, etc., it will probably take me 5W effort/value to integrate this code. If it wrote it myself, it would also take W, but then I'd have no integration costs.

Where is the benefit for me to "steal" your labor as part of the interview process? There isn't any, as it will cost me far more than the value I steal.

Focus on an opportunity to show someone how you can develop software, and stop concerning yourself with being exploited.

  • Don't forget the time taken to interview and manage the interviewee! – Gregory Currie Aug 6 at 13:35
  • Also, you beat my answer by 30 seconds :( – Gregory Currie Aug 6 at 13:36
  • 3
    +1 for the answer. While your argument holds true for any decent/serious organization, I have seen this practise first hand in some IT sweatshops. I think this practise also varies from region to region. – Nimesh Neema Aug 6 at 13:42
  • 3
    I agree with you in general, but I have personally experienced this on 2 occasions. One was some very deep SQL specific task - a bug they couldn't solve. They thanked me for being a strong candidate, but I didn't get the job, only realising later what had happened. The other time was to get real time partial webpage updates working during a day long interview. This was 2001, way before we had libraries to do this eg jQuery, Angular etc. I demonstrated it working, then unplugged my usb stick. Got that job, funnily enough. – Justin Aug 6 at 14:02
  • 1
    I would argue that a company that goes through the significant effort to set up coding challenges in a way that allows them to get free development work out of interviewees would be better suited to spend the same effort on a developer. As such it's a good way to find out that you don't want to be working for them. – xyious Aug 6 at 20:42
7

If you're in an interview, and you've been asked to do a small programming challenge, it would be unwise for you to request payment.

You have to look at this logically. To interview you, there will be a manager or HR rep, possibly one or more senior developers involved. They cost money. They will be asking you, who they have limited knowledge of the skills, to complete a task that is probably very general and would take effort to integrate into their solution.

What would be the warning signs?

  • A single or no interviewer
  • Face-to-face time with interviewers kept to a minimum
  • A large number of people getting interviewed at once
  • No technical questions were asked
  • Code that looks like it would perform a useful task and would be easy to integrate
  • Integrating the code would take less effort that writing it
  • You have heavily specialised knowledge where it's not likely they can assess you
0

No, asking for actual application code in an interview is neither common, nor ethical.

It is however, quite common to be given "Coding Exercises" to test technical aptitude.

If you are being asked to complete a task that appears to be part of one of the company's applications it can be one of two things.

One: Bad, bad, bad, on the company's part. There is no advantage for them to give this task to you as an applicant.

Two: It could be a method or function that they have removed from existing code to test your technical aptitude in a real world scenario. In this case there is zero possibility they will use your code, it is simply a test.

The latter seems far more likely, though, there are exceptions and someone somewhere may attempt to do something silly and shady.

IF you feel like this particular company is actually trying to take advantage of you for free work, decline and go interview elsewhere, it is not a culture you want to be a part of.

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