If you are a follower of Simple Programmer, you probably have heard of John Sonmez’s book, Soft Skills: The Software Developer’s Life Manual. In it, he explains some life skills you need as a developer in order to be a better person and developer overall.
I am here to tell you about the master developer soft skill that I believe supersedes the rest: learning how to handle and control your emotions and the problems that cause them. Being humans (unlike the robots some people think we are), programmers are emotional creatures too.
Today I would like to discuss with you why you should learn how to control your emotions as a programmer, and some skills you must develop to improve this master skill.
Why Is Emotional Control Important for Programmers?
Before I teach you the skills you must develop to improve your emotional control, I want to make sure we are both on the same page, and you truly believe that this skill is extremely important to develop.
First, jobs and tasks that are given to us as programmers (or ones we assign ourselves) often involve high levels of logical thinking and reasoning. Most programming is a purely logical task. We do not want emotions to come and take us off the logical path.
When emotions come into play, it can take a decision that should be 100 percent logical and make it part emotional and part logical. In some cases it can be even worse: it can take a fully logical decision and make it fully emotional.
Take a look at this example: Bob, the senior engineer, is in charge of building out the payment system for Antonio Inc.’s backend. His part of the application is due at the end of the week, but he just heard that his girlfriend of three years cheated on him. This sends him into an emotional downward spiral. This causes him to lose focus at work, make poor engineering decisions (like not making a fully secure payment system), and makes him procrastinate, finishing his piece of the backend.
If he were purely logical in his decision-making, he would have been able to focus with no problem, and Bob would be able to make the proper sustainable engineering decisions necessary to support the application over the long term. However, if he kept making poor decisions, this could potentially affect his future at the company. This is a situation in which emotional control is crucial for success in your career as a programmer.
Now let’s break down the skill of emotional control so you can learn how to improve it.
Three Things to Improve Your Emotional Control
As someone who has struggled with emotions for the majority of their life, I have broken down emotional control into three skills that you can work on in order to identify emotions as they are happening, reduce the effect they can have on you, and minimize the long-term effects of an emotional storm.
Mental Toughness
The first skill I want to discuss is a preventative measure to emotions. I categorize this as mental toughness. Mental toughness is exactly what it sounds like: being able to mentally withstand a certain degree of struggle or pain. It is the degree to which you can handle any emotional problem and not let it affect you.
Have you heard the phrase: “An ounce of prevention is worth a pound of cure”? This is exactly how it works when it comes to mental toughness and emotional control. If you are mentally tough, it is really easy to deal with random and small emotions that arise every day. The bigger emotional problems or storms will definitely affect you, but less than they would if you had not built up this degree of mental toughness.
How do you improve your degree of mental toughness, you ask? It is pretty simple, but difficult at the same time.
You need to do activities that cause you to be mentally tough. Things you think you cannot do. Tasks that cause you to struggle, but you overcome them with some hard work and determination. For example, doing some intense exercise in which you push your body to its limits. Doing this forces you to tap into your mind and push your body to levels of discomfort that it has never faced previously.
Another one would be depriving yourself of something you love, such as food. These activities force you to truly stand up against yourself and decide to do something that causes discomfort.
That is why it is so simple—you build it by doing things that cause you to act mentally tough. The difficult part is that being mentally tough is not an easy task; it involves you fighting against being comfortable and requires being uncomfortable for a certain period of time.
Being able to be mentally tough as a programmer is crucial. It allows you to try out implementing an algorithm in a new and creative way, pushing the boundaries of your application by putting your fear of criticism aside. Toughening yourself up mentally allows you to work much harder than the rest of your competition (whether that be competing companies or programmers for your position).
Mental Awareness
The next skill that you must build is mental awareness. It is the ability to see your thoughts as you are having them. Being able to look at yourself from a third-person point of view. For example, maybe you realize you are about to start programming without clear requirements, so you stop yourself and define the requirements. This skill will help you notice an emotion as you are having it. Once you notice the emotion and can give it a label, then you can act on the emotion.
The key fact that you need to realize is that we experience emotions due to our reaction to an event. Our mind is trying to tell us something when we feel sad, angry, or happy. It is saying that we must do something to handle this emotion. There is some action you must do in order to get through this problem.
How do you become mentally aware? Any activity that causes you to pay attention to your thoughts can help boost this skill. For example, visualization, meditation, and any form of self-analysis all give you insight into your thoughts.
With visualization and meditation, you can see your thoughts shift and what you are thinking about. When you know what you are thinking about, you can understand how you are feeling at any moment.
Being aware as a programmer is more important now than ever. Paying attention to how you are affecting your teammates is extremely important to anyone who works closely with others. Being aware while programming to make sure that you are testing every single test case is also very important for building a robust application.
With self-analysis you can see what your thoughts have been throughout a certain time period to see where your focus has gone. Doing these activities will make you more present and help you notice those emotions in real time.
Mental Attitude
The last skill you must develop is mental attitude. Specifically, a positive mental attitude that no one and no thing can take away from you. It is the ability to stay positive despite a negative circumstance being thrown your way.
If you are a negative person, then a negative situation will affect you for longer and worse than someone who is a positive person. The reason is that a positive person will spend time trying to find the benefit that they can get out of the situation. The negative person will make the problem bigger by focusing on their negative perception of the problem. We want to be the positive person who finds solutions, not focusing on problems.
Building this skill comes down to brainwashing yourself to be a positive person. Doing things like visualizing your goals and positive circumstances in your life can help with this.
One of the best things you can do for yourself as a programmer is be positive. When given requirements that seem impossible, a programmer with a positive attitude will find a way to do it, whereas one with a negative attitude will find ways where it cannot be done. Being known as the developer who gets things done no matter the odds will help you level up your career.
Using a set of affirmations that help reinforce who you want to be (maybe a confident, proficient, and positive programmer) can help train your mind to see yourself as this person who strives to find the positives in a situation.
Take Control of Your Emotions Today!
Let’s see how Bob’s life has changed after reading my (Antonio Cucciniello’s) book on emotional control (The Cloud: Weathering Your Emotional Storms) and this blog post.
Bob first took the steps to become mentally tough. He started doing some intense weight-lifting and fasting. This made him immune to the little things that usually affected him. But no more. He is mentally tougher now.
Then he worked on his ability to become mentally aware. He took up the practice of meditating daily. After a few weeks of doing this, he noticed his thoughts as they were happening. He could catch himself when he was getting angry, sad, or happy.
Lastly, he worked on changing his mental attitude from something that was negative to positive. He is now always looking to make great progress in life in all situations. He does not allow negative situations to hold him down.
As a result, Bob skyrocketed in his career. He leveled up to a management position, where he is in charge of making make-or-break company decisions because he is highly skilled in removing the emotional aspect from the situations.
Do you want to be like Bob? Awesome, then take what you learned here and start practicing it. If you can learn to take control of your emotions and not let your emotions control you, then you can spend way more time producing and being a happier programmer and person overall.