I have previously written about how to become an expert developer based on the general principles of expertise presented in the book Talent Is Overrated by Geoff Colvin. I recently have had the opportunity to appreciate the nature of expertise in a different context after picking up the real-time strategy game Starcraft 2 created by Blizzard Entertainment.

While Starcraft 2 offers solo play at various levels of difficulty via a campaign and custom battles against the computer A.I. it is the multiplayer matches against other people that most clearly reveal expertise, or the lack of it. Blizzard created a clever ladder system for ranking players that is used in automatically matching players of similar skill levels. The lowest level of the ladder is bronze, followed by silver, gold, platinum, diamond, and finally master. The master league was created post-release by Blizzard for the top 2% of players, and is the home of the true experts in the game. Videos of matches between these highly-ranked players are frequently posted to YouTube by commentators such as HDstarcraft. Watching these expert-level replays, it is interesting to see how effortless the top players make it look to manage the economies and unit production of multiple bases, scout for information on what their opponent is up to, and tactically control with precision units of various abilities in battles. Switching to one of the player's individual views or seeing them using their keyboard is a shocking contrast: they are continually switching viewpoints between different parts of the battlefield blindingly fast and their fingers are a blur on the keyboard. They average two to three mouse clicks or key presses per second the entire game.

The biggest lesson in expertise from Starcraft 2 is that there are no shortcuts to becoming an expert: it takes tons of deliberate practice coupled with deep domain understanding. In Korea, where Starcraft is reportedly considered a national sport, top players are members of teams that spend hours each day training together. Since the game has been out for less than two years, you might think that no one has amassed the approximately 10 years of training that are typically required for true expert status. The original Starcraft, however, has been out for longer than that period of time. Many of the top players of the original Starcraft have quickly achieved mastery in Starcraft 2 despite some significant changes in gameplay. In one account I read of a master level player's ascent up the leagues he stated that he only needed about 6 months to make diamond, but then he went on to explain that he spent almost his entire childhood playing hours upon hours of video games.

I re-learnt this lesson for myself when I got into the game and prepared for multiplayer play. Rather than dive right in, I viewed some instructional videos, mastered (so I thought) the use of hot keys and completed the solo campaign. After some battles against the A.I., I felt I was more than adequately prepared to face league play. A short stint in the practice league reinforced this, so off I went play my 1v1 placement matches to determine my league. To my surprise I promptly lost all 5 matches and ended up near the bottom of bronze! I played a number of additional matches and made some small improvements. My biggest gains, however, came not from playing competitive matches but from seeking out training tips and deliberately practicing various elements of the game. For example, I found in matches that I frequently lost to Protoss players (one of the three races players can choose in the game). So I played a number of A.I. games solely against Protoss and gradually was able to increase the A.I. difficulty that I could consistently beat.

Starcraft 2 is a fun and entertaining game, but if you want to play in multiplayer league games and have a reasonable chance of wining - even in bronze - I recommend studying and practicing. One great source of information for doing so is Shokz's Starcraft 2 Mastery Guide.

Experiencing expertise in Starcraft 2 is a great reminder of the need for us as software developers to incorporate deliberate practice into our day to day activities in order to continue to improve.