Skip to main content

What is a codility test?..and why do I need to take it?

Codility is a website designed for screening programmers. It caters to employers and job seekers/coding enthusiasts. The employers can avail a free trial and register to use the website as a testing platform for screening developers/software engineers and job seekers can use the lessons and challenges to improve coding skills. Since its established that codility is a technical recruitment site, let us understand what kind of tests they deliver? and which group of employers are most likely to use this site?


  What are codility tests?  Codility tests are timed competitive programming questions used for developer/software engineer recruitment. They have a different levels of questions from basic to expert level. A typical test has three questions which have to be completed in the time specified. A test generally goes like this: First the website shows you how to use its interface for the test. Then a question along with an example appears on the left hand side, the timer (right top coner) starts countdown from the moment this screen appears. You can choose the language you want to code the solution in from C, C++, C#, Go, Java, JavaScript, Lua, Objective C, Pascal, Perl, PHP, Python, Ruby, Scala, Swift 2, Swift 3, VB.Net. You have a run button which helps you execute the written piece of code and gives the output for the example and the test cases you have entered on the bottom left corner of the screen.

  There are many sites that are available for practicing a new language or to improve algorithmic thinking so why codility? There are many websites you can choose from to stay in touch with your coding background or improve upon, few of the well known sites are HackerRank and HackerEarth. Before writing this article I had taken upon myself to try HackerRank. In the process of learning from these websites I was able to clearly see that each of these websites caters to a different need.


Few unique features of codility tests that employers may find attractive:
1. The employer can see the coding screen recorded for the entire time lapse of candidate's coding exercise
2. Most sites only evaluate the code on the basis of correctness of output but codility gives you time and space complexity performance of the code written by the candidate
3. Codility claims to have a strongest plagiarism detection so you know even if it were remote testing that the candidate is genuinely writing his own code


Some things that might interest the programming enthusiasts/job seekers:
1. This website gives you an overall performance assessment for each problem in terms of correctness, time and space complexity
2. The website gives a detailed list of test cases where the code failed to run or what cases the code doesn't address or if the error is timeout error
3. From the perspective of a beginner learning a new language, with fair understanding of syntax, this website will help you improve coding skills in that particular language
4. Many questions in lessons & challenges improve the quality of test cases you design(that is if you are not a computer science major but have good amount of exposure to coding)


Coming to the next question, Which group of employers are most likely to use this site? Let us look at this from the website design angle. It is for those companies that need programmers. It is designed for companies to reduce their recruitment cost, so many start-ups could be using codility to screen their hires. The testing can be done remotely so companies that operate on a full remote operations basis can use this website like toptal. Apart from these obvious conclusions, the website lists the following companies as their clients: Amazon, AppAnnie, Bank of America, Check Point Software Technologies Ltd.,Citi Bank, Electronic Arts(EA a video game company), Indeed, Intel, LiveRamp, Rakuten(a Japanese E-Commerce company), Samsung, Splunk


This is all about codility that I have learnt about while trying to practice solving problems in python.
Few tips for those planning to start working with this site.
1. It will take a while to get the hang of solving this questions with a perfect score and no one gets all perfect scores in the first try - so be patient
2. Keep trying to solve the question using different logics each time you get a 100% on correctness of the code. That way you will be able to compare the efficiency(in time) of built in functions
3. Remember that all these problems they give even in the codility tests you write for recruitment are all easy to solve with a stress-free mind
4. Always look if you can reduce the number of steps you require to arrive at the final code using any math concept


Thank you guys for going through the article. Hope this helped you gain some perspective of the website codility. If you want me to write about any other site you prefer leave a comment below. Also don't forget to like, share and subscribe.
Sources and References:
1. https://codility.com/pricing
2. https://codility.com/programmers/lessons
3. https://www.quora.com/What-is-Codility-and-how-can-one-make-the-best-use-of-it



Comments

Popular posts from this blog

Codilty Lesson 3: Time Complexity PermMissingElem (Solution in Python)

Question: Find the missing number in the list containing natural numhers to N+1 Description of input data: 1. List A contains all natural numbers except one and is of length N - [1,..,(N+1)] 2. All elemnts in A are distinct Eample: Input List: A =  [2,3,1,5], N=4 Output: 4 Logic: One way to do it is to sort the list A. Then compare the sorted list with incrementing numbers. There is an elegant way to do this with a little more mathematics involved. We know the sum of first n natural numbers is n(n+1)/2. It is given that all elements of the are distinct, that is they appear only once in that list. Input list A contains all natural  numbers ad has one number missing. If we subtract the the sum of elements in the list from the sum of N natural numbers we will get the number that is missing in the list. Pseudo code: Method 1: 1. Sort the list. Compare length of the list to the max value on the list. 2. if len(A)==max(A) then the missing number is N+1,

Codility Lesson 1: Iterations BinaryGap (Solution in Python)

Codility Question Iterations Lesson: Given a number, find the maximum number of zeros, in its binary representation, between "1"s Example: input |     binary         | output    9     | 1001                 |    2  529   | 1000010001     |   4 Logic: Binary number notation involves just 2 numbers '0's and '1's. For any given number the placement of '1's and '0's could be one of the following options a) '1' followed by a '1' b) '1' followed by '0's c) '0' followed by '0'. The question requires us to find the maximum number of '0's flanked by '1's within a binary number. So to find the number of '0's between '1's we will do the following steps: 1) Find the location of the next occurring '1' with respect to the current '1' 2)To find the number of zeros between them we must find the difference between indices in which the current and next &#

Codility Lesson 2: Arrays CyclicRotation (Solution in Python)

Question: Given a list of length N, print the elements of the list A after K right cyclic rotations Description of Input Data:  1. N,K are integers in the range of [0,100] 2. Elements in A lie in the range of [-1000,1000] Example:  Input Data: A=[3,8,9,7,6], N=5, K=3 Expected output: [9,7,6,3,8] Logic: 1. Elements in the list A need to be reordered according to the value of K and length of list A 2. K elements from the end of the list are the first to appear 3. The remaining elements in the same order are placed after the K elements from the end of the list Psedo Code: 1. Check the length of the input list( length = 0 or length > K or length < 0) 2. If length = 0 output is [] 3. If length > K: then the output is concatination of A[-K:],A[:-K] 4. If length < K: then the output is concatination of A[-(K%length) :], A[: -(K%length)] https://codility.com/programmers/lessons/2-arrays/cyclic_rotation/ Let us use some test cases to unde