DEV Community

John Selawsky
John Selawsky

Posted on

8 Coding Games to Improve and Level Up Your Programming Skills

main

Programming is a profession one highest demanded among employers globally. The world just can’t get enough qualified developers, with all the emerging new technology and startups we see launching every day. The profession is very demanding with a high competition that requires you to keep learning and expanding your knowledge even if you are a professional developer already.
Of course, there are plenty of ways to learn how to code, with hundreds of textbooks, video lessons, and guides available. Practiсe is the best thing that will help you learn a new programming language or library. And this is where many people often hit a roadblock: having plenty of learning materials, but seriously lacking personal experience of using the theory.
Another bump in the road computer theory — you get drowned by it along with your motivation. Without practice, you won’t see results on your learning curve.
There a solution for these problems, which is applicable to learning how to code in general or improving your knowledge of a specific language. It’s coding games! Today we are going to make a list of the best coding games available.

1. Robocode

Java, .NET
Robocode

In Robocode, you learn to program by controlling a tank fighting against other tanks and practice writing code along the way.

Pros

  • Easy and quick to learn.

Robocode is an old game (launched back in 2000) with very detailed tutorials that would explain you every aspect of the game. Its mechanics are quite simple so it won’t time to start playing it.

  • The game is fun and can even be addictive.

Robot tanks battling is always fun. Robocode has quite a huge fan base thanks to its engaging and balanced game process. Just think of it, the game launched back in 2000 is still regularly updated and maintained by fans today.

  • It makes you write real code.

In Robocode you have to write AI for your robot tank using a bunch of popular programming languages, including Java and C#. So you get to practice your real and applicable coding skills every time you play.

  • It’s an open-source game.

Robocode is a fully open-source project, which means you can reuse it make pretty much anything you want. Fans have been creating all kinds of modes and add-ons to Robocode for years now.

  • You can use different programming languages when playing.

In Robocode, you can skill up and learn a whole bunch of different programming languages, not a particular one.

Cons

  • Simplistic design.

As mentioned already, Robocode is an old game. And it has very basic graphics, design, and interface. Nothing fancy here.

  • Hard to uninstall. And if you would like to remove Robocode from your computer, it may not be so easy to do. Robocode doesn’t have an uninstall file. Instead, you have to manually find the game’s directory (which may be tricky to do) and delete all the files in there.

2. CodeGym

Java
CodeGym

Java

CodeGym is a gamified programming course designed for users to learn and practice programming in Java.

Pros

  • You can learn Java programming from scratch.

Players don’t need to know anything about coding in Java to start the game, so it’s suitable for beginners.

  • The platform offers plenty of examples and explanations to ease the learning process.

If you can’t figure how to complete one of the tasks, CodeGym provides all kinds of examples to help you find a solution.

  • CodeGym teaches you to use Java for different purposes and platforms.

It has more than 1200 puzzles in its course. They teach you how to write solutions for different tasks, fix or adapt existing code for different requirements, and other applications.

  • It’s more than just a gamified learning course.

CodeGym is an exciting online game which has an actual science fiction plot, interesting characters, and a good deal of humor. All this makes studying Java fun and engaging process.

  • Virtual mentor.

Your solution is verified by a virtual teacher, and you get the results instantly. Virtual teacher gives recommendations about your solution, helping you fix your mistakes, and also gives you a clear list of requirements regarding what you need to do.

  • CodeGym is free to use.

Cons

  • You might need additional study materials to understand some aspects of Java.

Sometimes, what the puzzles give you is just not enough, and you might need to start looking for additional information and tutorials. Good thing is, you don’t need to look far. There are plenty of materials for Java available online and on the platform.

  • The game is not fully optimized for mobile platforms.

CodeGym could really use some adjustments to better fit mobile platforms.

3. Codewars

Clojure, C, C++, C#, Crystal, Dart, Elixir, F#, Go, Haskell, Java, JavaScript, PHP, Python, Ruby, Rust, Shell, SQL, Swift, TypeScript
Codewars

Codewars is a gamified online platform with coding challenges where users can solve puzzles and compare their solutions.

Pros

  • You can compare your solutions with the other players.
    Codewars allows you to compare your approach to a puzzle solution with other users. This helps to quickly find the bugs in your code, as much as learn how the same problem can be solved from a totally different point of view.

  • You practice coding through completing challenges.

Solving different puzzles and algorithmic challenges is one of the most effective ways to learn a programming language fast.

  • Codewars is free to use.

Cons

  • Requires some basic coding knowledge to start.

Codewars is not as newbie-friendly as, say, CodeGym. You need to learn some coding basics before you start using it.

  • Limited topics for challenges.

After using Codewars for some time you will realize the platform doesn’t have that many kinds of puzzles to offer.

4. Shenzhen I/O

Shenzhen

Shenzhen I/O is a puzzle game that teaches future engineers how to build circuits and write assembly code based on provided requirements.

Pros

  • Shenzhen I/O models IT work in general.

This game is not as focused on programming languages as the previous ones but the skills you are training with it would be applicable for many different jobs and purposes in the field.

  • A perfect choice for those interested in programming the old-fashioned way.

Back in the day, without the fancy IDEs and frameworks, the code had to be much more detailed. And that’s what this game allows you to practice.

Cons

  • Shenzhen I/O is quite difficult.

This game doesn’t have a complete user manual and its puzzles generally are quite difficult, so many people may find it way too hardcore.

  • It has a steep learning curve.

Shenzhen I/O is rather difficult to learn. It starts with a couple of fairly simple tasks, but the puzzles get a lot more complex quite abruptly. The game doesn’t give you much time to adjust.

5. Vim Adventures

