How to assess programming skills – a review of the best methods

How to assess programming skills – a review of the best methods Blog

Did you know that the costs of recruiting a software developer can be as high as $60k? Unless you’ve got a huge recruiting budget, you can’t afford to hire an employee whose skills haven’t been verified and just hope for the best. In fact, knowing how to assess programming skills, whether front end, back end, or full stack, is fundamental to any successful IT recruitment process. 

How can tech employers test one’s abilities upfront? It’s more complex than just looking at a programmer’s CV. 

In the following article, we’re going to review how to assess programming skills using different assessment methods, with a special focus on the optimal setup, namely the work sample coding tests followed by the HR and technical interview. By following our advice, you’ll minimize the risk of hiring an under- or over-performing candidate, or simply someone who isn’t a good fit for your company.

Let’s take a look.

How to assess programming skills – methods & tips

Let’s start off by taking a look at the attachments your candidates are likely to enclose in their job application.

Portfolio

You should look at your candidate’s previous or current projects through the prism of the problems they’ll need to solve in the new role. 

Have they worked on anything similar to your project in the past? Or maybe they can show off a unique approach to a challenge they handled? Finding out the answers to these questions should give you a good first impression of who your candidate is.

GitHub

Think of GitHub as an extension to your candidate’s portfolio. You should take a look at the following details on their profile:

  • The number of repositories – this will give you an overview of the number of open source projects they contributed to.
  • The number of contributions – you’ll see how active they are on GitHub (which might speak miles about the candidate’s competencies). Specifically, check how many commits/pull requests/ or issues they opened.How to assess programming skills- The number of contributions
  • The number of followers – this reveals their rank in the developer community.
  • When they joined GitHub – an easy way to double-check whether the software development experience your candidate declared in their CV checks out.

With all this in mind, it’s important that you also know about GitHub’s limitations. 

With open-sourced projects, it’s not always clear who did most of the work on the project or how long it took to complete. You won’t be able to check how your candidate collaborated with others either. All in all, while helpful, GitHub isn’t a bulletproof skills assessment method.

Stack Overflow

Stack Overflow is a site used by developers where they share, learn, and answer each others’ programming questions. Looking at one’s Stack Overflow account will allow you to check your candidate’s level of knowledge. However, if they’re active users, it will also let you look into their communication style. Some of their answers might reveal not just their knowledge, but also whether they’ve got a team spirit and know-how to explain technical concepts to others.

How to assess programming skills-Stack OverflowAlgorithmic programming tests 

Algorithmic programming tests are a popular method of evaluating one’s level of expertise in a chosen language or framework. However, we highly recommend that you don’t fully rely on them to check your candidate’s competencies. Why not? Because they lack the context and let you test skills that are, at most, adjacent to software development.

How to assess programming skills- General programming testsHere’s a great analogy – algorithms are like words and phrases in English. Giving your candidate a general programming pre-employment test is like giving a content writer a test that checks their knowledge of English grammar or vocabulary. While they’ll tell you that a person knows a lot of words, they’ll in no way reveal whether they can write a great article.

So, how can you test your candidate’s actual software development skills? By running work sample coding tests, which is what we specialize in at DevSkiller.

Work sample coding tests

Work sample coding tests are a great method if you want to know how to assess programming skills, because they mirror real-life tasks that await the new developer. Unlike general programming tests, they focus on actual problem solving – not answering trivia questions.

According to a University of Iowa study, work sample tests also happen to be the best predictor of a candidate’s future performance. 

So, how do they work?

These coding tests let you simulate a day in the life of a software developer at your company, by giving recruits a practical assignment, be it a development project or a DevOps task configuring a system. They are provided access to the same type of environment your developers normally use – libraries, frameworks, GitHub, or Stack Overflow. All this lets them have a sneak peek of what ‘day one’ might look like if they work for you.

During a work sample test, candidates are given a time limit that reflects how long you’d normally expect your developer to deliver a similar solution. 

However, it’s important to note that they’re informed about the requirements before the test starts. This way, they can get comfortable with your software development environment.

Upon completion of the assignment, each candidate receives a grade – not just a simple ‘pass’ or ‘fail’ result. This means recruiters can quickly compare the scores of all applicants and decide whom to proceed with. 

They can also provide feedback to candidates quickly – which matters because the best tech talent goes off the market almost instantly!

Here are several other reasons why you should incorporate work sample coding test into your recruitment process:

  • They’re objective. Each applicant works on the same task. Also, the test takes place before any interviews. This is important because unconscious bias is still a huge problem in recruitment. Work sample coding helps ensure that skilled candidates aren’t being turned down due to personal, subjective motives.
  • Candidates aren’t being watched. Some candidates might be stressed and underperform if their first coding test were to take place during an interview. Work sample coding tests let the candidate complete their first programming assignment without being observed.
  • They are automated. With a solution like DevSkiller, your tech interviewers don’t need to check the tests manually, and can quickly filter out applicants with the highest scores.
  • They save your HR & IT teams’ time. The goal of these developer tests is to prescreen your candidates at the early stages of recruitment. As a result, you’ll be able to proceed with interviews with the very best candidates only. This means that the risk of engaging your HR team, CTO, or other senior developers in failed recruitment is minimized. Check out how CodeValue cut their recruitment process by 50% with DevSkiller!

How to assess programming skills- Work sample coding testsInterviews

Once you’ve prequalified your candidates with a work sample coding test, you should conduct two types of interviews – a soft skills/cultural fit interview with HR, and a technical interview with the hiring manager, CTO, tech lead or team leader. 

A cultural fit interview should verify if the candidate seems like someone others would enjoy working with. Most importantly, it should check how the candidates are likely to approach any conflicts or disagreements within the software team.

As for the goals of a technical interview, it should check:

  • If the candidate can write high-quality code that matches your company’s requirements (this is – at least partially – already verified in the work sample coding test)
  • How the candidate approaches challenges and how creative they are with technical solutions
  • Whether they’re a ‘team player’ and can collaborate with others smoothly.

To supplement the results from coding tests online, many technical interviews also include a live coding session.

Recommended reading: How to give a technical interview: 7 tech interview tips

Live coding 

The goal of live coding is not to scrutinize each line of code that the candidate delivers. After all, mistakes happen even to the best of us – not to mention candidates who might be stressed during the live session.

It should be about how the candidate takes on the challenge they’re being given and what questions they ask to understand what the end software does. It also lets recruiters see if the candidate checks the code validity before finishing the task. 

All of these elements reveal your candidate’s communication skills, behavioral patterns, and let you see how they strategize for the work they’re assigned.

Recommended reading: Online coding interview and how to CodePair remotely

How to assess programming skills- Live codingHow to assess programming skills: summary

Finding a skilled software developer can be a complex and costly task. If you hire some who is under- or overqualified for the position, you’re not just risking a high employee attrition rate. You’re also burning significant financial resources on failed recruitment. Luckily for IT employers who want to know how to assess programming skills, there are many ways they can verify their candidates’ programming skills

The most effective assessment method is running work sample coding tests that let you check your candidates’ problem-solving skills – not just their knowledge of a language or framework. 

By emulating the real-life experience of working for your company, these tests let you see how well a candidate fits your ideal employee’s profile. As a result, you’ll be able to focus your recruitment on interviewing the most promising potential hires, and you’ll be able to stay clear of the 10 most common don’ts of hiring programmers.  

With DevSkiller, you can personalize and automate your work sample coding tests. If this sounds interesting, reach out and let’s discuss how we can help!

Image Credit: Photo by Kevin Ku on Unsplash