Gaming to Get Better at Programming

Beyond leveling up in the RPG of a tech career?

Many times, when talking to other developers, we bring up “leveling up.”  The idea is simple. You do the work, put in the time and you hit new levels where skills are unlocked. While this might be motivational for people who grew up playing JPGs in the 80s and 90s, I think it might be useful to augment that metaphor a bit.

It’s just a fun metaphor about programming, why ruin it?

I’m not trying to ruin it. I think it’s great fun and still can and should be used. But the landscape of modern programming is big and complex, there’s many different task, jobs, roles, and skills. It’s not just enough to be good at a language any longer.

Clans and Alliances.

You probably sit near people who do similar work to you. Sometimes, you work directly with them on projects and tickets. More often, you probably work on similar projects and sub-tasks apart from them. These are the people you talk to, eat with, car pool, and share knowledge with.

Classes

Many people in the clan probably belong to the same class. Web Developers, Sysadmins, DevOps, etc. There’s some mixing, as someone knows Front End and Back End is with someone who’s done some Graphics in the past.

Sub-Class

You’re Mage might focus on fire spells, your friend the back-end developer may focus on .NET or Java. Maybe there’s sub-sub-classes, Like Angular Front End Developers and MongoDB focused Database Programmers. An application developer may focus on location services, local storage, UI, etc. (I don’t know, you tell me.)

Skills

Overtime, your skills improve. Along with the classes is a skill tree. At the roots are soft skills, general computer skills all the way up the branches of stacks and teams, to the libraries and third party tooling you’re working with. While you may notice a great increase once in a while, and it feels like a level up, you also gain points each time you do the same thing and more points as you learn something new. Over time, your class and sub-class become more evident as skills you learn both help you figure out what role is best for you and creates new needs and opportunities for you to continue specialization.

Elite Class and Dual Class

Final Fantasy I and XI had a system where a lower class would metamorphose into a new class. For instance fighters became knights, white mages could be summoners. In other Final Fantasy games, once you sufficiently filled out your skill tree/grid you’d have places where you could jump to other skill sets and start learning other skills. This isn’t so different for IT, once you’re doing JavaScript/HTML you find your self working in ASP, JSP and PHP templates and you’ve now become an elite Front End Engineer who can code in the browser (plain vanilla JS or any Framework) and do the UI Layer on a server application… Which opens up new opportunities to learn some back end coding.

Battle Cards/Beast Companions/Summons

When working professionally, you often find yourself working with 3rd party APIs, Version Control, and complex tooling. These are handy little side skills and companions in your career.

Menu Systems

Here’ you go to wiki, documentation, and ticketing systems to manage your parties and equipment.

What do you think about this analogy? Too much? I think it’s too much. Any other fun stuff to add? What about MMO Events to Confs? Are bugs on the Kanban like side quests?

Written By StevenLacks