Almost every developer interview involves a coding test.

I don't really see the need for this, as I have uploaded some code on my GitHub account, all my code is publicly accessible, so if someone wants to access my account, he/she can review all the code I have written.

Why are these tests necessary? Is there a way to decline doing them without being disqualified?

  • 4
    I generally avoid companies that require long programming tests. They are usually awful places to work. If you are just starting your career though you might have little choice. – user Nov 14 '17 at 16:33
  • 1
    I'm voting to close this question as off-topic because it is clearly not a serious question. – Masked Man Nov 14 '17 at 16:35
  • Also, are these coding tests before or after the initial interview? I think it makes a big difference. – Erik Nov 14 '17 at 16:38
  • This is a duplicate. See the linked question for some good answers. Yes, these tests are largely useless and a waste of time. But if you want a chance at the job they are offering, you need to play by their rules. shrug Or just keep looking for other places who will accept your GitHub profile instead. Your choice. – Cypher Nov 15 '17 at 3:15
  • "I have uploaded some code on my GitHub account" - Maybe they weren't convinced from your GitHub account? Many GitHub accounts have nothing interesting on them or just have forks, so it's not unreasonable to treat them skeptically. – Brandin Nov 15 '17 at 12:24

Well these tests are part of their hiring process so yes I'd say if you want to get hired by them you have to do them. Certainly that's been the case whenever I've been giving tests as part of a hiring process.

I usually give some sort of coding test to prospective candidates (although I tend to keep them small 30 mins to an hour) and if a candidate refused and pointed me to their github or similar instead I'd bin their application immediately because:

1) It makes it much harder to compare code between multiple candidates

2) The code they offer may not provide examples of the sort of thing I'm looking for

3) It positively reeks of disinterest on behalf of the candidate. If you aren't serious about being hired by me, I'm not serious about hiring you.

4) To me it also says "I can't follow instructions and I'm going to do things my own way regardless", not generally traits I'm looking for in an employee.

  • 2
    Would you consider softening your answer to say instead of I am not going to hire you, that you are going to need to address the listed points in order to be considered along side the candidates that did take the tests? – IDrinkandIKnowThings Nov 14 '17 at 16:30
  • 6
    The tone of this answer is correct. It distinguishes between people who want a job and employers who are desperate for people to fill roles. If there's plenty of candidates, you want to attract people who are willing to be appear attractive. – user44108 Nov 14 '17 at 16:33
  • 6
    @IDrinkandIKnowThings Not really - because as Snow says unless I was truly (and I mean truly) desperate for candidates I wouldn't give a candidate who refused to take the test any more time then what was required to move them to the rejected pile. – motosubatsu Nov 14 '17 at 16:38
  • How accomplished would a programmer have to be before you'd consider skipping a coding test? – user8365 Nov 17 '17 at 10:23
  • Unless I had reliable evidence of their abilities from another source (e.g I or someone I trusted had worked with them before) I wouldn't. I don't always give one - for more specialized roles I have in the past been content to just ask some in depth technical questions but for a more general "coder" role I tend to always use them. – motosubatsu Nov 17 '17 at 10:44

I have uploaded some code on my GitHub account, all my code is publicly accessible, so if someone wants to access my account, he/she can review all the code I have written.

I can get someone else code and push into my repo, having your code public doesn't help to hire a manager to hire you.

Why are these tests necessary?

It helps them filter good from bad, and I don't think anyone gives a really big test that is time-consuming unless you don't know it, if someone is good at something, they should welcome it and it is a plus that you can add it to your repo, and your knowledge even if you get hired or not.

Is there a way to decline doing them without being disqualified?

Declining means, either you have an attitude or not a team player or too committed to give new company times, all which IMO are red flags.

  • "it is a plus that you can add it to your repo" what's the point of adding it to your repo if nobody looks at it because they don't trust the stuff you already have on your repo? – Erik Nov 14 '17 at 16:57
  • 2
    +1 for mentioning the possibility of "cheating" - you can always get someone else to complete a company issued test for you, but it's a slightly higher barrier to entry then someone who could have literally got code from anywhere and posted it on a github repo. – motosubatsu Nov 14 '17 at 17:43
  • Often take-homes that are full-fledged mini-projects (front end, back end, db, dependency management framework, etc) have a large element of setting up the whole environment of a project (I refer to a certain framework, not installing an OS or IDE). You may spend hours on getting it right. It's done once every project & says nothing about how good developer you are. Often companies who throw take-homes at candidates dismiss this stage as "a few minutes" (yes, if you have it already as a template). Only then you can go & write the actual damn algorithm that may or may not be relatively simple. – rapt Apr 20 '19 at 21:08

Coding tests that last an hour or so are pretty much the norm when applying for coding jobs these days. You can't really avoid them if you want a developer role without severely restricting your options.

You could refuse and point them to your Github profile, but this would almost always mean an outright rejection.

There have been times that my inbox was full of these tests

How many roles are you applying for? If you constantly have an inbox full of these tasks, and it's only one task per company, that implies you have loads of applications on the go at once, and you're getting rejected from the vast majority of them (or turning them down yourself.)