Vim
Vim

Vim Adventures is a game for learning or improving your knowledge of Vim, the popular Unix text editor.

Pros

  • It’s a simple way to learn all the main Vim concepts.

Playing this game you will quickly learn all Vim’s keyboard shortcuts, main concepts, and functions.

  • Useful for learning programming logic.

Although Vim, strictly speaking, is not a coding language, knowing how to use it would help you as a programmer a lot.

  • Vim Adventurers is simply a fun and entertaining game.

Cons

  • Some users might get bored easily.

Vim Adventurers is overly simple, which could make the gaming process boring quite quickly.

6. CodeMonkey

CoffeeScript
CodeMonkey

Code monkey is an online coding game mainly designed for elementary and middle school students with very limited or zero knowledge in coding, which make it a good option for beginners.

Pros

  • Good for students with zero knowledge in coding.

CodeMonkey is a great start for teaching children and teenagers how to code. And if it’s good for them, it’s good for any age.

  • It improves logic and problem-solving skills.

Skills you are training while playing this game, like logic and problem-solving, can be applied almost anywhere in life, not just coding. It makes CodeMonkey good for those who are interested to improve these skills, while also learning how to code.

  • Its coding language is similar to JavaScript.

Using this language in CodeMonkey makes it easier to learn JavaScript after playing the game.

Cons

  • The game isn’t so well-adjusted for students studying at home.

It often requires technical support and help. CodeMonkey fits much better as a class interactive activity.

7. Flexbox Froggy

CSS
Froggy

Flexbox Froggy is a simple game designed to help users in learning CSS code. Players have to bring Froggy home by mastering a layout module CSS flexbox.

Pros

  • Made for users without any knowledge of CSS.

Made specifically for beginners in CSS flexbox so you can learn the basics of CSS with Froggy.

Cons

  • The game is very simple and only good for beginners.

Simplicity is also the biggest disadvantage of Flexbox Froggy. It’s more suitable for complete beginners and doesn’t offer much learning space for more demanding users.

8. CodeCombat

JS, Python, HTML, CSS, jQuery
CodeCombat

CodeCombat is an online game, which consists of puzzles and challenges player need to solve by writing JavaScript code.

Pros

  • Works as an introduction to JavaScript syntax and logic for beginners.
    You can start with very simple puzzles and progress slowly, learning JS syntax step by step.

  • It is fun and engaging.

CodeCombat offers players quite a broad spectrum of puzzles and challenges, which makes it really fun. You won’t get bored playing this game for a while.

Cons

  • Teaches only basic JavaScript concepts.

CodeCombat only covers the most basic concepts of JavaScript, and if you mastered them already, to learn further you would need to find another tool.

Wrap Up

Learning while playing is not a new concept, and games are a tried and tested approach to learning or improving a skill. And coding is not an exception. There are plenty of great coding games available for all types of players. No matter which language you are learning or what is your current level, you can find the game to pump up your coding skills, while having fun at the same time.

The article was originally posted on GitConnected blog.

Top comments (27)

Collapse
 
tatianacodes profile image
Tatiana • Edited

A good Javascript resource I've used that is similar to Codewars is Edabit. It has easier challenges for beginners, but also offers higher level problems too. I found it after being frustrated with how advanced Codewars seemed to be, but also wanted to practice in a similar fashion. I believe they do Python, Java, C++, C#, and others too.

Collapse
 
selawsky profile image
John Selawsky

Thank you, will try!

Collapse
 
umavictor6 profile image
uma victor

thanks alot

Collapse
 
aliokan profile image
Laurent Deketelaere • Edited

Have you tried "Clash of code" on codingame.com/ a 5min challenge, really fun!

Collapse
 
pkochanski profile image
Patryk Kochański

I would also add CodeSignal to the list. It has a bunch of "worlds", which you can "conquer". I just love the design and overall theme.

The difficulty of problems vary, they are usually pretty easy and you can solve them using different languages.

Collapse
 
davidrushton55 profile image
David Rushton

If you haven't checked out elevator saga it is cracking little game. Using JavaScript, the aim is to deliver passengers to the floor of their choice.

Collapse
 
selawsky profile image
John Selawsky

Thanks!

Collapse
 
gledsonafonso profile image
Gledson Afonso • Edited

No love for else Heart.Break()? :'(

Also, for people who liked Shenzhen I/O, Zach (the creator of the game) made a Google Talk in 2017 that was pretty cool where he talks about the games he made in Zachtronics.

Collapse
 
selawsky profile image
John Selawsky

Wow! Will try for sure)

Collapse
 
mvoloskov profile image
Miloslav 🏳️‍🌈 🦋 Voloskov

Nice list though!

The best game to level up your skills is the one you build yourself :)

Check out mine.

Collapse
 
tachyonlabs profile image
Tané Tachyon

Another big pro of Codewars is that despite the name it's actually a very collaborative site. As soon as you reach a certain "honor" (earned by solving programming challenges) level, you can author and contribute your own programming challenges and unit tests for the site, in addition to translating programming challenges and unit tests others have written into additional programming languages. Designing and writing good programming challenges with clear and engaging descriptions and thorough unit tests is a great learning experience in itself, and you'll get feedback from other users to help you improve. If your challenges are ranked highly enough by the other users then they will come out of beta to become official approved challenges on the site.

Collapse
 
mariusbalcytis profile image
Marius Balčytis

I'd surely add Screeps to this list!

Collapse
 
chinchang profile image
Kushagra Gour

Here is one for CSS (and code golfing) -> cssbattle.dev

Collapse
 
saiafonua profile image
Saia Fonua

If you want to learn about service workers: serviceworkies.mastery.games/