You've probably heard of Vim, that text editor you fumbled around in during your C programming class in University, or the one your senior engineer uses to to edit 5 files at once on their multi-paned terminal session.
Vim is notoriously difficult to learn and even so, the people who swear by it will tell you that it's the most efficient way to code. However, I think that the steep learning curve makes it the most fun way to code as well.
Why Gamify Coding?
The simple answer: to code more. There is more to it that that though, but in essence if you can make coding more fun, then you'll code more. And whether you're a professional developer or a hobbyist, coding more is always a good thing. Vim could be the key to your next promotion or finally finishing that side project you've been working on for the past 3 years.
If coding is something you're going to be sinking hundreds or even thousands of hours into, it is criminal to not at least try to make it more fun.
What is a Game?
Games are incredibly diverse though, let me clarify what I mean by "game". I'm a huge fan of speedrunning, that is, playing a game as fast as possible. I'm also a fan of games that require precision, skill and strategy. Some titles include: Minecraft, League of Legends, and Chess.
When learnt to speedrun Minecraft, every key press, mouse movement and block placement had to be executed with precision at blazing speeds. It was of course difficult to learn all the tricks and techniques, but the process of learning was fun and getting better was rewarding. I felt cool, skillful and most of all challenged.
League of Legends was less about speed but rather skill and strategy. It is notoriously difficult to master and again, provided a challenge that was rewarding to overcome.
Chess is the quintessential strategy game. Having a plethora of choices and moves, I found myself sticking to the same strategies that worked for me. However, I was always looking for new strategies to try out and new ways to improve my game.
These are the qualities of a game that get me hooked. They are challenging, rewarding and fun.
Vim as a Game
Vim is a game in the sense that it is challenging, rewarding and fun. It is challenging because it is difficult to learn and even more difficult to master. It is rewarding because it is efficient and powerful. It is fun because it is a game.
There are controls to learn, techniques to master and strategies to employ. You can play the game of Vim in many ways. You can play it as a speedrun, trying to edit files as fast as possible. You can play it as a strategy game, trying to find the most efficient way to edit a file. You can play it as a precision game, trying to make as few mistakes as possible.