Learn Docker With My Newest Course

Dive into Docker takes you from "What is Docker?" to confidently applying Docker to your own projects. It's packed with best practices and examples. Start Learning Docker →

How Playing Video Games Can Teach You Real Life Skills


I learned more general life / programming skills playing Diablo II for a few years than all of my formal education combined.

Quick Jump: 6 Life Skills Learned from Playing Diablo II | Programming Skills Learned from Gaming

A few days ago I was skimming HackerNews while eating lunch and an interesting title caught my eye which was Ask HN: Any good examples of learning through games/puzzles, for adults?

A lot of people were posting responses about learning specific skills like math or history, but after I thought about it for a while I realized I learned a ton of general life skills. Things they really don’t teach you in school (at least not in US high school).

6 Life Skills Learned from Playing Diablo II

Diablo II will always be a special game for me, because it was one of the first games that I played for an extensive period of time. I can’t count the number of hours I played, but it was easily 1,000+ hours over a few years.

Some people might say that’s a colossal waste of time, but hey, I was in high school and in my early 20s when I played it the most.

I don’t see that time as being wasted because I think I walked away with a lot of valuable life skills, and this isn’t the only game I played where I felt like I learned real skills that still help me today. Maybe I’ll write about those games another time, but for now…

Here’s just a handful of skills I learned from playing Diablo II:

Learning from Your Mistakes in an Optimistic Way

Keep in mind, everything I’m writing in this post is something I’ve struggled with or still battle with today, so I’m not writing this from an ivory tower looking down at the world!

One similarity between programming and video games is, if you make a mistake you’re probably going to get punished pretty quickly.

For example in Diablo II if you go teleporting into an MSLE* monster and die instantly, you can’t really place blame on anyone other than yourself. You have the controls and the game is doing what you told it to do.

*: MSLE was a multi-shot lightning enchanted modification that could be added to a monster’s characteristics. Every time you hit the monster it would throw out very strong sparks. Unsuspecting players would often immediately die from them.

It’s just like trying to run some code which keeps failing. It’s probably not because your computer is broken or the language has a bug. Chances are you just made a typo or are using something in a way that’s not intended.

It’s ok to make mistakes. Treat them as progress towards a solution, not a negative. That also means trying not to make excuses. Really investigate what caused it. I make mistakes all the time, but I often learn from them because I make it my life’s mission to understand what went wrong, rather than place blame.

Programming and gaming are some of the most humbling experiences around, and it’s really important to have enough mindfulness to keep your ego in check.

Negotiating with Other People

This one can help a lot. You can learn how to better negotiate a salary, or get a better deal on buying a car from a dealership just by understanding basic things that even a game like Diablo II (or any game really) can teach you.

This really comes down to having a good understanding of everything required to make a deal. You can’t just focus on yourself and think about it from your POV.

For example if you walked into a Ford dealership and asked to get 80% off on one of their cars the salesman would likely immediately reject your offer and you’ll leave the dealership empty handed.

That’s because Ford is successful enough without selling you anything. Chances are you need that car more than they need to sell you something at such a drastic discount so they’ll hold off and wait for a better offer.

Just understanding there’s 2 sides to every transaction makes a world of a difference. If you’re trying to sell something (which could be a product, service, or your skills as an employee), always think about what they get out of the offer and their current situation.

I know this one is pretty basic but it’s often the basic skills that we forget. When you’re trying to get something that benefits you, it’s way too easy to get hung up on your own motives and forget the other side of the story.

Looking at Your Future Self

This is something I struggle with the most today but it could be the biggest thing when driving how successful you are (and success doesn’t need to be financial gain – it can be whatever is important to you).

You need to be able to evaluate where you’re at now, but then also project where you’ll be in the future if certain things happen. Then do everything you can do to get there in the shortest amount of time possible given your current situation.

For example, maybe it’s ok to trade something for less value than what it’s worth right now because you know once you make that trade it will put you in a position to invest into something better in the short term.

It works the other way too. It might be a good idea to overpay for something right now because it’ll make you much better off in the future.

In a game like Diablo II, maybe it was trading for your first Shako because you know once you get it, it’ll let you kill things faster and give you more chances of finding better loot.

In real life this could be anything. It could be obtaining education, or taking on an apprenticeship for less income than you might want, but if you think about what you’ll learn over the next 6 months, it might be the best decision you ever make.

This really boils down to fundamentally understanding that your current place in life is not your final destination. It’s nothing more than your current position and it will change.

Running a Business

At one point in the game I had a handful of people who would trade their time for resources. They would collect hundreds of perfect gems for me and in return I would give them high level runes.

I would always offer a really good rate. Way better than anyone else and the only stipulation was they had to provide me the gems in bulk. Not just 40 at a time but 200-300+.

