by Drew

Hurry, the villagers need your help!

1*_2rJuLv2OKShcjJFE0M95g
A manually assembled Minecraft sculpture

Learning to code takes time. It takes endurance.

It can be frustrating. But it will lead you down some unfamiliar paths.

And it’s the challenge that keeps us going.

The promise is that if we just continue to attack the problem we will eventually overcome it and we can move on to the next challenge stronger and smarter than when we started.

Gamification — the practice of turning things that aren’t games into games — has become a popular way to keep people engaged through long, difficult processes. Like learning to code.

The premise is simple: give people small challenges that push them to grow in some way, and then reward them often for it.

The modern MMORPG (Massively Multiplayer Online Role Playing Game) is a testament to how a series of challenges that reward people in a meaningful way can keep them engaged for a very long time.

Allow me to go full on nerd here and draw some parallels between the MMORPG world and the challenges of the budding programmer.

1*ppLzwh5BSq57-8lMXwXfDg

Leveling up is one of the core principles of gaming world. Typically players start out at level 1 and earn experience points (XP) in a variety of ways, pushing them ever closer to the next level.

In an MMORPG, players gain XP for killing enemies, exploring new areas, and completing quests. The higher your level, the more that stats like intelligence, strength, and agility increase.

The higher your stats are, the more powerful you become. And the more powerful you are, the more likely you’ll survive encounters with bigger enemies and tougher challenges.

In programming, we are also leveling up. We gain XP from exploring the lands of a new language, slaying coding problems, and completing quests in the form of solving real world problems with code.

The entire time, we are gaining XP we are also increasing our stats. We gain more knowledge (intelligence), we learn to smash through challenging tasks (strength), and develop a wide variety of skills that give us the flexibility to tackle the same problem in many different ways (agility).

1*S-ViZBhRjUUTdWPSMrHP2g

Combat systems in an MMORPG can be akin to the processes used to create programs. Functions and algorithms become our spells and weapons.

As players level they are granted new abilities that are effective in different situations. When an enemy arises, you will need to use the right abilities at the right time to slay him.

Take the Compile monster in the land of Java for example. When you try to charge at him, he might just laugh at you and hit you back with the mighty “Hammer of Null Exception.”

If charging is all you know, you will never defeat him. He will always send you retreating to your base camp to recover from your wounds.

In order to defeat this particular enemy, you might try casting the “Spell of Null Check” to render his attacks useless.

There are also the Div Trolls. These wily creatures can be quite frustrating. They possess the ability to dodge your attack by moving to a different place on the screen or turn altogether invisible.

If you picked the CSS talent you could strike them with the “Illumination” ability (.illumination { border: solid red 1px;}) to break their invisibility, and allow you to properly line up your attack.

The path to becoming a powerful coder will require the mastering of many different abilities, and the understanding of when and where to use them.

1*BcfQUyLOGvC0P68kzyCVug

Exploration can be both exciting and terrifying at the same time.

In an MMORPG, we typically begin our journey in one of many different starting areas, depending on what type of character we choose. These starting areas generally ease us into this new world and get us comfortable with the way the game is played.

While this can be a good introduction and an enjoyable experience, players will typically get bored with the basics, and wonder what is further down the path. In the same way, new programmers have a variety of starting points from which to choose.

No matter what you start with, you will typically begin in the most basic areas, trying out simple commands and building from there. The landscape will all seem mysterious at first, but you will quickly become familiar with your surroundings. You’ll wander further and further from where you started.

While you may choose to stay in your original lands and become the most powerful player in that zone, more likely you will charge off a new direction looking for your next adventure.

1*oZc0JqAYE8f4ABtdeUv9Ig

Questing is the hallmark of MMORPG genre. You’ll interact with virtual characters who will enlist your help for a variety of tasks. Sometimes, they will send you on a simple errand to gather needed supplies. Other times, they will plead for you save their entire village from the relentless torment of a nearby dragon.

No matter the request, you are the one responsible for making their pixelated lives better, and improving the world around you. Typically, there is a reward given for completing the quest. But, ultimately, the glory of being a hero and the experience you gain along the way will outweigh any gold waiting for you at the end of the rainbow.

In the same way that the MMORGP’s helpless villagers implore you to save them from dragons, real world businesses will seek you out as their legacy codebase hero or their server savior.

Quests can come in all forms in the programming world. People have more needs than they can count, and often the solution can be achieved through well reasoned and carefully constructed code.

They might send you on a simple cat photo gathering mission to brighten their day, or ask you to change their lives forever by bringing them specific health information at just the right time.

There are quests everywhere to be completed, from the mundane to the seemingly impossible. It’s up to you to accept these challenges and slay these real world problems with the powers you obtain through programming.

1*bEf7fNS03ff1dBG7f4QO9g
1*HnL1yQLQF59HOPvTzRXtcw

If you are just beginning your adventure, and are overwhelmed by the vastness of your new surroundings, take a deep breath and remember that everyone starts out here. No one is born knowing how to code, any more than they’re born knowing how to play an MMORPG.

We all have to go through the same starting areas, and build our skills gradually. The key is to load up, login and get playing. There is only one way to get better, and that’s simply to work at it.

Get out there and slay those monsters and save those villagers. It won’t be long before that starting zone — and your low-level skills — are nothing more than the quaint memory of a powerful warrior.

Originally published at thecodinghyrax.wordpress.com on March 2, 2016.