Rediscovering Codewars

Blogs
14.02.2023
Recently I have been thinking more about my coding skills and finding ways to stay sharp – and more importantly, work on improving. I am not a novice by any means, but I know I have a lot of room to grow and more techniques to master.

Share this article

Written by
Rhys Evans
Software Developer

Back in late 2017, a handful of Kiandra developers decided to try codewars.com - a website that challenges you to complete coding exercises in a variety of languages. We dug into it and had some fun, but as time went on, I ended up putting it to the side as something that I’d often think about, but never make the time for.

Recently I have been thinking more about my coding skills and finding ways to stay sharp – and more importantly, work on improving. I am not a novice by any means, but I know I have a lot of room to grow and more techniques to master. I’ve got a few new and older side-projects on hold because most of my time is spent in the world of C# and JavaScript so, any of the other languages I have under my belt barely get any time to shine.

Enter Codewars - a community that is built around developing programming skills. Users are tasked with completing ‘kata’, inspired by Japanese martial arts practice. A ‘kata’ in Codewars is a bite-sized challenge intended to implement a specific piece of functionality. Typically you get an input and the start of a function and you’re tasked with processing it and returning the expected output. The size and nature of these challenges mean that users can focus on solving a specific problem – perfect for warming up the mind or to challenge oneself.

Each kata is graded from 8th to 1st kyu and most can be attempted in a variety of languages. Not every language can be used on every kata and the rarer the language the fewer challenges.

Here are the languages I’ve selected for training at the moment. You can also use this as an opportunity to dabble in languages you’ve always wanted to try out. I’ve been focused on my C# and JavaScript skills, but I’ve been very tempted to dive back into Python – it’s been years!

Once you’ve written up your solution to the problem, you can then run the kata’s built-in tests. If your solution passes those tests, then you can submit your solution. You’ll earn points for your efforts and then you can take a look at how other users have approached the solution. You’ll also see different categories, like ‘Best Practice’ (clean code) and ‘Clever’ (compact solutions), which users can nominate. Here, you can learn from others and see how they solved it.

Just resist the urge to peek at solutions before you’ve finished, as you won’t earn any points. If something is too tricky, you can always bookmark it and come back later.

You might be wondering – what kinds of problems do you get to solve? Most problems are intended to be solved within a single function, so you won’t be programming anything too big, but most focus on algorithmic skills.

Depending on the level of the challenge, you might find string manipulation or finding the mean of an array at the 8th kyu level. Higher kyu challenges will push you further, sometimes requiring you to simulate features or build logic that stretches the limits of your language.

Sometimes it’s not enough to just pass the tests – your code must be efficient. At other times, your language of choice may be missing features or be on an older version, forcing you to work around limitations. These situations test your understanding of what is truly possible in a language.

My JavaScript array manipulation skills have certainly improved while working on speed tests – something I’ve been able to apply to later kata for cleaner results.

Of course, as a community-focused website, these code kata don’t come from thin air. Users can build their own challenges, submit them, and allow contributors to refine them. After beta testing, others can train on them.

One of the best ways to validate your understanding of something is to teach it, so there’s value in creating challenges for others to solve.

So what keeps people coming back? The challenge? The sense of community? The fun of solving problems? Most developers will have their own reasons, but I’d say it’s the gamification.

You are awarded points as you complete each kata or participate in the community, making progress feel tangible. The training helps you stay sharp and lets you pace yourself based on how much challenge you want.

Your ranking is also broken up by programming language, so you can focus on specific skills. Signing up even requires completing a basic challenge, which is a clever gamified onboarding experience.

Enter if you dare…

After revisiting Codewars over the last few months I’ve built up my score and ranked up a few times too. With new challenges awaiting me, I hope to push my skills further so I’m ready for whatever task comes my way.

Related Posts

Button Text
No results found.
There are no results with this criteria. Try changing your search.

Let’s build your competitive edge

Tell us about your project for a no-obligation consultation.

Get In Touch