Whether you’re learning Python to improve your career prospects or to fill up those leisure hours with something interesting, I’m sure you’ll agree with us that practice is crucial to helping you become a better programmer.

And if you’re looking for something a little bit less mundane than practice questions with model solutions (who wants to be reminded of their O level days, right?), what better way than to gamify your practice hours?

That’s why we have curated this list of 5 free games you can play to help you improve your Python programming skills!

I. If you’re looking for something beginner-friendly

You can’t go wrong with CodeCombat.

Unlike most of the games on this list, which require you to have some understanding of how programming works before you can play, CodeCombat is a beginner-friendly platform that teaches coding concepts via gameplay.

On each level, players are given tasks to complete, such as collecting gems or defeating monsters. To complete the tasks and get to the next level, players have to write little bits of code that tell their avatar what to do.

Screenshot of Kithgard Dungeon in Code Combat
Kithgard Dungeon, which teaches players syntax, methods, parameters, strings, loops and variables. (Image: CodeCombat)

Complete your tasks well (e.g. by writing clean code) and you will be rewarded with additional points.

Screen Shot 2018-11-16 at 2.18.24 PM
You get extra experience points in this game for writing clean code. (Image: CodeCombat)

If you think good graphics are essential to your enjoyment of a game, Code Combat is likely to be your best bet. As the screenshots above testify, the game interface looks pretty spiffy and could even pass off as something more than just an educational tool.

However, if there is one negative point I’d like to highlight, it is that some of the code used in gameplay is specific only to the game, so you’re unlikely to encounter or use them when programming in real life. That said, the concepts taught through and the syntax used in the game remain applicable outside of the game.

II. If you enjoy the competitive element of coding

Head over to CodinGame.

At its most basic level, CodinGame provides its users coding practices in the form of mini games—algorithmic puzzles of varying difficulty levels. Some puzzles, especially the simpler ones, have been created to aid users in learning specific concepts.

To encourage competition, users are told of the “community success rate” of solving each puzzle.

Screenshot of classic puzzle game, The Descent, on CodinGame
Classic Puzzle, The Descent, teaches users about loops. (Image: CodinGame)

While the entire section is entitled “Practice”, some of the more difficult puzzles on the page are actually sponsored by tech companies, who are likely to be on the lookout for development talent. This challenge by Nintendo, for an example, urges users to solve it to stand a chance to “meet the Nintendo tech team”.

In addition to the puzzles, users also have the option of taking part in game-based coding competitions that take place over a predetermined period of time, allowing them to pit their coding skills against their peers.

Screenshot of CodinGame competition, Xmas Rush
In XMAS RUSH, users “develop an autonomous bot capable of competing against the AIs of other players”. (Image: CodinGame)

If you think you’re ready to pit your skills against those of others’, CodinGame is the platform for you.

III. If you want to be part of a community-driven effort

You’ll want to be a part of Codewars.

Screenshot of Codewars homepage
To partake in this community effort, you must first take a test to verify your abilities. (Image: Codewars)

In Codewars, users solve katas, which are essentially problems created and submitted by other users. The katas are sorted by levels of difficulty, from the most basic 8-kyu to the most advanced 1-kyu. The problems available are varied, with some being more language- and library-specific and others focusing on algorithmic thinking.

Once you’ve solved a kata, you can compare your answer against those of other users to learn from their solutions as well. Codewars also makes it possible to discuss kata, suggest ideas for potential kata (for others to implement, if you’re not up to the task yourself) and talk about kata best practices on its forum.

The community elements don’t just end there. If you have a neat little bit of code that you’d like to show off or to have others improve upon, you can post it as a kumite, which other users can then fork to work on or use for their own purposes. Kumites can also be translated to other languages for points.

Solving katas, posting and translating kumites along with a few other actions earn you honour points, which allow you to rise up the ranks, post katas of your own and become a moderator. This is where the game elements end. Although Codewars is no doubt great for collaborative learning, those of you who were hoping for a proper game experience are unlikely to find it here.

IV. If you like playing in a team

Join forces with other players at Empire of Code.


Built by the same team who created CheckIO, Empire of Code is a “strategy, tactics and coding” game that gets users to join one of two teams: Javascript or Python. This is the team whom you will be solving challenges and collecting resources for, the team whose empire you will be fighting to build.

The decision between Javascript and Python can only be made once and code that appears in the game (such as its puzzles) will thenceforth be shown in that language, so for those of you who only know Python, the choice is obvious.

Empire of Code is currently undergoing construction, with Season 2 on the way. In the meantime, you can still practise your Python (and Javascript) skills with the problems available on the CheckIO platform.

V. Finally, if you want a fuss-free, no-frills experience

Go with cyber-dojo.

Screenshot of cyber-dojo homepage
(Image: cyber-dojo)

Of the 5 games listed here, cyber-dojo undoubtedly gamifies coding practice the least. This is the perfect option for those of you who prefer the user interface to be simple and free of excess graphics.

What keeps cyber-dojo from being a mere compilation of problems to solve are some elements on the platform that allow users to code and solve problems collaboratively. Simply click “We’re in a group” and either create a new session or join an existing session using an ID that you were given.

This is similar to the collaborative learning experience afforded by the kata and kumite in Codewars, except that the individuals joining each session are likely to be more curated.

Why Digital Marketers Should Learn Python
Want To Enter The FinTech, VFX Or Gaming Industry? Here’s How Learning Python Can Help You
Want to learn coding? Here are 5 reasons you should start with Python!

Featured image: Petal Jantrapoon via Freepik