5 reasons why you should start Codewars (now!)

Jan Bajena
4 min readOct 27, 2019

--

A few months ago my sister told me to check out a website called codewars.com. It introduced a lot of fresh air to my “boring programmer’s life”, so I decided to share some of my feelings with you.

Codewars is a platform for software developers on which people can solve programming puzzles known also as “katas”. The term was introduced to software development world in 1999 by Dave Thomas, the co-author of “The Pragmatic Programmer” — one of the most widely known books in the industry. The aim of programming katas is to help programmers hone their skills through practice and repetition, similarly to katas in martial arts.

Practicing katas of course requires some free time and being methodical, but on the other hand it’s really rewarding and fun.

Check out the list of reasons why I think you should consider trying out codewars.

1. Get out of your comfort zone

Even though programming is one of the most mentally demanding jobs and every problem we face is a bit different, we typically tend to start solving them using the same tools and patterns.

That’s of course not a bad thing for the company you’re working in, as long as it gets shit done, but can be harmful to you.

Doing katas lets you get out of your programming comfort zone and try new things out without being scared of failure. Yes, go there and fail a few times, you’ll surely learn a lot!

Some coaching bullshit

2. Learn a new programming language

There’s a legend that somebody learned programming just by reading an O’Reilly book. I don’t think it’s true though…

Doing katas in opposite is a good way to kick off with learning a new language, because it requires you to browse the docs and implement the solutions yourself. Doing is always better than just reading!

You can start with the easiest (8KYU) tasks and later pick harder and harder ones. When you become confident enough in the new language you can start writing small pet projects.

I managed to learn Elixir basics thanks to katas. There are hundreds of Elixir tasks in a full range of difficulties. I’m sure you’ll be able to find suitable tasks for your language as well.

Doing > reading

3. Refresh your high school maths

Some of the katas out there will require some basic geometry or algebra work. It’s been a while since I’ve done my last maths task, so I needed to refresh my skills a bit, but then I realized how much fun it actually is to use your brain in a different way than you typically do in your day-to-day job.

It’s really rewarding to see that all those years in school are still worth something :D

My rough drafts for lame math attempts 🙈

4. Learn from other people (and teach them)

Cool thing about codewars is that finishing the kata is not the last step. After that you can browse other people’s solutions, discuss and upvote them. It can be sometimes a bit demotivating to see that your 50 line solution could in fact be done using 3 LOCs, but on the other hand it can teach you some useful tips & tricks about your programming language.

Also, maybe at one point you’ll be the one whose solution will be marked as “clever” :)

5. Compete with your friends & colleagues

Codewars platform was built with gamification in mind — for every kata you solve you get an amount points (a.k.a. “honor”). After collecting required number of points you get a higher level (a.k.a. “kyu”). It’s fun to see your numbers grow over time!

It’s even more fun if you create a codewars clan with your work colleagues or your friends and start competing with each other. You feel like playing a game together, but at the same time you learn a lot. It’s a win-win!

Our Leadfeeder clan in action. Yep, competing can get addictive.

Summary

I hope I managed to encourage you to try out katas. If you do it methodically I’m sure it will boost your programming skills a few KYUs up ;)

If you’re planning to join codewars follow me at https://www.codewars.com/users/Bajena. Happy coding!

--

--

Jan Bajena

I’m a software developer @ Productboard, mostly interested in building backends using Ruby language. CSS doesn’t make me cry though ;)