Codility is an automated service to test programming and logic puzzle skills. I've taken numerous tests via Codility, to the point where I felt a simple Framework for both C++11 and Python might be of some help to others. As every Codility task boils down to a single function taking input and returning output, I created a framework that mimics this functionality, along with printing some helpful text to allow you to more quickly get an overview of whether or not your method performs as expected. So the frameworks essentially enable you to save some time which might otherwise be spent printing input/output.

Both frameworks are available on Github: Python | C++11

strongly recommend you make use of the Python version, unless you're forced deliver a solution in C++11 instead. The main reason being that you'll get more done with less code in Python. I say this as a developer with over a decade of experience using C++. It might be different for you, but for me, it was worth getting back into Python just to ease these tests.

I'll close by saying that I've read a number of blogs/articles/comments for, and against, Codility as a tool to evaluate potential employees. If we, for a moment, disregard how beneficial the tool is (or isn't) for both the employee and employer, I find the most interesting aspect about Codility, is how its proliferation as an evaluative tool causes a significant side-effect. I think most individuals using Codility will agree that their tests generally do not resemble real-world programming tasks. A saying, I think is fitting here, is You get what you test for. Not only is this true - Codility will filter skilled logic puzzle solvers, and not necessarily good programmers - but it breeds an artificial drive to become good at puzzle solving. So the more Codility is used, the more prospective employees will be forced to train themselves via Codility's convenient lessons. It is of course in Codility's interest to have its test takers study and become better. Perhaps the skills learned via Codility may be applicable, but to me it feels more like it creates a new artificial hoop to pass through. A bit like a personality test.

© Lasse Laursen 2015 - 2021