Do you think programming is hard and boring? Learn by playing! The selection will be interesting both to those who are just trying their hand at programming or do not know what it is at all, and to experienced developers to practice and improve their skills.

  1. Codin Game
    Codin Game provides the ability to program in several dozen languages! It presents programming tasks accompanied by online game style visualizations. It is designed for both beginners and more experienced developers. From time to time the site features contests between programmers in real time.
  2. Java Rush
    This project is based on Futurama universe and is devoted to learning Java in the form of a game. Your task: to develop your character, the robot Amigo, up to level 80. Each level is designed as a separate solar system on a map. The planets of this system are lectures. When all the material is passed, the ship moves to the next planet.

The basis of the gameplay is performing tasks: reading code, studying video tutorials, fixing bugs in code, creating programs, and much more. A person who managed to pass the whole course will get a serious set of practical knowledge and skills of Java programming, in total it is about 500-1000 hours of practice.

  1. Code Hunt
    The research department of Microsoft developed a game that is intended for learning Java and C# languages. The gameplay is fairly straightforward: the user is given incorrect code, test input parameters, and their corresponding correct values. It is necessary to fix the code so that it reproduces this result.

The levels are subdivided according to different topics (loops, arrays, string manipulation, etc.), each of which includes tasks with increasing levels of difficulty.

  1. Check IO.
    Another project, the essence of which is to write program code in Python or JavaScript. Users from all over the world compete to see whose solution is the most successful and elegant.

Check IO includes tasks of different difficulty levels with detailed help materials, but this game is not suitable for those who want to learn how to write program code from scratch – at least basic skills are required.

  1. Screeps
    Screeps is designed to master JavaScript. This is a traditional MMO in the strategy genre, only for programmers. You will develop your own colony: automate the extraction of minerals and resources, expand old and develop new territories, fight against rivals or, on the contrary, cooperate with them, and much more. A distinctive feature of this game is that the characters will continue to carry out your commands even after you go offline.
  2. Vim Adventures.
    Helps you learn the Vim editor in a visual and interactive way. The game universe is populated by bugs, and you need to put it in order by solving various problems. Vim Adventures is suitable for users of all skill levels, including those who are learning Vim from scratch.
  3. Git Game
    This is a console game that will help you polish your GIT knowledge. You will progress through 10 levels by completing various tasks.
  4. Fight code
    A game where you will fight each other on tanks programmed with JavaScript. This is a two-dimensional game world. Creating a tank starts with a simple pattern, which you can then “train” more complex maneuvers and tactics, and you’ll be able to see the improvement in real time.
  5. Colobot
    Here you will program your own artificial intelligence robots, specifying the algorithm of their work. To control the machines a special language similar to C++ and Java is used to help you learn the basic principles of writing code. The game works offline and requires a separate installation.
  6. Dungeons and Developers
    This site, made in a classic RPG style, is a tree of programmer development. All skills are made in the form of icons, which contain information about one or another branch of knowledge. Inside each skill there are links to relevant training materials and resources on the topic. After you learn the basic skills, the more advanced ones open up in a chain. This is a good tool to systematize your knowledge.