The take home tests for CodistAI
version = 1.0
This repository contains the take home tests for CodistAI
As CodistAI is working on the mission to serve software developers by analyzing source code and giving them easy access and understanding on piece of code they have not seen before, it is easy to imagine that we deal with a lot of static code andlysis and Machine Learning.
The accompanying directory has a collection of tests that is corresponding to this version. Please note that tests will change from version to version.
You will be given then name (or names) of a certain folder(s) and you are requested to finish the test within three days from the day we hand it out. Although, the actual amount of time you should spend on a test should not cross more than 4hours (unless otherwise mentioned.)
Please Note If a test does not allow any external libary then it will be mentioned in the test's description file. And in that case please do not use one.
If you have any problem to understanding any part of the documents or the data associated with them (if any) then please contact us.
In a standard answer we are looking for the following things
-
A working version of the algorithm you are asked to develop (of course!)
-
Clean and readble code. Please use comments and docstrings as much as you want.
-
Some amount of unit testing
-
Conforming to best practices in Python
-
Surprise us! (if you find something that is really extra-ordinary, do not hesiate to share. We LOVE people who thinks out of the box!)
-
You should have one main Python file (which we can run)
-
If you modularize your code then zip everything together. Best if you can make it a package which we can install in a virtualenv using
python setup.py install
orpip install -e .
-
At least some kind of documentation (a README.md maybe) which gives us a way to run the code and see the outputs.
-
If you use any extra libraries then please create a requirements.txt file with them so that we can
pip install
them.
-
Some tests are related to fundamental of computer science (Algorithms, Complexity, Information Theory, Computation, Graph Theory etc.)
-
Sometimes, for some of those tests, we do not need code, and rather some kind of text output (e.g. Two versions of same algorightm is given and asked to make a comparison among them)
-
In those cases you just give the text output in a clean and easy-to-read way via either a Markdown file, or a text file. Please indicate different sections of the text files.