How to Avoid Plagiarism When Taking a Coding Assessment for a Job

In an effort to create realistic testing scenarios that mimic actual work conditions, many recruiters and technical evaluators let candidates search on the web when completing pre-hire coding assessments or take-home projects.

While this is generally viewed as a welcome change from previous eras (which often included the dreaded whiteboard test), having web access makes it easier to copy, paste and submit code directly from repositories—which can still constitute plagiarism or cheating, even if it’s unintentional. 

As HireVue CTO Loren Larsen noted: “It is grossly unfair to lose out to a candidate who has copied someone’s work and passed it off as their own.” 

To discourage dishonesty, many online testing platforms such as HireVue, along with in-house recruiters, have begun utilizing a variety of plagiarism-detection tools. To help you navigate and ace your next coding evaluation without a hitch, here’s a look at how these tools work and some ways to avoid unintentional plagiarism.

Ways of Spotting Plagiarism

Many technologists lack a clear understanding of what constitutes plagiarism, especially since researching others’ solutions to a technical problem is not only ethical, but also a best practice. 

While acknowledging that plagiarism varies wildly from person to person and case to case, here’s how Elli Ferguson, a former programmer and principle systems engineer for a major bank, and plagiarism expert and consultant Jonathan Bailey defined it in an email:

“When you copy someone’s entire solution, or a significant part of it, and present it as your own, that is generally considered plagiarism, as long as there are other ways that solution could be reached.”

Given the “expectations of originality” in computer science, many recruiters will run a candidate’s coding solution through a software-similarity checker. Simply stated, most tools generate a similarity score by comparing the submitted code to solutions submitted by other candidates to the same challenge (or those found on the web). If you want more detail, here’s an overview of how MOSS, a popular plagiarism detection system, works.

However, some tools go deeper. For instance, HireVue’s CodeVue coding assessment product also detects copy and paste events and candidate response times that are outside the norm. “The tool doesn’t pass judgment, it provides information to the evaluator,” Larsen explained.

For example, when a candidate solves a complex problem in just 90 seconds or leaves the testing browser for more time that is typically needed for research, those events may require further investigation, he said. 

To clear or confirm red flags, a recruiter or technical evaluator can also “playback” the session to look for best practices such as how often the candidate compiled the code and whether they tested it before submission (and if it passed or failed).

As Ferguson pointed out: “Testing the code shows an understanding of why or how that code works, which can be more important than the code itself.”

How to Avoid Plagiarism

To be on the safe side, always clarify the recruiter’s expectations before embarking on a pre-hire coding challenge. For instance, most entry-level candidates should be prepared to prove their skills by creating code from scratch without copy-paste. Meanwhile, providing an effective and immediate solution to a challenge by finding, editing and improving source code found in a public repository might meet the expectations for a senior-level developer.

Know the rules about how and when to use source code from an outside or third-party source—or even better, stick with public repositories. Try to use the web only for research or to gather ideas or specific pieces of information. While there will always be some overlaps in code that performs the same function, create as much original and unique code as you can.

Always add comments to your code and cite any original source that you copy or borrow, Ferguson advised: “With programming there is a higher tolerance for copying ideas without attribution but, especially when dealing with recruiters, it’s important that the implementation be original to show that the person understands how the solution works and can do it themselves if called upon.”

Finally, run your code through a plagiarism checker such as JPlag or Codequiry. View the test as an opportunity to showcase your superior coding skills and win the job without copying someone else’s work.

6 Responses to “How to Avoid Plagiarism When Taking a Coding Assessment for a Job”

  1. We should ask Biden. He knows a thing or two about plagiarism. On a related note, I once was asked after interview to solve a particular problem at home over coming weekend. I was pondering and pondering, but solution was very elusive. I started to search on Internet and found an exact solution. The solution turns out was part of someone’s PhD thesis. So, I was dumbfounded – should I A. admit to the interviewer that I could not crack the problem, or B Provide a solution by adopting someone’s PhD thesis as if I just solved it over weekend. I did option C – I replied with the coding solution, but explained that I actually discovered algorithm on the Internet. He replied thanking me and confirming that solution works. I did not get the job.

  2. Andreas Saurwein

    Lately i took a coding assignment for a job, c++, quite sophisticated challenge. Took me about 4 hours, even with internet lookups.
    Solution worked perfectly, was submitted, accepted as “compiling” yet rejected as not working.
    Point is that the automated system was expecting a simple result which it didn’t get because i optimized the resulting dataset so it won’t contain doubles. Well, that was not asked for but something that I definitely would do in a real scenario for the kind of data given.
    So i failed the assessment, no human looked at it obviously, and i didn’t get the job.

  3. Nick Fotopoulos

    Code is meant to be plagiarised.

    I can understand wanting to test a developer’s skills, but plagiarism is how the world of programming works. You don’t recreate the wheel, you reuse the best design available to you and if that design doesn’t meet your needs then you might enhance/redesign it to be better.

    If I’m paying a developer hundreds of dollars a day to work for me, I don’t want them wasting their time implementing their own authentication or logging system. They should use widely adopted best practices and libraries and save their valuable skills and time for implementing business logic that is unique to make business. When I hire someone I want to see how good they are at findings solutions through well formed Google search queries. A good developer can quickly locate a good solution to a problem they face on Stack Exchange and effectively adapt it to their situation.

  4. Rick- you are 100% right. Coding in the end of the must help business to success. That is what all of us try to do. Any code helping business grow with a solution in less time is a boon. Hardly matter if it is copied.
    100% agree with you.
    Cheers
    Dean

  5. I think employers are out of control with some of the testing that they want candidates to complete. They have too many applicants and it’s just to weed out candidates. We don’t reinvent the wheel at work; we extend existing code. If there is new functionality required then we architect the new code but everyone looks out on the net to see what others are doing especially when their solution isn’t working. In any new job, you still have to learn the organization’s practices and procedures.