Skip to content

About Codewars

Brad Wood edited this page Feb 12, 2020 · 18 revisions

Codewars is a community of developers, who are called Code Warriors (or just warriors), that train on improving their development skills. Think of it like a coding dojo - where developers train with each other and help each other get better through practice.

Why Codewars?

Learning from Others

Every time you complete a challenge (which we call "kata") you will be shown the solutions that others came up with. Until you try it yourself, you really won't know how great of a feeling it is to complete a kata thinking you nailed it and then see how others did it, or how many different types of approaches are possible. It is an amazing way to learn and adapt new techniques.

Powerful Real World Testing

Codewars is built around the idea that we should be testing code using real testing frameworks. We don't feed STDIN data to your code and expect you to send specific values (in a certain order) to STDOUT to be validated. You write real methods, classes and objects that return values and get tested the same as you would your code on your own projects. This is something unique about Codewars, who pioneered this type of online code challenge testing. What this means is that our challenges are very natural to work with, and the solutions you create can be very natural to the type of code that you would write in production. It also means that more things can be tested - allowing for more comprehensive, creative and powerful challenges to be given.

Community Driven

The Codewars community is large and active. The content on Codewars is created by other warriors, with new challenges being created and expanded every day. Each kata has its own discourse page where you can interact with others and seek help - or provide it. Each kata goes through a beta process where the community helps provide feedback, raise issues, collaborate, translate and rank each kata.

Key Concepts

There are a few important concepts that you should be aware of.

Kata

In our dojo, kata are code challenges focused on improving skill and technique. They are the main activity performed on the site. Some of these challenges train programming fundamentals, while others focus on complex problem solving. Others are puzzles meant to test your creative problem solving, while others are based on real world coding scenarios.

Each kata is crafted for and by the community. The author (or Sensei) who created kata will initially include one or more languages to train in. Other Code Warriors later can "translate" the kata into additional languages.

You can read more about kata here.

Ranks

Ranks are used to indicate progression and difficulty. Code Warriors complete Kata which are assigned a rank, which in turn earns them a higher rank once they complete enough of them. There are two classes of ranks, Kyu and Dan. You begin with Kyu at level 8 and work your way down to level 1. Then you progress to Dan, where you work your way up from level 1 to level 8.

Why the names Kyu and Dan? The terms are borrowed from a system in Japanese martial arts, which is in turn borrowed from the game of Go. Kyu (or Kyū) indicates the number of degrees away from master level (Dan). This is why they count downward. Once you reach master level, we count upward. Black belts in martial arts are Dan level.

Honor

Honor represents the level of respect a user has earned from the community, based on their skill and contributions. While ranks are an indication of your skill only, honor is an indication mostly of your activity and contributions.

You can learn more about Ranks and Honor here.

Privileges

Your privileges are what control the actions you can take on the Codewars site. The longer you use the site, the more privileges you are given. For example, being able to create kata or higher voting power. You gain privileges as a result of how many honor you have. Privileges are not based on rank, however, users with a higher rank are more likely to have more honor points.

You can learn more about Privileges here.

Clone this wiki locally