Developers - why should you accept interview coding challenges?
This is perhaps one of the most polarising topics in tech recruitment today; and we’re not just talking about debates between employers, recruiters and candidates… but across the programming and developer communities as a whole.
The concept of using coding tests comes from a good place - but the reality of facing multiple code challenges during a job search, for some developers, can be more than a little frustrating.
In this article we’re going to discuss the arguments for and against this form of assessment, with insights from consultants at Caspian One and exerts from forums and other articles on the subject. If you would prefer to discuss this topic with one of our consultants, get in touch.
To start with this article presumes that you, the reader, knows what is meant by ‘coding tests’ at interview. If you’ve not experienced these previously, are uncertain to the meaning or are looking for best practices… we recommend reading THIS first before continuing.
You then have ‘Julie’ our hiring manager. She’s been tasked with locating senior Java developers for a new team that will be working on a business critical project. Julie needs the right people fast, with role suitability both from a capabilities and cultural perspective. As such, Julie has to mitigate her hiring risks wherever possible. Finally we have ‘Mark’ the consultant acting as an intermediary between Dave and Julie.
Mark and Dave have a long established relationship together, so when Julie tells Mark about her Java dev needs - he immediately knows who to contact. Dave’s CV is submitted and unsurprisingly Julie is keen to interview him; after he completes a two hour Codility exam.
From the developers perspective;
“It’s a time commitment thing. They’re being asked to commit quite a-lot of time; in some cases we have tests that are up-to 4 hours, they haven’t spoke with anyone at the company - all they’ve seen is the job spec. We’ve spoken to them, but it’s not the same… they haven’t got anything really, from the client. They’ve got no buy in, they just feel like they are being asked to do all this upfront with absolutely no real guarantee of anything coming from it.”
“I too have 10 years experience and don‘t mind proving it in a half-day of work. It also gives me the chance to see how my potential future colleagues work.
“Whether you are for or against the practice of code tests, they exist and they are a part of today's developer culture. And they aren't 100% bad. Statistically, I myself have landed a fair percentage of jobs after taking a code test. As unfortunate as it may be, I have to attribute some of my current financial position to a willingness to complete them (and basically work for free).”
Main arguments made by devs AGAINST code tests;
- TIME. Tests are time consuming, each often taking hours to complete - which can quickly add up if you’re applying to multiple vacancies. There is also the value of time to consider; many devs feel employers don't appreciate that time has an attached value. These are by far, the most common concern.
- GUARANTEE. There is no guarantee that investing time in completing coding tests will result in anything, even a next stage interview.
- PROOF. Why should an experienced developer have to prove his/her worth? “I’ve been doing X,Y,Z for 10 years at companies A, B and C - I’m to senior to complete these type of assessments.”
- OPPORTUNITY. Isn’t there a skill shortage in IT? Why should I waste time on tests when I can just wait for another opportunity to come my way.
- UNNATURAL. Coding tests can feel unnatural. You’re not working in a ‘normal’ environment, there can be time limits or people looking over your shoulder, you can’t just Google the answers, etc.
- FREE LABOUR. “You want me to spend hours of my time writing code, for free?”
In response, arguments made by devs FOR code tests;
- EVIDENCE. Coding tests allow devs to evident their capabilities. Not just in a language, but in their approach to problem solving and the quality of clean code produced. Most coding tests are designed to provide concrete, uniform evidence for a developers suitability, and can help reduce the overall timeframe from application to offer.
- COMPETITION. Successful completion of coding tests to a high standard can quickly position developers above competitor applicants, particularly given that most tests assess candidates to exactly the same standards.
- CULTURE. If you have to pass an employers coding test, then so will all of your new co-workers, which can be a good indicator of the skill levels of developers you’ll be working alongside.
- FUN? It’s not uncommon to hear that some developers find coding tests to be fun challenges and good ways to practice coding.
- INVESTMENT. An investment in time completing coding tests can be a good indicator to employers about your level of commitment to securing the applied for job.
From the employers perspective;
“Hiring is one of the most time-intensive and critical things we do. This means time is precious. We can’t waste any on interviewing or hiring the wrong people. That’s why every engineering candidate we talk to goes through a set of coding challenges. We know there are different schools of thought on this (and some pretty passionate opinions) but it works for us. If someone is going to get weeded out of the hiring process, best to weed them out early. It seems to be better for everyone involved.”
“Sometimes giving someone a project to do at home, better simulates a more typical work scenario. A task that a person does on their own with a due date that requires a skill set required for the job that the candidate must report back on. Better yet be doing a code review to see how they receive constructive feedback and allow for the candidate to catch their own errors as they talk through it. (I know pull requests are more common but still it applies)
“Coding tests can be a turn off for top tier devs we work with, particularly those with experience in hedge funds and investment banks. However quite often these tests are institutional, and if one developers not willing to complete a test there are always other people willing to do so”.
Five benefits of coding tests for employers?
- EVALUATION. Employers have the capacity to thoroughly evaluate a developers true coding skills beyond what is stated on their CV or portfolio. These can be refined to the requirements of a specific role, helping to quickly remove incapable devs from the interview process.
- PROBLEM SOLVING. It’s not always about a perfect score, often hiring managers are equally interested in how you reached a solution; providing insights on a developers mindset.
- COST. By ensuring a developer has the required skills before progressing, employers can reduce the likelihood of poor hiring decisions, ultimately saving them from expensive recruitment mistakes.
- CULTURAL FIT. Understanding how a developer problem solves can be an indicator of cultural fit within the company, and the team they will be joining.
- STANDARDISED & QUALITY. By using standardised exams, all candidates are judged by the same standards - making it an equal playing field to assess. This also helps when reviewing the quality of a developers code, as employers look for clean, straightforward coding practices.
Reasons employers are anti-coding tests?
- INTIMIDATING. A problem with coding tests, particularly those undertaken in office environments, are that they can be intimidating and put unnecessary stresses upon an applicant, resulting in results that don’t reflect a candidates true abilities.
- REALITY. As above, coding tests are not always reflective of reality, and need to be used in conjunction with other interviewing practices. A dev maybe brilliant at tests, but awful in real world situations.
- BUY-IN. A large portion of the developer community do not buy-in to coding tests. This can result in companies missing out on quality developers who refuse to conform to code test demands.
- INSTITUTIONAL. Many technology companies now have coding testing as an institutional part of recruitment. As such, many hiring managers are unable to ‘flex’ when quality candidates refuse to participate.
- SKILL SHORTAGE? In cases where the need is highly niche and specialist, finding strong candidates can be difficult. To then adding coding tests to the mix can make accessing these people difficult - to impossible.
Back to the story…
So should Dave complete the coding test asked of him? In the short term, if he wants to work for this company and coding tests are a fixed element in their interviewing process, then yes - Dave either does the test… or exits the application.
However looking ahead, with such rampant distaste for coding tests in some areas of the developer community, employers need to be thinking “are coding tests the only option?”, “how can we ensure we’re not missing out on skilled people that refuse testing?” and “how can we improve testing procedures to reduce stress and more accurately reflect real world environments?”.
If you’re interested in learning more about the different types of coding tests and how to prepare for these in advance, continue reading at LINK.
Want to add your thoughts on this debate? Comment below, or speak to our team of consultants!
*Addition - continue the conversation. Check out the Reddit post of this article at LINK