About the site
The aim / goal of the site is to enable users practicing on various programming tasks which are simple enough to solve them fast and let them evaluate on-line through the system (with fixed tests by authors and random tests). These are called Kata-s.
Another task of the site are Kumite-s which are small programming tasks too but you solve them with other “code warriors”.
The exercises have different levels — as karateka have when they start learning karate and improve their skills. Exercises in different levels are worth different point: harder exercises give you more points and you can improve your level faster.
Naturally harder exercises are harder to solve too: this means you should not start with a 1 kyu kata to get the hang of the whole system and how it works. Level 8 kyu is very easy but sometimes gives you a headache to implement a solution. And of course sometimes there is no right solution because you can approach a problem in different ways and apply different coding paradigms to provide a solution.
What’s the matter?
I started practicing these Kata-s. I did not think about them as being too easy (because it is meant for practice and practicing simple tasks makes you better in them — which gives you later advantage if you encounter a bigger problem where you can reduce to these small pieces).
But I have found some exercises which have a description and a sample test. You write your code and run the simple tests and then find that everything is OK. You want to submit and then… BANG! Errors in the tests because the description is not aligned with the sample solution provided and the sample solution itself has errors.
Other times the starting code block and test does not compile and you get errors because of different types used in Java (long is expected but an int is provided and you get an error).
That’s why I think the site is not as good as you might think.
Making things good again?
These problems can be solved. However it would take an active administrator-group to solve the issues with these exercises. Because all these issues are already mentioned to these Kata-s but they are not solved (and some of these mentions is really old).
Currently I have not found a way to modify code which has issues. Perhaps my level is too low.
“So I should avoid Code Wars?”
After this introduction you might feel the urge to ask this question. But don’t get fooled: these issues could be solved and with later levels you get more complex exercises where you have to think and re-think your solutions.
However you should avoid the site if you
- want to learn coding and want to get feedback how to improve (for this use exercism.io instead)
- do not like to think
- get frustrated if you encounter errors in examples
- get frustrated if you have to write fast / efficient code.
But I will stay on the site because I like to think on problems and solve them — and re-think these solutions. And I like to improve my code to more efficient because sometimes you need to be fast and use less memory.