Codility offers an expansive task library for hiring teams to utilize, covering a range of different types of tasks. It currently covers eight core types of tasks, but we're continuously expanding it. 

Here is an overview of the different types of tasks, how they’re scored, and what roles and skills they can help you assess. When creating tests, you can combine different task types to help review your candidates across a range of skills. 

Need help? Contact us at support@codility.com with the job description for which you'd like help creating a test and we'll make some suggestions for you. 

TASK TYPES:

Coding

These tasks assess a candidate’s coding ability. The candidate only has to arrive at the solution. It doesn’t matter if the code is optimized or fast because these tasks are only graded for correctness.  

  • How it’s scored: Correctness is verified by at least 6 test case groups. Coding style can also be assessed for limited languages.
  • What it’s good for: The bread and butter of our tasks. Get a sense of how well candidates can code in their preferred language.

Algo

These tasks are designed to assess a candidate’s ability to write code that is not only correct, but also optimized. Codility calculates time and space complexity for selected submitted solutions.

  • How it’s scored: We measure for correctness and also performance - how fast the solution runs with big data sets. We measure time, space, both, or neither. Coding style can also be assessed for limited languages.
  • What it’s good for: These tasks are great if you want to measure correctness, performance, and style all at the same time. 

Bug-fixing

In real life, candidates will need to review and fix buggy code. With Bug-fixing Tasks, candidates get a snippet of code which is working but gives the wrong output for the test cases. The objective is to change (at most 2-3 lines of code depending on the task) the code so that it gives the right output for the test cases. 

  • How it’s scored: We measure correctness to test whether the candidate's bug-fixing changes properly correct the solution. 
  • What it’s good for: These tasks are great for testing Quality Assurance or test engineer candidates. They can also be used if someone wants to check performance in a Test Driven Development environment.

SQL

These tasks assess a candidate’s SQL skills. Codility Supports PostgreSQL as well as SQLite. 

  • How it’s scored: We measure correctness.
  • What it’s good for: Great for any developer who has to write database queries or possess basic SQL knowledge. 

Data Science

To assess data science skills, we've created a couple of different types of tasks - coding, analysis and multiple choice questions. 

  • How it's scored: Each type is scored slightly differently. Coding tasks and Multiple Choice questions are graded automatically for correctness, whereas analysis tasks are left for you to manually grade based on your priorities. 
  • What it's good for:  Any roles which require some element of Data Science.

Design

In these tasks, candidates will implement a simple web design using HTML and CSS based off a design file. 

  • How it’s scored: These are not automatically assessed, the recruiter or hiring manager is given a view of what the web design should look like, and how the candidate's version renders. You can also download the file to review it yourself, and then you can assign a score manually in the candidate's report. 
  • What it’s good for: These tasks are great for testing entry-level web developers and UI designers who need to know some basic coding principles. 

Web

These tasks mainly test front-end candidates' JavaScript skills, but they can also use Jquery to arrive at their solution. Web Tasks focus on typical front-end developer skills like communicating with the backend, handling asynchronous jobs in JavaScript, and injecting responses into HTML pages.

  • How it’s scored: They’re scored based on correctness and in some cases, performance as well.
  • What it’s good for: Great way to assess how good a candidate is at using APIs (Fetch API, XMLHttpRequest).

Multiple Choice 

Codility offers out-of-the-box Multiple Choice Questions (MCQ) that test for candidates knowledge around Git, Data Science, Java and the Java-based framework, Spring. 

  • How it's scored: Each MCQ Task includes 10 questions around the subject that are automatically scored and their result is shown on the candidate report card. 
  • What it's good for: When you want to test a candidate's knowledge base on a specific topic quickly and succinctly. 

Regex

Regular Expression Tasks check for candidates' ability to write text strings to search for particular patterns. These tasks are shorter compared to other task types, requiring no more than a few lines of code. Regular Expression Tasks are perfect to use in conjunction with other coding questions from the Task Library.

  • How they're scored: Regular Expression Tasks are automatically graded using Python's re.search. Correctness is verified by at least 8 test case groups. 
  • What they're good for: Regular Expression skills are core to every front-end and back-end developer. These tasks show how well candidates can write search patterns in their code.

5 Minute

Designed to help you get a reliable signal about candidates' technical capabilities without taking too much of their time. 

We recommend using 5 Minute Tasks in pairs or triplets to ensure you get a rounded view of your candidate's technical skills, or in combination with a knowledge-based multiple choice question. 

  • How they're scored: Automatically for correctness. 
  • What they're good for: if you need a shorter screening assessment or if you're in a time crunch and need a reliable signal, quickly. 

Labs

Using these tasks, you can have a candidate implement a class, or even do a creative task like essay-writing in text format. Of note are the optimizing tasks in Labs - you have a snippet of code that returns the right output for the test cases but you have to optimize it to run faster with bigger data sets. 

  • How it’s scored: Only performance is measured.
  • What it’s good for: There are a couple different types of tasks in here including some of our newer, more experimental tasks. Check them out to change up your coding test strategy!

Variant 

These are essentially coding tasks, but certain elements are randomized to create different versions of the same task. Unlike our other coding tasks, when you use a variant task, no other client will be able to use the same variant, making variant tasks very hard to plagiarize. Using Variant Tasks, hiring teams can mitigate answer-sharing amongst applicants in your hiring process. 

  • How it’s scored: Only correctness is measured.
  • What it’s good for: Any recruitment cycle where plagiarism or answer-sharing is a concern. We also have a great task randomizer feature which can further mitigate plagiarism. Contact us to find out which is the best solution for you. 

Training

Tasks are marked as training when we find the task description posted online, or if submitted solutions for the task are frequently flagged by our Similarity Checker. Training tasks can be used to upskill, coach, and engage your team.

Custom

For clients using the full Premium platform, you're able to create your own Coding, Multiple Choice Question, Essay, and Upload tasks. You can learn more about them in this article. All custom tasks are client-specific and heavily tested by us to ensure high quality. 

  • How it’s scored: Custom coding tasks can be scored for correctness and performance depending on the set up, Multiple Choice questions are automatically scored, and all other tasks are manually graded. 
  • What it’s good for: If you have a specific question you like to ask all candidates, if you have oldies (but goodies) you'd like to continue using, or if you need an extension of the Codility Task Library. 

If you have any questions about our Task Library, or would like to check what additional tasks may be on offer for you, please contact us at support@codility.com and we'll be happy to help. 

Did this answer your question?