DEV Community

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

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...
Collapse
 
__orderandchaos profile image
Order & Chaos Creative

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:

codewars.com/kata/rummy-find-lowes...

Collapse
 
lukegarrigan profile image
Luke Garrigan

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

Collapse
 
__orderandchaos profile image
Order & Chaos Creative

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

Collapse
 
victorsamson profile image
Victor Samson

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

Collapse
 
lukegarrigan profile image
Luke Garrigan

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.

Collapse
 
kitgary profile image
Gary Lau

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

Collapse
 
tatianacodes profile image
Tatiana • Edited

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.

Collapse
 
lukegarrigan profile image
Luke Garrigan

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.

Collapse
 
yuripredborskiy profile image
Yuri Predborskiy

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 ;)

Collapse
 
lukegarrigan profile image
Luke Garrigan

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.

Collapse
 
yuripredborskiy profile image
Yuri Predborskiy

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!

Collapse
 
lukegarrigan profile image
Luke Garrigan

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 ๐Ÿคฃ

Collapse
 
deven96 profile image
Diretnan Domnan

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

Collapse
 
lukegarrigan profile image
Luke Garrigan

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 ๐Ÿ˜„

 
ejini6969 profile image
ejiniๆˆ˜็ฅž

I just tried Edabit and the types of problems do have a bigger variety compared to Codewars. However, it offers users a "Go Pro" package when they solve up to 10 challenges or so which is rather a shame since Codewars is a free-learning platform with more choices of language to choose from. So, I'll still stick with Codewars at the end of the day.

Collapse
 
dheerajbhaskar profile image
Dheeraj Bhaskar

Interesting approach

Collapse
 
lukegarrigan profile image
Luke Garrigan

Thank you Dheeraj!

Collapse
 
vit100 profile image
Vitaliy Markitanov

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

Collapse
 
lukegarrigan profile image
Luke Garrigan

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!

Collapse
 
luisguerrerolab profile image
Luis Guerrero

I just discovered CodeSignal (a similar coding challenges platform) and I'm now addicted, having fun while improving my skills on C#. I also want to learn Ruby and I was wondering if a platform like any of these could actually be helpful in the process. You just gave me the perfect answer:

... but the beauty of this approach is it forces you to ask questions, and these questions are vital for sculpting your mental model of the language.

Thank you for sharing this experience, Luke!

Collapse
 
sipi41 profile image
Guillermo Perez

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!

Collapse
 
lukegarrigan profile image
Luke Garrigan

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

Collapse
 
farzicoder profile image
Ahmad Faraaz

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

Collapse
 
lukegarrigan profile image
Luke Garrigan

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!

Collapse
 
rabist profile image
Rabist

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!

Collapse
 
lukegarrigan profile image
Luke Garrigan

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

Collapse
 
aw5421 profile image
aw5421

Your Esolang Interpreters series is awesome :)

Collapse
 
jacobmgevans profile image
Jacob Evans

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

Collapse
 
szymonkazmierczak profile image
Szymon Kazmierczak

Sadly it doesnt support recent versions of swift :(

Collapse
 
lukegarrigan profile image
Luke Garrigan

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!

Collapse
 
leewarrickjr profile image
Lee Warrick

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

dotnet.microsoft.com/download

Great intro to C# article, btw

Collapse
 
whippetcode profile image
whippet-code

Late to the party on this one but my that's another place for me to "productively" lose hours of my day. It's like when I first discovered CSS Battle . . . . . . . . . . . LOVE IT!

Collapse
 
camicode profile image
CamCode

Hi,
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.