Programming is fun once you’re confident and know what you’re doing, but getting to that point can be a grueling experience.
Which is why, in between classes and lectures and tutorials, you should set aside time to play these programming games and challenges. Not only do they serve as fun breaks, but you’ll learn faster and retain more info thanks to the hands-on practice and experience.
Robocode is a complex programming game where you code robot tanks that fight against each other. Your job is to write the artificial intelligence that drives your robots to success—using real languages like Java, Scala, C#, and more. To get started, check out the Robocode Basics and Tutorials.
The Robocode installer comes with a development environment, built-in robot editor, and Java compiler. You’re actually writing real code! Despite launching back in 2000, Robocode is still regularly updated and maintained, helped along by the fact that it’s open source and extremely addictive.
Codecombat is another web app for game-like puzzles and challenges that can only be solved by writing code. But whereas Codingame is more entertaining, Codecombat has a significant educational bent with a “Classroom Edition” that teachers can use to help their students learn how to code. As of this writing, three course paths are available: Computer Science, Web Development, and Game Development.
Codewars isn’t so much a game as it is a gamified way to practice coding and solving algorithmic challenges. You get points for completing puzzles and point values are determined by how efficient your solutions are. Codewars lets you view solutions submitted by others, which you can study and learn from. I believe it’s one of the best ways to learn a new programming language and its idioms.
Codehunt is a game that can be played using either Java or C#. It’s designed to teach you the fundamentals of whichever language you pick, starting with Training, moving through topics like Loops and Strings, and ending with intermediate challenges like Sorting, Cyphers, and Puzzles. What’s interesting about Codehunt is that it doesn’t tell you how to win each challenge—figuring that out is part of the fun!
Vim Adventures is a fun game-like tutorial for learning how to use Vim, a highly unusual but extremely powerful text editor that many programming pros love to use. It has a huge learning curve though, which is why tutorials like this exist. So while Vim isn’t a programming language per se, mastering Vim can help you become a more efficient coder, hence why I’ve included it in this article.
“It’s the assembly language programming game you never asked for!” It says so right there on the tin. TIS-100 is a video game like no other, forcing you to learn and use a mock version of low-level assembly coding to solve its puzzles. This game is not a joke—it’s difficult, it’s open-ended, and it has incredible replay value as long as you don’t become so frustrated and confused that you uninstall in a fit of rage.
Download: TIS-100 ($7)
8. Shenzhen I/O
From the same studio behind TIS-100 comes Shenzhen I/O, a puzzle game where you’re tasked with creating simplified circuits and writing simplified assembly code that runs on said circuits. Between the two games, Shenzhen I/O is easier to get into and more enjoyable yet just as satisfyingly complex.
Download: Shenzhen I/O ($15)
9. Human Resource Machine
In Human Resource Machine, you play as an office worker who completes tasks by combining various instructions together. In a sense, this game is all about puzzle solving through visual programming, even going as far to touch on concepts like logical flow and memory management—but presented in an easy-to-digest, office-themed way. It’s a great game for exercising your programmer’s brain.
Download: Human Resource Machine ($10)
Download: Screeps ($15, optional subscription for $9/mo)
Other Ways to Sharpen Your Coding Skills
Looking for yet more ways to hone your programming ability? I highly recommend exercising what you know with one of these programming project ideas, and you may benefit further by listening to some of these podcasts for coders and developers.
However, if after everything you’re still struggling and can’t seem to grasp the basics of programming, you may want to step back and consider whether programming may or may not be right for you. Let us know how it goes!