That took a long time to gather up on their end, but they would be guaranteed to get really good value for their time. After doing this for a bit, I found a trusted set of people who would always follow through with the gems and I would always follow through with the runes.

It was a very friendly atmosphere. They got a wage that was likely 5x higher than what they could do without our trades and I got the materials I needed.

Often times I would make 20x my investment on every bulk trade and this was possible because I had an immense amount of game knowledge and my character was strong enough to get the loot required to make it all work.

For all you Diablo II vets, that was re-rolling high level charms back when a good one could easily land 5-40 high level runes. You could also say the timing was right because it was at a time where those charms were in very high demand.

The takeaways from this are trading time for money, scaling income, working smart (not hard), how to recognize opportunities, creating business friendships and combining it all with “future self” to understand what the long term positive gains are.

Some of those people I used to trade perfect gems to ended up becoming really good friends. Friendships that lasted outside of the game just from creating a friendly opportunity where everyone wins.

The worker wins (they get a very respectable wage), the business owner wins (I scaled a lot of game wealth in a short period of time), the charm buyers win (it helped them in PvP).

At some point one guy even told me to stop trading top tier charms to other players and only trade to him. That was a sweet deal. That means I didn’t even have to spend time finding buyers. I would just message him and minutes later I would have stacks of runes.

How could you apply some of those concepts to your business right now?

Procrastination and Determination

Games are interesting to me when it comes to procrastination because when you’re immersed in a game, it’s not like you sit there and play for 30 seconds and then go check your email, Twitter, Youtube, etc. all day. No way.

You’re zoned into the game, figuring things out, exploring the game world and maximizing every second of game time to further progress your character.

So why is it so easy to procrastinate when you’re not playing games, when you know you should be doing something to help you move towards your goals?

I don’t have a 100% handle on procrastination yet but I do know being mindful of myself when it’s happening really helps. Relentlessly writing down when you procrastinate and what you’re doing when you procrastinate helps too because after seeing it on paper, it looks so stupid.

Games helped me here because it’s something I can think back to in my mind to prove to myself that I can be a hyper optimized productivity machine with no limits.

With that said, when it comes to Diablo II, other games and real life, you need to be determined to make noticeable / semi-short term real progress. In my teenage years, I sometimes played 16-18 hours a day for an entire summer straight.

I even put in multiple 24+ hour sessions.

The amount I accomplished in game during 1 summer was more than what most people do in their entire life, but it’s not because I’m more skilled or better than anyone. It’s because I put in the work and gave it 100% effort day in and day out (and loved every second).

I don’t recommend putting in 18 hour days to accomplish anything but the next time you do something for an hour and feel like stopping because you made good progress, just remember there’s 23 more hours in the day and you’re not immortal.

Not Everything Needs to Be Perfect for It to Be Useful

After reading all of the above you might be thinking “doh, I wish I played Diablo II back when it was popular so I could have obtained those life skills from playing games”.

But really, those skills can be obtained from playing a lot of different games. In fact, if you play Path of Exile today you would have a nearly perfect match because it’s considered by many to be Diablo II’s successor.

It also just so happens that both games have the concept of finding items that have variable stats. An item would be considered “perfect” if you got the maximum values for all of those stats. Perfect items tend to be exponentially more expensive.

Realistically you could get by just fine without the perfect version of an item. Sometimes “good enough” is all you need, especially if you’re shipping a software product, but don’t confuse good enough with being lazy.

You should still strive to make an amazing and polished product. Just don’t wait until it’s perfect before shipping it because it will never be perfect.

Programming Skills Learned from Gaming

When building apps, you’re often put into a situation where you need to take a large vague problem and turn it into a bunch of small well defined problems.

Gaming is a fun way to be put into situations where you need to solve problems, often under pressure and with time constraints. This can be in the form of solving puzzles designed by the game’s developers or reacting to real people in a multiplayer game.

A single gaming session may allow you to practice that process hundreds of times, and once you get good at it, it becomes second nature. What once seemed impossible to do can now be done without thinking. You probably don’t even realize this while you’re playing.

Playing a game probably won’t teach you how to write a bubble sort function in Python or teach you the syntax of a language, but these are the easy things to learn because you can always look them up on demand.

Instead, gaming can help you a lot with reinforcing a bunch of skills that give you a better chance of becoming a better programmer, such as:

  • Being open minded
  • Constantly wanting to learn more
  • Always looking to improve and become better at what you do
  • Willing to put in the time (we talked about determination before but it applies here too)
  • Not afraid to experiment

To me programming isn’t just memorizing syntax and writing algorithms. It’s a way of life that can take inspiration and be improved upon when doing doing all things in life.

What have you learned from playing video games? Let me know below!

Never Miss a Tip, Trick or Tutorial

Like you, I'm super protective of my inbox, so don't worry about getting spammed. You can expect a few emails per month (at most), and you can 1-click unsubscribe at any time. See what else you'll get too.