Most developers like to solve puzzles. As developers we press a sequence of buttons/keys to produce a desirable outcome. Similarly, while playing a video game we also press a sequence of buttons to reach our end goal.
Let's cover the many ways playing video games can be similar to being a developer.
Every good game has a challenging boss level. Imagine you are playing one of your favorite video games and you’ve been struggling on this boss level for 2 days. Eventually you figure out the pattern to beat him and you finally succeed! You excitedly jump out of your chair while raising your arms in victory!
This amazing feeling of victory is a lot like fixing a difficult bug or releasing a new feature that you've been working on for a couple days or even a couple weeks. You'll definitely need a level of patience being a developer, but when you finally solve a particular problem, it feels amazing.
Most of the playing/working you do as a developer will be enjoyable, but every now and then you’ll have to play that same level again, making sure that you are as efficient as possible and have collected all the coins.
This is similar to when you have to push pixels and do some simple CSS and HTML modifications to make the page just right. This process may be a little tedious, but it’s still fairly enjoyable.
A lot of times when you collect a certain item in a level or you collect all the coins you may unlock a bonus level.
Similarly, being a developer you may work on projects that you're not super stoked about, but eventually if you work efficient enough it will open up more time and unlock a bonus project where you get to work on something you are super passionate about.
When playing most RPGs you will gain experience points that will increase your level and bring on new challenges.
Similarly while being a web developer you are constantly learning and growing, which increases your experience points and will also take you to higher levels in your career.
Eventually after you’ve reached such a high level of experience points, you’ll get to choose the work that you want to do, you can play the levels that you want to play, and sometimes you may even be able to choose which game you want to play.
In many games there are checkpoints where you can return to if your character dies. No need to start from the beginning, you can start off from your last check point.
This is similar to version control. Version control allows you to save the state of your code, and you can return to any previous check point (commit) that you’ve recently been to.
In Super Mario Brothers 3, there was an item called the ‘Warp Whistle’ which would allow you to travel to any level in the next land.
As we code our applications we have ‘Warp Whistles’ also referred to as 3rd party packages or libraries which help take our application to the next level and save us a lot of time.
Some games have cheat codes, where you press a sequence of buttons on the title screen and it will unlock new features or grant you with extra lives. These cheat codes make it easier to beat the game.
Similarly as web developers we have a problem we need to beat. Luckily the internet is full of cheat codes. As developers we can easily do a Google search and within a matter of seconds we'll have a long list of possible solutions to help us beat our problem.
As far as extra lives go... We have as many lives as we need! The only way we’ll reach a Game Over is when we stop learning and growing as a developer.
So, to sum up this post. Being a developer is a lot like playing a video game. We have projects and features that need to be created (levels we need to play), problems we need to solve (boss levels we need to beat), and experience points to be gained to bring us to our next level.
So if you enjoy playing video games you’ll probably also love being a developer ;)