15 lessons I learned from playing Starcraft 2
I love Starcraft since 1999.
Starcraft is a real-time strategy game where you build an economy and an army to beat your opponent.
During play, you juggle your focus between developing your economy (known as "macro") and micro-managing your army (known as "micro"). And it's not easy.
Learning to play Starcraft means learning a very complex skill. So complex, that it feels almost impossible to do well as a beginner.
Web development is also a very complex skill. Lots of moving pieces.
So, as a fan of Starcraft, I (naturally) thought:
How can I generalize the complex process of learning to play Starcraft to other skills?
In what is perhaps a fun thought experiment more than anything, I came up with the following.
Before that, a few disclaimers:
When I write Starcraft I'm actually referring to Stracraft 2. I didn't play the first game for ages. But for the purposes of this article, it doesn't make any difference.
By writing this I don't mean to suggest I'm any good at playing this game. I'm atrocious at it. But I thought some concepts of the game are interesting enough to write about.
Grab your nachos and enjoy.
1. You don't learn to play the game, you learn a specific way to play the game
In Starcraft there are 3 races you can play, and each has its own strategies.
Commonly, you don't learn to execute all possible strategies for all 3 races flawlessly. Instead, you pick one race. Then, you get very good at a specific way to play it.
Likewise, a developer doesn't try to learn all technologies, all web stacks, how to make all types of websites and applications... Devs learn a specific set of technologies, learn to develop a specific type of applications in a specific way and with a specific structure.
If there's a need to change and adapt, it's always possible.
The goal of the game is not to learn everything. It is to win more over time.
Likewise, the goal of learning development is not to know everything, it is to produce high quality work efficiently.
That doesn't mean one should reject aquiring a broad knowledge. It means that one shouldn't try to excel with all tech stacks.
2. Redefine "winning" into something that benefits you
Typically, the goal of any individual game is to defeat the opponent. Turns out, focusing on winning is not useful to learn to play. That won't help you improve, except by coincidence. You won't know where to focus your energy.
If your goal is winning at something and you fail, you might feel frustrated and stop.
Having the goal to win the game is the same as having the goal to play very well. Too generic and overwhelming. Where to focus? What to do next?
Winning or losing one game is irrelevant. Increasing your number of wins over time is what matters.
Any one individual loss doesn't matter as long as you don't define success that way.
So don't do that.
Instead, ask: What is the next thing you need / want to improve on?
Then, redefine a win as having practiced that one thing with focus, ignoring the rest. That is your success, because by doing this, you will get better at that one thing. And by getting better at that one thing, you'll win more in the long run.
3. Learning something complex is within your grasp, if you take it one bit at a time
Faced with a huge task like learning to play Starcraft, or learning web development, might be so daunting that it feels impossible. As if you were in front of an insurmountable mountain.
Understand that no matter how complex a skill might look, it is within your grasp to learn it, if you commit, persevere and are patient.
Do not try to learn everything at once. Focus on one tiny aspect of the skill and allow yourself to completely suck at everything except at that thing.
Practice that one tiny thing many, many times, until you develop muscle memory (the ability to do that well without even thinking about it). As that happens, you'll be able to do the thing without speding mental energy on it, so you'll be able to focus on the next thing.
4. Review your mistakes to figure out what you need to improve, but be gentle with yourself
When things go wrong, when you lose, look back. No matter how much you want to blame the universe, almost always there's something you could have done to prevent losing.
So be critical of yourself and don't shy away from your mistakes. Look as closely as you can into them, to figure out what went wrong.
What went wrong? Why? What did you do well despite losing?
Learn what you can from it. Figure out what is causing your losses, and use that knowledge to decide what you need to improve next.
But equally importantly, never beat yourself up for your mistakes. Be gentle with yourself. Mistakes are unavoidable, we're all human. Mistakes are part of the game.
Always remember that learning from a loss is more important than a win.
5. Start by fixing the first thing you did wrong
Also known as The Principle of the First Cause (I probably made up that name).
When something goes wrong, we have a tendency to blame whatever happened immediately before the disaster.
Don't do that.
Right before a loss, things were probably too messed up already due to lots of mistakes being piled up. It's likely that at that moment there's nothing you could have done anymore to prevent your loss.
Thus, blaming the last thing that happened can be not only pointless, but can also hide the true cause of the loss.
So look again, look better, look further back.
Find the first thing you did wrong that led to the failure, and fix that.
When you fuck up, ask yourself: What started this mess?
6. Good habits are king, don't let anything interfere with them
Starcraft tells you that good habits are king, and without them you're hopelessly doomed.
To understand why, let's take a look at the concepts of macro and micro.
In Starcraft, players split their attention between macro and micro tasks.
Macro = grow your economy and spend your resources
Micro = control and manage your army units in the battlefield
Macro is equivalent to important tasks performed over and over whose effect compounds and in the long run mark all the difference. Think of them as good habits, like exercising, investing and healthy eating. Neglecting them will have a disastrous result over time and during your entire life.
Micro is equivalent to tasks that have an immediate positive effect, but almost always have very little impact in the long run. Think of these as the little random things that creep up in daily life.
Starcraft teaches you that neglecting macro to spend more time in micro is almost always a bad idea, and should be avoided. I think this is true in real life too.
Don't let the micro of life distract you from staying on top of your macro.
Give your important habits priority over the chaotic and random events of life.
7. Establish habits designed to move you forward in life
To be on top of their macro, players perform a series of tasks or rotations routinely every few seconds. These rotations are known as a macro cycles. This is essential for a good game.
Success in life too needs habit rotations that performed routinely move you forward and lead to good outcomes.
How you define success in life is entirely up to you of course.
The macro cycles of your life would be a set of habits you do repeatedly and that you have purposefully chosen based on your definition of success.
For example, a very basic habit rotation would be:
Exercise every 3 days
Fast once a week
Read 1 hour per day
Don't go aimless on your day to day without knowing what to do. On the contrary, mindfully pick a habit rotation and prioritize doing it, because its compound effect will have a profound impact over time.
8. Get rid of bad habits
In Starcraft, F2 selects your entire army. It's very tempting for beginners to do that because it's easy. However, it is a bad habit that will get on the way of improving and will have to be unlearned.
Find the things you do often that get on your way. Things that are a waste of time and energy. It's very tempting to be lazy and to keep on doing things the bad way just because you started doing them that way (maybe you didn't know better).
Are you repeating a manual task over and over? Don't be lazy, automate it.
Do you mindlessly watch YouTube or play too many video games, and that leads to excessive distraction? Stop.
Kill or minimize your bad habits.
(That time when Starcraft teaches you to stop playing Starcraft, cough...)
9. Put your habits (or your decision about them) on auto-pilot
Once you've decided:
What habits you'll do
How often you will do each
That you will give them priority
There's really no decision-making left about that, and it should make things easier. You don't have to think whether you do them or not. And it doesn't matter what else you think you have to do, or whether you're busy with something else.
Simply do them.
You will have more decision-power to spend on other things.
I suggest that for each habit you set some kind of timer, so that you can keep track of when you have to do them without having to think.
The multitimer android app works for me.
10. To improve quickly, practice often
Practice smart, not hard. Sure. But practice.
And practice often.
Starcraft pro-gamers practice 8 to 12 hours a day. There's probably no need to reach this number of hours when learning programming.
But the simple truth is that lots of cumulative practice will bring you where you want to be faster. You get good at what you do often. The more you practice, the better you'll get.
And frequent practice will help.
Practicing one skill daily, or even multiple times a day, will skyrocket the speed at which you learn. Don't let lots of time go between practice sessions.
And of course, simply thinking that you want to be a good developer without follow up action won't bring you anywhere. Make sure you're not doing that.
Massive results require massive action.
11. Accept that you will suck at first
When you start practicing a new skill, or anything new that you've never done before and are not familiar with, you will feel unconfortable. This will happen particularly when learning a complex skill composed of many sub-skills, like Starcraft or programming.
You'll feel deep inside that you suck. That you're hopeless. It will feel like going uphill when you only want to slide down into comfort.
Allow yourself to suck. Allow yourself to suck badly, and accept that it is perfectly fine for you to suck now. Because eventually you won't.
Simply push through that phase.
12. Accept that losing is part of the game, concede when you can't win
Accept defeat as a natural part of life. Try to win, try to face the odds looking for that chance of victory, even if it's small. Struggle in front of challenges.
But sometimes there's a point when defeat is inevitable, regardless of what you do from that point onwards. In that case, any more energy spent in that one battle is a waste.
When you realize you can't win, accept defeat. Give up. Learn from what caused your defeat. And move on to the next chance of winning.
A simple but hard piece advice.
13. Practice when sharp, rest when tired
Without a fresh or rested mind, you can't perform well. Working to exhaustion, burning the midnight oil, can be damaging to the quality of your work.
Do mentally demanding tasks only when your mind is sharp. If you are tired, it's much better to take a rest, sleep, take a walk... switch off your brain for a while.
14. Tweak your lifestlye, don't settle for unoptimal
Starcraft comes out of the box with default settings. These are ineffective and can lead to bad habits. So players tweak them to be able to play more effectively.
They generally copy the settings of a pro-gamer and go from there. Later customizing it more to their playstyle, once they understand better how the game works.
Society too seems to be configured out of the box with some defaults. In general terms: go to school, go to university, get a job, and work for 40 years while you pay taxes. Whereas this doesn't need to be terrible, let's not overestimate how good it can be, and realize that you don't need to follow all these things for your life to be good.
Look for pros: people who are in a situation that you desire. This could be a successful freelancer, a strong athlete, a charismatic and brave person, someone you admire.
Copy their habits and mindset, learn from what they do as a first approach. That will probably put you in a better path than before.
Then don't get forever stuck in doing what they do. Start doing things your way.
15. Your skill at doing something is really your skill at doing it in less than ideal circumstances
The controlled environment where you train and practice your skills and real life are two different things. Real life is unpredictable and wild. Sometimes shit hits the fan, the storm hits.
How to confront that?
Level up your skill, not to the bare minimum, not to deal with hypotheticals where everything goes according to plan, but to the level where you can deal with messy real-life scenarios.
Over-practice. Over-prepare. Be able to perform on the theoretical scenarios blind-folded.
Then, when shit hits the fan don't freak out, don't feel like a failure, because that's normal. Do your best, then pick up the pieces after the storm.
Don't expect your successes to be elegant, expect them to be messy.