In this post, we’ll take a look at some of the best online games to learn new programming languages and practice your existing programming skills. Some of those are beginner only, others may seem far advanced at the start, but give it a go, and you’ll thank us later. If we forgot to mention something, or you’re building a cool game of your own, do let us know in the comments! Happy learning!

If you ever tried making the learning process of programming languages and concepts a little more fun, then we bet you’re familiar with Codewars, and if you’re not, then it’s the best timing to check the site out.

Codewars is made to help you improve your skills in more than 20 languages by solving real code challenges created by the community; moreover, you can check how others tried to solve the challenges and vote on the best answers. All coding tasks can be solved right in the browser with whatever coding style you prefer. Your ranking (the difficulty of which is measured in virtual so-called “katas”) is recorded as you progress through the multiple challenges of varying difficulty, so you’re later paired with the relevant challenges that match your existing skills. Again, you can compare your solutions with other members for a greater understanding of different programming concepts or different ways to solve the same challenge. You can also create your own kata games and challenge the community with your understanding and superior knowledge (if you have any ;-).

Codewars is free to use, but before you start, you really have to have at least some basic knowledge of coding. What I’ve also noticed from my experience is that some challenges which are supposed to be really beginner-friendly subjective-wise turned out to be quiet a challenge for my IT teacher, not that he’s bad or anything, it was just not for beginners. Challenging — yes? Very much so!

We’ve already covered this great platform in Coding Interview Tools , so check it out for more details on other platforms where you can check other programmer’s knowledge. But, if you’re here for an adventure or learning opportunities, don’t you worry — Codingame has it all for you! More than 25 languages addressing all the hot programming concepts and topics, where you can easily advance to the next level with a new set of coding challenges and peer-review. The most fun with Codingame is that you can challenge your schoolmates, friends, family, coworkers and even your boss in super interactive challenges where you can finally convince someone you deserve that promotion; and if even you don’t have anything prove, maybe just have fun for once with your knowledge? There also plenty of contests, which you can join for pure fun or maybe a little bit of glory? Moreover, you can actually use your Codingame profile to land that dream job of yours proving your track record in your chosen technologies by completing challenges and making your profile visible to only those employers you care about.

The companies can use the Codingame platform to source, screen, employ, and retain new employees: engage within the community, use existing online tests, organize game-based interactive hackathons, and more. Companies that have already joined and taken advantage of the said opportunities are Facebook, Adobe, Deloitte, Nintendo, among others.

CSS Diner is a cute little game whose sole purpose is for you to practice correctly selecting specific elements for use in CSS stylesheets. There are 32 levels with hints if you feel stuck at any point in particular. In each of the different levels, you’ll see a table with plates set on it. The challenge is to select one of the plates by itself using CSS selectors. You can preview the elements in HTML so you can visualize the code.

Another game by the same author that has been out since recently is Paddleforce , the fast-paced update of the classic pong game designed for head to head play, it’s best enjoyed with a friend and two gamepads; however, you can also play with a keyboard. Nothing particularly educational about that last one, but if you’re in to have some fun, then this is the game to play.

Flexbox Froggy is another fun game where you help a little green frog navigate through the pond by writing CSS code and learning the basics of aligning things in flexbox. Flexbox Froggy is made especially for complete beginners in CSS flexbox, so you can learn everything on spot by navigating the frog. And while simplicity is one of the biggest advantages of Froggy, it’s also quite a disadvantage — if you’re good enough with CSS and flexbox, then you’ll find the game very obvious, straightforward, and even boring.

Flexbox Defense is another great way to master your flexbox skills. However, this time, you’ll move gun towers into position along a path to defeat oncoming waves of enemies. Unlike other tower defense games, in this one, you’ll have to exercise the power of CSS, and yes, you got it, flexbox properties.

Robocode is a programming game where the goal is to develop a tank to battle against other tanks in Java or .NET. The robot battles happen in real-time on-screen. Despite the site design being reminiscent of something from the long-forgotten 90s, Robocode gets updated on a regular basis with the newest version released in August 2019. Besides being a fun game, Robocode is used to learn how to program or how programming concepts work; schools and universities use the game to teach students programming and AI.

IntelliJ IDEA, NetBeans, Robocode offers a complete development environment and comes with its own installer, built-in robot editor, and Java-compiler. The only pre-requisite for Robocode is JVM to already exist on the system where Robocode is going to be installed (Java 6 or newer must be installed on the system before Robocode is able to run). Robocode also supports developing robots using external IDEs like e.g. Eclipse Visual Studio, etc. The game can be run on any operating system with Java pre-installed, meaning that it will be able to run on Windows, Linux, Mac OS, UNIX.

Since Robocode is an old game, there are plenty of detailed tutorials and extensive documentation of every aspect of the game. The project is fully outsourced meaning you can reuse it and create something of your own, more or less sophisticated, or contribute to all kinds of modes and add-ons to the game. Moreover, Robocode is not just about Java, you can also use it to test your knowledge in other programming languages, like C#, Scala, .NET.

Among the disadvantages, as mentioned earlier, is a very simple design with basic graphics and interface.

Codegym is an interactive, gamified online Java programming course that consists of four quests such as Java Syntax, Core, Multithreading, Collections, each consisting of ten levels. Each level has short lectures on Java theory followed by a set of tasks to test and consolidate your knowledge on new concepts.

So, what’s exactly in the game? Codegym is a futuristic city with its own characters and history: the character you need to upgrade is Amigo, the robot, who learns to program. If you complete the tasks correctly, you earn bonuses which are named “dark matter.” Even though there’s some inevitable amount of theory involved, you’ll primarily learn by practice. Starting from the middle of the course, you’ll start writing mini-projects like apps, chatbots, games, so that you can later include them in your portfolio, which you can submit to prospective employers. Every step of the way, you’ll receive feedback and help from the course instructors, Codegym alumni, other students, and developers.

Perhaps, the biggest disadvantage of Codegym is its price, which is subscription-based, starting from $30 a month to $50 a month. The only level which is free is level 0, you can take it, no strings attached, to see what features Codegym has to offer and if it works for you.

Vim Adventures is another cute online puzzle game for practicing and memorizing VIM’s keyboard shortcuts (commands, operators, motions). There’s no steep learning curve, the game is pretty straightforward and lots of fun. You start the game with the only ability to move up, down, left, and right, but as you progress you talk to people, collect items, and keyboard buttons, which add to the set of commands you give the cursor until you master VIM.

Shenzhen I/O is a puzzle game that teaches how to build circuits and write assembly code based on provided elements. Although not focused on any specific programming language, it is one of the best games there is to learn programming concepts and skills necessary for many different jobs and purposes. If you’re interested in programming in the good old fashioned way, without the fancy frameworks or IDEs, then this game will allow you to practice in full.