If this is the case, then the real issue here isn't with the coding tests, it's with the number of jobs you're applying for and being rejected for. If this is indeed the case, then you'd be better off screening the roles you apply for more carefully, and putting more effort into just a few applications, rather than mass-applying and trying to spend every evening of the week churning your way through coding tasks.

  • 1
    Companies often refuse to disclose - what is the ratio between the number of candidates who were hired, and the number of candidates who submitted a decent work? Usually, it's less than 1:20. Companies claim the these tests are to find programmers who can actually program. And then....? Companies often do not disclose why they reject one's work, they do not guarantee that decent work would give you any advantage other than getting an interview. I reject all offers to do coding outside of the context of an interview. – rapt Apr 20 '19 at 21:18

is it really necessary to do and the coding tests too?

If a company requests you to do such tests, then it would be expected for you to do them. It is true that a test may not give all the aspects of a candidate, and that other things are also important when considering a recruit. However, code test are in some cases the standard procedure of some companies, where the can't easily make an exception for your case and ignore such recruitment protocol.

You can surely try ask if you can do something else. A nice way would be by politely asking "Is it possible to something instead of the coding test? I can provide several Git projects to exemplify.", but it is not likely they will agree with you and do it.

If they insist on doing so and you do not want, then I think you have no choice but to end the recruitment process.

If coding tests are really not something you like, try searching for jobs in companies that do not require such tests.

  • The main reason I have uploaded my code and make it public accessible it to save (me) some time on the proccess. I give them plenty of code to review. I just find it diffucult to understand why they think this doesn't help, while the end goal is the same, they want to see my skills – user79571 Nov 14 '17 at 15:56
  • @Lykos probably they are following their standard process. It is not like they can easily make an exception for your case here just like that. Probably the reason why they are reluctant. Expanded my answer – DarkCygnus Nov 14 '17 at 15:57
  • 3
    @Varius They probably use the test as a standard way to judge your skills against someone else, since it will likely be the same exercise. They can also design the exercise to test the skills they require, whereas your github may show off skills that they could not care less about. – ayrton clark Nov 14 '17 at 17:05
  • 1
    @Varius How do I, as someone you want to hire you, know you wrote what you have in github. You could easily have pulled that from anywhere and put there. Personally, I don't think coding tests are very useful in the interview process, but if that is what they require, then just do it if you want the job. If not, there are plenty of companies that do not require coding tests. – bluegreen Nov 14 '17 at 17:09
  • 3
    These test are required because sadly too many prospective hires can't pass them..50% of all programmers are below average, you know. – HLGEM Nov 14 '17 at 22:04

From an engineer's perspective who may be interviewing you...how am I meant to evaluate your skill or see how you solve problems if you refuse to do so in my presence?

Let's not mince words here. I suck at interviews. I was unemployed for about five months because my interviewing was so terrible (from my perspective; I know I'm a brilliant developer but interpersonal communication has always been a weakness of mine).

But that didn't mean I didn't do any coding exercises; quite the opposite.

I made sure that I met their coding exercise requests, and showcased what I had learned from past experience (including clear documentation of code, READMEs, unit tests, etc). I wanted them to know what they were getting from hiring me; a diligent worker who regarded themselves as a professional and expert, and one who understands what it means to architect the solution, test it, and deliver it in a way that makes sense to everyone.

By you refusing or failing to do that, you miss the opportunity to really put yourself out there as a stand-out candidate. I've not heard of many professional institutions hiring someone without asking them some kind of coding exercise. Let's face it - as a developer, you're going to be paid a lot of money to solve problems, and if you don't showcase how you solve (or at least approach) problems, you're not showing me that you're worth what I'm willing to pay, or more.

  • How do you know your doctor is any good? How about your insurance adjuster, grocery bagger or police officer? There's something called a resume which details the person's experience and any pertinent information. You also have the option of asking for references, is so needed. Yes, there's way to game this system, but that's what the interview is for. Today you have marathon interviews where the employers don't give a rat's ass about knowing anything about candidate as a person. The technical interview is all that maters. It's no wonder the system is broken. – ATL_DEV Jul 10 '19 at 21:08
  • You can lie on resumes, and you can falsify your references. Comparing applicants to something like doctors is entirely a red herring. – Makoto Jul 10 '19 at 21:09
  • How is it a red herring? The doctor is at an even footing with you, whereas in the technical interview, the employer is the one dangling the carrot. Resume padding is very common. Being a good interviewer is having the ability to sniff out the lies. Turning your candidates into computer programs by running them through a test case isn't going to help. There's tons of books and information online to bone up on these interviews. It's purely a numbers game. If you study hard enough, it's only a matter of time before you're asked a question you've already know the answer to. – ATL_DEV Jul 10 '19 at 21:22
  • You evaluate the doctor in the same way you evaluate a candidate - by interacting with them. You don't move forward in the interview process if you don't believe the candidate is skilled, and that's really the first question that an interview team asks itself. – Makoto Jul 10 '19 at 22:35