Why do you practice coding with Codewars?
When thinking of Codewars, improving developer skills is top-of-mind. But there has to be more, right? We wanted to learn more about personal use and the nuanced ways users gain value from Codewars.
We surveyed users ranging from brand new Codewarriors to seasoned veterans to better understand why they practice coding with Codewars. While reading through the survey responses, several distinct areas of value appeared. We're so excited to share what we learned with you!
We hope that these Codewarriors' stories spark new ideas in your training and inspire you to challenge yourself in ways you haven't considered before.
By the way, the survey participants had the opportunity to submit their favorite kata. Train on their favorites (8kyu - 1kyu) in this kata collection.
1. Using Codewars to pick up new languages
With 58 programming languages available, Codewars is the ultimate training ground for those looking to learn different languages. From JavaScript to Nim and everything in between, Codewars sets the stage to practice new programming languages, master your current favorites, and brush up on languages you've set aside.
"I happened to stumble upon Codewars through online discussions and forums, and joined the Codewars community on January 2016. I was hooked! I learned about arrays, loops, built-in methods, recursion, Turing-completeness...you name it. Codewars was also a great way for me to pick up new programming languages, and I started learning languages other than JavaScript like PHP, Python, Ruby, Java, C# ... and later C and Haskell as well (among many others)." - donaldsebleung
Some Codewarriors join the site to learn a single language and walk away with learning several languages.
"I wanted to learn a new programming language, and I knew the best way to do that was to practice writing actual code....I thought, "There has to be some website out there that just has a bunch of coding challenges." I did some googling, and I found a few websites that fit the bill, but Codewars was the one that was best put together. Other websites want you to read input from a command line and output all your answers as strings. Codewars is the only site that I know of that sets up its tests like actual unit tests. The number of languages available was also quite impressive, so I've actually picked up a few languages since joining." - BobtheLantern
And maybe, no pressure, you'd want to try learning all 58 languages like this anonymous 1dan user...
"[Codewars] helped with learning 58 languages." - Anonymous
Mic drop.
2. Using Codewars to improve problem solving
Exercising the parts of your brain that mull over problems and crafting solutions is at the heart of Codewars. You're not at it alone, either. With Codewars Solutions, you can see into the mind of the developers that came before you. Study their code, ask questions, and gain new perspectives. Tackling a coding problem from a new perspective means you're growing as a developer and a problem solver.
If you give one hundred developers the same coding challenge, it's likely you'll receive one hundred different solutions. No two developers program alike, and that's a good thing. Like an anonymous, participant said, "[The] most beneficial part [about Codewars] is having multiple answers for every problem from multiple people." Why? Because there's a lot to learn from your peers about problem solving.
"There is no doubt that Codewars played a key role in my understanding of problem solving through programming, and is a major factor why I finally decided to study Computer Science at university instead of Mathematics." - donaldsebleung
Problem solving plays a large role in software development. It's not simply "the ability to solve a problem", but it's the determination to spend hours on a difficult task, the self-confidence that says "I can figure this out", and the restraint to work towards delayed gratification instead of sloughing it off for instant gratification.
"[Codewars] has sharpened my ability to dissect a problem, strengthened my codings skills, built my coding self-esteem, upped my problem solving skills, and also made me enjoy things that does not give instant gratification." - Anonymous
"[Codewars has helped me improve] problem solving, PATIENCE, precision, and to not be afraid to try new things." - ghifarullah19
And yes...maybe there's even something to learn about problem solving from the one line solutions, too. Or maybe there's not. I'm staying out of it.
3. Using Codewars in classroom curriculum
Codewars is used as a classroom tool by universities, high schools, bootcamps, and self learners alike. To name drop a handful of groups that have clans in Codewars:
- Thinkful
- IronHack
- Coding Dojo
- Udacity
- UCLA
- UC Berkely
- Vanderbilt University
- Cornell University
- Carnegie Mellon
- Saint Louis University (Go Billikens)
"I first heard about Codewars from one of my students. I love programming tasks that allow learners to pick and choose what topics they're interested in practicing and what level of challenge they're ready for. Too many exercises force students to struggle with a single problem to the point of frustration, whereas Codewars always has new exercises to try...I like to think of Codewars as recreation with the subtle bonus that you're learning at the same time. I've recommended it to numerous students and educators alike." - scarecrw
Codewars, to some, is like a more fun version of homework. Even if Codewars wasn't an exciting assignment at first, it could come in handy down the road.
"[I] discovered Codewars through my programming teacher and registered last year. [I] didn't use it much then since I wasn't good at problem solving and coding. But now I use it everyday to practice newly discovered aspects of Swift and [for] getting better at solving problems and interview tasks." - pineaapplepower
The folks over at #100Devs, led by Leon Noel, are phenomenal examples of incorporating Codewars into daily learning and coursework.
"Codewars has been a large part of our training with 100 Devs. We are tasked with solving at least one JavaScript problem every single day. Some weeks we have a specific focus, like solving only string problems for example, to really help hone our skills. I love the variety of problems available within the site. The progression feels exciting as well, and I'm always hungering to reach the next kyu level." - brynnsmith
4. Using Codewars for gamification
Gamification works because it's engaging. Gamified activities, ahem, like Codewars, provide a dopamine kick that encourages motivation. Plus, an integral part of gamification and games involves "recall" -- an action in the hippocampus that stimulates long-term memory. Neuroscience aside, games are fun. Earning points and rank (and bragging rights) is fun. Reaching a kyu you never thought you could is fun.
"Solving problems on Codewars is more fun and more doable (because the problems can be small as well as big) than doing a real life project - which comes with all sorts of problems I don't necessarily want to solve. I can code in lots of self-contained small bites if I want, or I can tackle really difficult, bigger problems if I feel like it." - JohanWiltink
"I mean, it started as an educational tool, but now I feel that there is also a recreational element to it. It can get a little addicting sometimes." - brynnsmith
That's that dopamine in action.
"I started [using Codewars] because I like programming and some tasks are harder than on the job. What I like the most is: Rank. 😀 " - Anonymous
5. Using Codewars for deepening understanding
There's a concept used in writing called Writing for Understanding. Instead of knowing a subject inside and out, sitting down, and writing an exacting, precise essay, writing for understanding is a practice used for thoughtful exploration, genuine understanding, and mistake making. This type of writing is focused on the journey, not the destination. The same can be said about Codewars. Not all Codewarriors use Codewars for its obvious uses. Some use it as a way of understanding programming, as a vehicle on their programming journey.
"[Codewars is] a hobby; I'm not a professional developer. The hobby is not just programming, though; it's a vehicle for thinking about programming (paradigms, data structures, flow control, algorithms ) as well." - JohanWiltink
Another tactic of understanding is being exposed to different tools and seeing first-hand how other users implement them within Codewars.
"Codewars is a great way to see new libraries/packages/modules in action. Seeing how other users make use of tools you may not have known existed is a great motivator to learn to apply those tools yourself." - scarecrw
6. Using Codewars for mentorship
Eventually, the student becomes the master. And even still, there's more to learn.
When fresh developers enter the scene, they're digging to understand a vast world. Each developer is an individual, meaning they will have individual ways of thinking and unique questions to ask. You can learn a lot by explaining concepts to beginners and answering questions they pose. This approach encourages deeper thinking and requires you to truly understand what you're talking about instead of just rattling off the bullet points.
This happens often in Codewars. Whether it's by commenting on solutions, discussing kata, or conversing on the Codewars Discord, there are boundless opportunities to mentor other users and continue learning.
"I'm already a professional software developer, but nobody knows everything. There are always things that you can improve in your own skillset...One of the things that helps deepen my knowledge about a language is helping newer developers when they have questions. They will often ask "why" something works the way that it does, and I find that I've never asked that question myself, so I go build an understanding before I give them an answer. It sounds strange, but helping newer people ends up educating me as well." - BobtheLantern
Mentorship on Codewars is available in hands-off ways, too. If you're not interested in taking a mentee under your wing, you can create opportunities for beginners to learn themselves.
"I stick with Codewars mostly for the community, and for adding support for new languages and technologies to Codewars so our fellow Codewarriors can further expand their horizons by learning about them." - donaldsebleung
7. Using Codewars to upskill
To state the obvious, Codewarriors use Codewars to get better at coding. Across the internet, there are countless ways to learn to code and practice coding challenges...but none quite like Codewars.
By training on Codewars, you can see where your skills stand compared to other developers. For example, your kata solution may not be as effective as someone else's. It happens. Codewars can be humbling at times, but with humility comes true improvement.
"I found Codewars after googling for "code challenges". At the time I knew the basics of Python, but was at the peak of my DK curve (Dunning-Kruger effect), so I thought I could solve anything. Codewars hooked me because it made me realize where my skills actually stood, but I also felt myself making real progress in improving." - Kacarott
From language specific goals (like getting better at solving Python coding challenges) thinking about and planning solutions, there's limitless upskill potential with Codewars.
"While searching Python exercises, I found Codewars. It helps me strengthen my knowledge about Python overall, [including] Python Backend Web and Python fundamentals." - comrade1026
"Working with Codewars has greatly helped me improve my reaction time when it comes to thinking about and planning out solutions for problems." - brynnsmith
8. Using Codewars as a lifestyle 😉
Candidly, only one participant admitted to this, but we couldn't help but include it. Eat. Sleep. Kata. Repeat.
"I use Codewars as a lifestyle." - Anonymous
Conclusion
This isn't a comprehensive list by any means, but it offers a glimpse of the possibilities of how Codewars can be used in your journey as a developer. Whether you're brand new to coding and want to master the fundamentals or you're a seasoned veteran looking to give back to a community of young developers or maybe you code just for fun, Codewars is meant to be a versatile community tool box to help you master your craft. Let us know how you train by mentioning @codewars on Twitter.
We'd like to thank all the folks that took time out of their day to participate in this survey. Your time and insight is invaluable!