Coding is all about using the tools available to you to solve problems (and then solving the problems that resulted from your solution to the previous problems, of course). That also happens to be the basic idea behind most video games, so the two combine pretty naturally. Plus, playing around sure beats reading documentation!
These coding games cover plenty of languages, age ranges, and skill levels, so whether you’re a complete beginner or looking for something on the next level, there’s a game out there to help you learn coding the best way: by doing it.
1. Code Combat
Code Combat is a coding lesson wrapped up in a medieval RPG and is designed to get you familiar with programming concepts like variables, methods, objects, and more. It manages to keep the basics fairly interesting, but the gameplay isn’t much to write home about: you can’t skip levels, and there’s some divide between the skills you learn here and real-world applications.
If you want a friendly introduction to code that feels like less work than a beginner-level course, Code Combat is great. If you already have some programming experience, though, grinding through the early levels to get to new concepts may bore you. It’s probably better for getting into the “think like a programmer” mindset than for learning real-world development skills.
Best for: Beginners, kids
2. Ruby Warrior
Ruby probably isn’t the most relevant language to learn anymore, but this coding game might be worth a shot anyway! Ruby Warrior is a 2D side-scroller that lets you control your character using Ruby and general programming logic. It tosses you right in, letting you learn as you go, and does a great job of being informative, simple, and fun. Whether or not you need to learn Ruby, the game is both cute and fairly challenging.
Best for: Advanced beginners/intermediate
Languages: Ruby on Rails
CodinGame is essentially a puzzle repository with a focus on algorithms and problem-solving using code. The fun/gaming aspect is definitely there (more in some puzzles than others, admittedly), but your brain may start to overheat as you work your way through some of these challenges. They can get pretty rigorous and require some complex thinking and programming expertise to get through.
The material covers a wide range of programming languages and difficulties, but CodinGame probably isn’t a good place to start as a beginner. Even the easy tasks assume some familiarity with code and algorithmic thinking.
Best for: intermediate to advanced coders
CodeGym is more a course than a game, but there’s a pretty serious story element included. Their goal is to get you from close to zero to junior Java developer using story-driven challenges and projects that you can do in the IntelliJ IDE (Integrated Development Environment), which is a great introduction to the coding tools you’ll be using later. You’ll have to pay for some parts of the course, but the free content gives you a good taste of whether or not the course will fit your Java journey.
Best for: Beginners+
The “game” part of this is actually a pretty thin shell layered on top of a series of coding challenges and documentation, and you might find yourself wondering, “Wait, when does the game start?” for a while after you start playing around with CheckiO. That said, the coding challenges could certainly be helpful for anyone with some prior coding knowledge, and the whole hopping between different coding islands theme brings some color to the experience.
6. Elevator Saga
Some sites didn’t make the above list because they either weren’t quite game-like enough, don’t exactly teach code, cost money, focus on young learners, or are targeted specifically to pretty advanced coders, but they deserve a mention here nonetheless!
- VIM Adventures
- Hack ‘n’ Slash
All these coding games can do is help you practice, though. Ultimately, being a coder is about going out and building your own things. Using sites like CodinGame and Codewars can help you keep your skills honed and growing, but after you’ve learned basic syntax, building progressively bigger projects is the best way to keep learning.