Glossary
A
Kata whose the author is not active anymore.
Users who are following each others, or who are part of the same clan.
Action to push a kata out of the beta process, giving it a rank (kyu). This can be done by power users.
For a translation, consists to validate it a make the language available in the kata for all users.
In the trainer, when you click on the ATTEMPT
button, you run your code against the full test suite (see "test cases"). Validating all the tests makes you pass/validate the kata, and grants you honor points and progress.
B
The beta process is the phase where a kata is visible to any other user in the database/katas search page but does not have a rank yet. It is to be tested by other users, so that it can be enhanced, modified, ranked and finally approved... or retired if not qualitative enough.
C
You can write the name of your clan/company/organization through your profile/account settings
page. All the members of this clan are automatically recognized as allies of yours, hence are added to your personnal leaderboard in the dashboard.
Collections are sets or libraries of katas that any user can create, for any purpose. All collections are public.
See output panel
User(s) who have either authored, approved, translated or modified a kata in any way (a list of them can be seen in the "Details" page of any kata.
D
Dan (段) indicates the number of degrees in master level. This is why they count upward.
The term is borrowed from a system in Japanese martial arts, which is in turn borrowed from the game of Go.
This is the main page for a code warrior. You land there by clicking on the picture in the top left vertical bar (Codewars' logo). It contains kata suggestions, a leaderboard of you and your allies and a flow of the last comments posted anywhere on Codewars.
Initial state of a new born kata: when you create a new kata, it is in Draft mode as long as it is not "published".
Kata in draft state are not visible through the kata search page, but can be accessed and tried by other users if the author gives them the direct link to the trainer. Note that a kata in draft state cannot be completed (eg. "submit final" will not show up if you pass all the tests of a draft).
Kata may be considered as duplicates in the following situations, for example:
- another Kata is already published (currently in beta or approved) asking for nearly the same thing(s)
- other Kata already exist about the same topic which has been covered already a lot (like, "yet another fizz buzz thing...")
The usual course of action for an author being told his kata is a duplicate is to unpublish his kata, if he cannot make it different/valuable enough compared to what's already present in the database.
E
This is the interface an author uses to create or modify a kata. There you can see all the available languages, author's solution, initial solution, all the tests, the preloaded version and the description. Contributors and some power users (in specific conditions) have access to the edit panel of published katas.
Notes:
- Entering the edit panel is an automatic forfeit of the kata for the user going there.
- Translating a kata has to be done through the creation of a translation, and never directly through the edit panel (unless you're the author, but even then, you are advise to use translations)
Tests that are visible to the user in the trainer. Most of the time, they are only a tiny part of the full tests suite. Hence, passing all the tests of the example tests doesn't make you pass the kata. You have to use ATTEMPT
.
You run the example tests using the TEST
button in the trainer.
F
Tests whose inputs/outputs are always the same, each time your run the tests. Generally, the example tests are made of those, and the test cases contains both fixed and random tests.
Users who are following other users.
You can follow an user by clicking on the Follow
button in his profile or by making yourself part of the same clan.
You can see in the Social
section of the profile of a user who he is following, who are his followers and who he is ally with.
You forfeit a kata when you do one of those actions:
- You unlock the solutions (through the button in the trainer, for example)
- You enter the edit panel (warning, power users may have the possibility to enter the edit panel of some katas. If you do so before you solved it, you actually forfeit it).
Forfeiting a kata makes you lose the opportunity to gain honor points or progress by completing this kata.
In the solutions page of a kata, you can see the solutions of other users, and you can fork
them to suggest modifications/enhancements (button below each solution).
Using the fork panel is the right way to try out a solution of another user, rather than to copy it in the trainer of the kata.
H
Honor points are the score that is showing up in the top right corner, aside of your avatar. You can win honor points in different ways (completing katas, up votes on your comments or solutions, translations, creating katas, ...)
I
This is the starting point of your code when you enter the trainer of a kata (the "Solution" box).
Issue
is the label to use when you write a comment in the discourses section of a kata to point out some problems in the kata itself (wrong tests, wrong reference solution, wrong description, missing tests, misleading description, ...).
Note that the Issue
label is NOT to use for a user who doesn't understand why his solution is failing some (or all) the tests of the kata.
K
Kata (型) is how coding tasks are named on Codewars. See here - TODO for more information about it.
This is the page on Codewars where you can search for specific Kata by name, rank, language, ...
See TODO for more explanations.
Kyū (級) indicates the number of degrees away from master level (Dan). This is why they count downward.
The term is borrowed from a system in Japanese martial arts, which is in turn borrowed from the game of Go.
L
A kata may be available in one or more languages (javascript, python, coq, ...), and for each language there may be different versions like Node 8 or Node 10 for JS, python 3.4.3 or 3.6, ...
You can choose the language and the language version in the trainer of a kata (amongst the available ones only).
Leaderboards are grouping different users according to different criteria.
M
Codewars is responsive to markdowns
. They allow you to format code, descriptions or comments so that thay are properly readable for other users.
When a translation of a kata is published but some changes are done to the description (through the edit panel) before the translation gets approved, it becomes impossible to approve it because of those "merge conflicts".
To resolve this problem, you have to fork the translation and update the description starting with its current (new) version.
To keep it short...: Don't mutate the input... Ever (eg. don't use sort, append, push, remove, ... and alike before doing a copy of the input).
This is about side effects, modifying the arguments (typically lists/arrays, or even strings if they are mutable in your language) sent to your function during the executions. This can have weird consequences, depending on how the tests are written.
Nowadays, most test suites are written in a way that avoids this kind of problem but typically, if you end up passing the fixed tests but failing all the random tests with something along the line of [your result] should equal []
, you're most likely facing a "mutation of the input" problem.
Hence... Don't mutate the input.
O
The output panel is the tab in the trainer where the tests feedback and all that you print to the console from inside your code are written to. It's actually the usual STDOUT/STDERR
.
It's useful for debugging - TODO too.
P
In a Kata, the preloaded section is code that is executed before the solution of the user is defined. The code hold by this section isn't visible to the user but every function or variable defined there is accessible to him drugint the executions of his code.
If you need/want to see the preloaded section of a Kata, open a fork of a solution after you solved it and look to the Preloaded
panel.
Aside of honor points, you gain "progress" by completing Kata (and only that way). Progess is what is conditioning your current rank as a codewarrior.
When you hit "publish" in the edit panel of a kata you created, it enters the beta process and becomes visible to anyone in the katas search page. The beta process begins at the moment a kata is published.
Q
Question
is the label to use when you write a comment in the discourses section of a kata when you encounter some problems to solve it and you don't understand why your solution is failing some (or all) the tests. Or if you believe your solution is correct while the expected result isn't.
Most of the times, the user (you) is actually missing something, so use the Question label and not the Issue label, unless you can prove that the problem you're facing is actually an "issue".
R
Tests whose the inputs/outputs aren't the same each time you run the test suite.
Random tests are prefered to randomized tests, when creating Kata.
Tests whose the inputs/outputs are always the same each time you run the tests, but are showing up each time in a random order.
Ranks are expressed through the kyu/dan scale (8 kyu -> 1 kyu, then 1 dan -> 8 dan). They may represent the difficulty of a Kata, or the mastery level of a user.
A translation writen by an user can be rejected during the review process if it is not fulfilling the original requirements or if the translated task doesn't fit with the original difficulty of the Kata.
A retired Kata is a Kata that has been judge not qualitative enough by other codewarriors during the beta process.
It has been removed from the beta process after some critical thresholds have been reached, without any action of the author. Nothing can be done anymore with a retired Kata.
S
See example tests
Value as percents, shown below the title of a Kata. It indicates the average rating of users on that Kata.
The satisfaction rating is important during the beta process: it may trigger the auto-retirement if it becomes too low, and it needs to be high enough to allow the approval of a beta kata.
Another name used for the author of a kata.
See initial solution.
In the trainer of a Kata, when you hit ATTEMPT
and that your code passes all the tests, the attempt button is replaced by a green SUBMIT
one. Hitting this green button is publishing your solution to the solutions page of the kata. You can take some time to refactor your solution before your final submission.
Label used in the discourses section of Kata to suggest non critical improvements to it (like rewording some parts of the description, or the feedback of some assertion messages in the tests), or to announce the pulication of a translation (useful when the author is inactive, so that power users can review and approve the translation).
T
Test cases represent the full batch of tests the code of a user has to pass to complete a Kata on Codewars.
Test cases generally contain more tests than the example tests, combining both fixed and random tests.
Kata are built following this principle: you are provided with specifications and a set of tests, and your goal is to pass those tests (by following the specifications or finding a way to at least pass the tests).
See test cases
Trainer suggestions are the Kata that are showing up at the top of the dashboard. Those suggestions can be tweaked at some point, either through the profile of the user or directly through the dashboard.
See training setup.
A translation is created by an user to make a Kata available in a new language. A translation can be rejected during the peer review process.
User who translated an existing kata to a new language, making it available for other codewarriors.
U
An author can unpublish his Kata if it's still in beta state (and only in this case). An unpublished kata goes back to draft state, and cannot be completed anymore by other users.
Unpublishing a Kata may be the best way for the author to have time to resolve issues raised by other users during the beta process.