Apart from an ambition to become a programmer and have an interesting well-paid job, there are plenty of reasons to learn coding even for those who see themselves in other professions.
Programming can be helpful in many areas. It develops a structured and creative approach to problem-solving. If you know how to code, you also know how to break a problem down to smaller tasks with specific actions and measurable results.
Your way of thinking becomes more logical and organized. Coding broadens your mind, so you start to see problems in the light of solutions. And of course, it teaches to be patient. Logic, problem-solving, persistence: sounds like a great set of skills for almost any professional.
Of course, coding isn’t something you can easily master by simply memorizing theory. It is important to practice programming skills from the very beginning, especially if it is your dream job. It takes hundreds of hours of practice, before you can apply for the real job. So, what options are there in learning how to code?
There are various opportunities to learn programming, such as self-teaching guides, offline and online courses. The trend of recent years is gamified online learning. It might be the best way to learn programming from scratch because you need to be highly motivated to learn programming the old-fashioned way, while gamification allows you to play and study.
Here are six gamification platforms for learning the most popular programming languages with different approaches. Choose the one that suits you the most.
1. Java: CodeGym.cc
It’s a gamified online course strictly for learning Java. The course is divided into four quests, each one has 10 levels. A user begins with level 0, in alternative futuristic reality. It is the year 3018, a galactic team crushes on a planet inhabited by wild robots. The only way to get out is to teach the young robot how to code, so he can educate others and help the team pull the spaceship out of the stone heap and return to Earth. The space crew teaches Amigo the basics of Java programming and gives tasks to complete.
The course contains lectures with just a fair share of theory and 1200+ tasks of different complexity. All tasks have instant verification option. After a student writes a solution, he gets an immediate review of every stage and suggestions how he can improve his code. If the task is tough, a user can get help from other students in “Help” section.
The course is entertaining, with constant progress and motivation. A big plus is a lively community. CodeGym is just right for beginners with zero experience in programming and for those who have a background in other programming languages.
2. JavaScript: Screeps
This is an MMO for players who already know the basics of JavaScript and want to become better at programming. Screeps is the real-time strategy game, where a player needs to develop his own colony by mining resources, building new units, protecting his territory and conquering new.
The main game resource is energy, collected by “creeps”. The colony center is a “spawn”. Each user has one spawn at the beginning and can increase their number. The thing is that there's no need to play 24/7: a player can write commands for his spawns and creeps in advance. It is the game without a certain finishing point, because the universe is endless, and everyone can continue playing, conquering new territories and changing landscapes as they want. It seems to be a good simulator where a user can practice coding. Subsequently, as he becomes more proficient, his colony will grow.
The game reality is thought out to the last detail. Before you start, it’s recommended to read well-prepared manuals which explain the nature of game objects, possible actions and strategies a user can choose, types of commands one needs to write the story of expanding colony.
3. CheckiO: Python and JavaScript
CheckiO is a gamified project for beginners and advanced programmers, that aim to learn Python and JavaScript (clearly, right now Python’s world looks more advanced). The storyline for both languages is basically the same. A user begins the game on his home island, where he already has a set of tasks he needs to solve to move on.
The islands are scattered in the ocean. They are temporarily closed, until user solves tasks on his home island (or, later, buys a subscription to get access to the most complicated tasks). Each task is marked with a level of complexity like “elementary”, “simple”, “moderate”, “challenging” labels and navigation tags: “math”, “matrix", “logic”, “parsing”, “array”, etc.
Tasks have instant verification and “hints” to help a user out. The unique feature of CheckiO is that the project develops partnership relations with different IT companies, so, for example, if you choose to learn Python, you’ll have a chance to discover Sendgrid. Dropbox, Hubspot islands, etc.
CheckiO allows not only to have a single play, but also to create separate educational classes, where every student’s progress counts.
4. VIM adventures: VIM
VIM isn't actually a programming language. It is a text editor, which is often described as an editor that comes with its own language and certain commands. VIM adventures game teaches a player how to use VIM’s keystrokes. It was quite popular a few years ago. Though the graphics is very simple, the game is still engaging. It has 13 levels, during which users learn more than 60 commands and motions. The main aim is to use the right commands, use them quickly and do as little actions as possible.
A user appears in a text-based world inhabited by tiny people (but ruled by bugs) as a blinking cursor. From the very beginning, he discovers that there is an old prophecy that he’s expected to bring order to the world. On the first level user learns how to use h, j, k, l buttons to move, and gradually, on each stage, he practices using other commands. If something looks complicated, try typing :help for any hint.
"VIM adventures” is an entertaining game, despite of its simplicity, and suitable for anyone who wishes to learn how to work with VIM from scratch.
5. JavaScript, Java, Python, PHP, Ruby and many more: Cyber-Dojo
Cyber-Dojo is a gamified platform with exercises and challenges for practicing almost 30 programming languages with at least one or several testing frameworks per each. There are more options for popular languages like Java, JavaScript, and Python.
Each task has a described challenge to complete and an example of how user’s solution might look. A student can either start an individual or group session, choose language he wants to practice and choose exercises. Other users can join a group session.
During the session, users write code and click test to see if they pass. Each test has a traffic light: red means that one or more test failed, amber means that tests have syntax errors and green means that all tests have passed.
Unlike other gamified courses, the aim of Cyber Dojo is not to finish the game by reaching the final level but to improve skills. It is widely used for coding sparring and group competitions, as it created for programmers who are familiar with coding at least on the basic level.
6. Ruby warrior: Ruby
This is a game for those who want to learn Ruby programming language. A player can choose whether he wants to start with a beginner or an intermediate track. He plays as a warrior who needs to reach the top of a high tower and get the Ruby.
The main feature is that on each level a student needs to write a code that meets the requirements, push the button and see what happens next. The first level is simple: a warrior needs to walk through the hall and climb up the stairs. Then the challenges get more complicated, with battling enemies and rescuing captives. This requires more advanced coding skills. At the beginning user’s warrior has a limited set of skills, but with each level, he advances his “actions” and “skills” abilities.
The good thing is that the game is clear and consistent. You write code – the warrior executes commands. A player can’t change the code in the middle of the level. If it fails, a player needs to restart, so one should think of every option that might happen. The game can help to learn Ruby, even from the basics, but it’ll be easier for a player who’s familiar at least with a programming logic, so he could redeploy the conditions of passing a certain level into a code.
Considering that motivation and persistence are the major soft spots in self-education, engaging gamified courses seem to be the right choice for beginners in programming world. Obviously, they cannot completely replace traditional education, but practice is extremely important in coding.
(Originally published here)