Why Codewars is the best way to learn a new programming language!

Luke Garrigan on July 27, 2019

As a Programmer, you'll probably find yourself having to learn a number of programming languages whether it be for work or just for fun. In this bl... [Read Full]
markdown guide

I actually did this with Python, it was a great we to introduction to the language.

Ended up writing my own Kata in Python too, might be of interest to anyone who likes cards games:



That's brilliant, I'll have to put on my python boots and give this a whirl.


If you do give it a shot, let me know how you get on. Any questions at all, I'll be happy to help.


Fun, bite-sized problems are always a nice way to start the morning.

Filtering through the answers, I'd love to see more functional solutions from the C# crowd, maybe not super keen on the democratic answer rankings.


I completely agree, start the day with a win 😄

Oh really? I'm surprised by that, I know from doing a tonne of Java problems clever buggers solve a Kata that's taken me 200 lines of code in just 4 streams, show offs 🤣


Awesome approach! I love that you don't use their web based editor for even more learning opportunities.


Thank you Victor! Yeah the whole process of setting up the environment is a huge learning experience and it really gives you a good feel of the language.


Glad to hear that you are enjoying Codewars 😄 One thing I really like about Codewars is its sheer diversity: you can find plenty of entry-level exercises in the likes of Codecademy, algorithmic exercises similar to those found in Hackerrank/Leetcode, insane mathematical puzzles not found in any other competitive programming site, puzzles involving advanced language features ... you name it. Hell, they even have theorem-proving challenges in the likes of ProofGround!


Your Esolang Interpreters series is awesome :)


Thanks for the compliment, don't forget to check out other Kata I have authored 😄


This seems like a fun challenge, but personally I prefer to dig deeper into my language of choice in order to find more (or more standard) ways to solve more complex problems. Which means solving ever more complex problems on leetcode (my choice of coding challenge platform, and no, I'm not getting paid either). I choose more complex problems because it involves digging deeper and getting experience instead of having shallow depth and great width. Remember: both time and learning capacity are limited. You may be able to learn more than me (and many others) but there's always a limit, and then there's a time limit.

In short: learning more languages is not always the thing you benefit from the most. Sometimes it is (changing careers or taking another kind of challenge), but remember that you have other options. This is coming from someone with experience in 7 languages ;)


Of course, learning new languages might not be the thing you benefit from the most, but this blog is purely under the assumption that you need to learn a new language and it's a method I find works very, very well.


If the goal is to learn a new language, then this advice is fantastic, as learning by doing is one of the best ways to do it!

Thanks for clarifying!


Ok you've convinced me... i love me a bit of levelling to help me learn.... GoLang here I come


That's awesome mate, I warn you it's very, very addicting. Try to get your friends to get involved as well, there's nothing more motivating than a friend that's a higher level than you 😄


What if I even can’t solve the easiest 8kyu problems? Are there any step by step tutorials for those problems?


If those are a little too hard, I suggest Edabit! The easiest problems are easier than the 8kyu on Codewars imo, and become comparable as you level up. Codewars is frustrating to me because even the easiest problems require some higher level knowledge I don't yet have, but on Edabit I get to practice what I have learned so far and they provide a link to the MDN or SO pages that will help you get the answer.


I haven't tried Edabit before but I've heard that they have been allegedly involved in some shady practices. For example, their testimonials(?) do not contain any links to their original sources (unlike, say, Codewars which provides links back to the original tweets) and if you do a reverse image search on the portraits used in the testimonials, you'll notice that they appear in dozens of other websites, many of which are completely unrelated (to programming, programmers and such). They explain in this "Hacker News" post on Y-Combinator that the testimonials are real but with the names changed but one has to wonder why someone writing a testimonial would deliberately want to use a fake name ... 🤔

Also, the general difficulty has definitely shifted upwards in Codewars over the past few years but if you look hard enough, there should still be plenty of exercises for true beginners.


What I like to do is choose a Kata that I know I can do in another language then it’s just a case of bumping my head into things until I find a solution. I don’t believe there’s a step by step tutorial for problems on Codewars but you can view answers to problems if you get really stuck, you just won’t gain the xp to lvl up for it.


Idea is good. But please don't forget that some languages require not only copy paste mental models, but deeper understanding why it is like that. For example JavaScript...and theoretical knowledge must be learned.
My point is that some people remember examples and do silly mistakes later


Absolutely, but the idea is to learn these differences whilst putting the language into practice, it’s not written in stone that you have to understand the theory of a language by reading a book, you can figure it out one problem at a time by asking guided questions at every hurdle, that’s the beauty of it!


I have been using C# for game-development. But I absolutely have no idea how to use command line at all. Help me?


Awesome, Unity has been on my to-learn for ages. For learning the command line I'd definitely recommend just watching a Youtube video and then playing around with it, once you understand the basics you'll feel as though you have a superpower!


Thanks a lot..! It was very useful. I love your fluent and cute method of explaining. Now that I found you, I'll follow you and read all of your post, because they're treasures!


Thank you Rabist that means a lot, I'll definitely be posting more on dev.to!


This is an excellent thing as I was looking because sometimes you learn on the books but you don't know how to do a practical example... Will check, thank you!


Yeah reading books is great, it’s just very easy to forget what you’ve read if you don’t put it into practice!


I also like Code Signal and leetcode for this similar approach.


Sadly it doesnt support recent versions of swift :(


If you want a more recent version of Swift on Codewars then you can always open an issue at github.com/Codewars/codewars-runne... 😄 Mind you, someone has recently requested for Swift 5.0 in github.com/Codewars/codewars-runne... so you may simply want to upvote that existing issue instead.


They support version 3.1 and 4.0 of Swift, if you're new to the language I'm sure a lot of the key concepts will be the same!


I have tried Codewars with 8kyu but I have some difficult to understand what exactly does kyu want.
I don't know if I really don't have the ability to program or I have a block.


Hey your link to the .net core sdk is broken, I think this is what it's meant to point to:


Great intro to C# article, btw

code of conduct - report abuse