Why every software engineer should have played video games?
All of you love video games isn’t it? Personally I loved them too. I played a lot of them including Age of Empires (My favorite), FIFA, EA Cricket, NBA Basketball, NFS, etc. OK. Enough about the bragging. 🙂 Coming back to the topic, what did I learn from playing those games and more importantly what it will teach you if you do it right.
Teaches you about fighting spirit
Arguably the number one lesson that games teach you is about the fighting spirit. When we get into the gaming mode, invariably our heart wants to win. The more we play the games, the more we will tell ourselves to fight more and more. Of course there are times when we just play to chill out. Even then the first natural tendency is to keep fighting, because we see our chances of success very high.
Lesson for Software Engineers: The same lesson applies to software engineers as well. Sometimes the going gets very tough and you need to fight with the code. Chances are, if you have played games, you will keep on fighting and never quit.
You play several games. You don’t win everything and you don’t lose everything. And life is exactly the same. You will taste success and failure. Games often teach you two things. One, to keep yourself grounded if you have won and two, move on, if you have lost because there is always another game to change the fortunes.
Lesson for Software Engineers: Even though you make your best efforts to make sure your software works great, sometimes your code is going to fail. Everyone who has developed software has done many mistakes. There might be various reasons for it. But don’t get bogged down. It happens. Just accept it, learn from it and move on.
Teaches you team work
If you have played team based games, you will realize this. When you are part of a team, you need to sometimes play supporting role, a leadership role, a peer role, etc. And you will shift roles also, depending on your team member’s strength. For example, in Age of Empires, a good player will try to shield the weaker player till the weaker player gets on his feet and becomes a threat by himself/herself.
Lesson for Software Engineers: When you are part of a team, you need to be a complete team player. Team is always greater than an individual. This might mean sometimes you need to sacrifice a few things like trying to adjust to a slow speed of a team player while trying to bring him/her upto speed. Sometimes you need to play second fiddle and learn, if your team player is much more knowledgeable and skilled.
Teaches you strategy
This is especially true of strategy based games like Age of Empires, World of Warcraft, etc. Against good players, you need to have a strategy to compete and win. According to Wikipedia, Strategy is a high level plan to achieve your goals. So a sample strategy in the Age of Empires would be to cripple your opponent’s economy very early on, while trying to build a decent army at home.
Lesson for Software Engineers: You always need to be strategic in your development, testing, decision making, etc. Always have a good high level plan so that you know where you are going with respect to your craft.
Teaches you tactics
Now, you have decided on a strategy. Now you need to do the actual work. That is when tactic helps you. For example, in Age of Empires, if you have decided to cripple your opponent’s economy, you can choose to target lone villagers and you can outnumber them and kill them. Or you can use annoying tactics also like chasing their villager and making them not work, thus slowing them down. A tactic is more specific according to the situation.
Lesson for Software Engineers: It is the small steps/tactics that will help you accomplish long term goals. For example, using keyboard shortcuts for most frequently used commands is one of the tactic to save time and be more productive overall (Which is the long term goal).
Teaches you problem solving
At games, often you face some kind of problem. Whether it is receiving attacks from all front or whether to spend money on military or growth options. And you tend to solve the problems using different Strategies and tactics.
Lesson for Software Engineers: In software engineering, you tend to solve a lot of problems. And that is one of the ways through which you will improve as a software engineer. Although problems tend to be different, you can always draw parallels from one situation to other. And that is how life works generally.
Teaches you how to make effective use of your resources
In games, you have limited resources. That makes the scenario interesting. For example, in Age of Empires, You need to balance the resources between developing your economy and investing in military. To protect your economy and to attack enemies, you need a military. To develop a military, you need a good economy. So playing a balancing role will ensure you get a decent chance at victory.
Lesson for software engineers: In software development, you also get limited resources. Be it the team size, be it the availability of important utility tools, be it the timelines, it all matters down to operating under some constraints. But learning to operate in that mindset will allow you to first make efficient use of the available resources, then think more and innovate.
Teaches you about critical thinking
Often in games, you face an emergency situation. It can be an attack on you. It can be an attack on you and your partner simultaneously. It can be a joint attack on your partners. It can be anything. But what matters is what is that you are going to do in that emergency situation. And typically your steps will either make or break your day.
Lesson for software engineers: Similarly, you will get lot of emergency situations in software industry. And your success will depend on how you react to those situations.
Teaches you how to handle pressure
In competitive games, especially against another human player, you will be under pressure. You can sometimes be put under immense pressure maybe for a continuous periods of time. But your success will depend on how you handle that pressure without getting bogged down.
Lesson for software engineers: Software industry is known for its pressure environment. Lack of budget, Demand for great quality in shorter periods of time, Lack of time, etc. are part and parcel of a software engineer’s life. Knowing how to handle these pressure will definitely help you go a long way in your career.
Teaches you how practice makes better
How many times you have played your favorite game? If you ask me, I would say I couldn’t count. I have played my favorite game over a period of at least 4 years, almost daily for at least 2 hours per day.
Lesson for software engineers: If you ask any successful software engineer, they will tell you nothing can beat practice. You need to keep on doing it passionately till you gain complete control and hopefully gain mastery.
Teaches you about communication
This is again true with team based games. In team based games, we need to help our partners when they are in trouble. We need to ask for help when we are in trouble. In my Age of Empires games, we usually use a signal flare at one particular location where there is trouble, which means the enemy is at that point. So my job will be to take my army and go to that point and help my partner fighting out that enemy in that location. So how will I know if he doesn’t tell me? That is where communication comes to picture.
Lesson for software engineers: Similarly, communication is one of the most important skill for a software engineer. Imagine what will happen your client totally rejects your software because that is not what he expected. Why does things like these happen? It is because of the communication gap. If that can be avoided, then you can save a lot of time by avoiding lot of rework and avoid unnecessary confusion.
So are you feeling bad that you wasted a lot of time playing games? No you didn’t. You were learning other skills without your knowledge. Have you not played any games yet? Go and try a few. The learning will be amazing. But just make sure that you don’t get addicted. Then it becomes difficult.
What do you think about this blog post? Please leave your comments.
If you like this post & if you want to gain some technical knowledge, visit our website http://guvi.in
This is Rajaraman signing off from Team GUVI.