By December 6, 2019

The Value of Being an Effective Programmer

Effectiveness is the art of getting everything done, correctly, and in the time you need to get it done.

To be effective, you have to know exactly what is needed or wanted, and then do it. This advice would probably be sufficient if we always viewed life as simple. However, in programming and life, we often encounter complex situations.

Fortunately for us, a situation’s complexity decreases the more we understand it. A difficult problem looks easy when we understand the solution completely. But first, we have to learn how to reach those solutions. Being effective means we can reach them faster and with less fatigue.

Knowing how to be effective as a programmer also helps you do more in less time and effort in other parts of life. That’s because the most basic answers are simple and widely applicable.

Here are six areas where you can easily improve your effectiveness. If you focus on these areas, you’ll be able to increase your productivity and advance in work and in life.

Communication Is Key

Communication means sending or receiving something and making sure it arrived correctly. It includes perception—receiving. You understand things and people by communicating with them.

There is a difference between perceiving and thinking. When you think, no new information comes to your mind. When you perceive, you see what else is out there, and can improve your thinking and, consequently, see more truth.

Some things are more important to perceive than others. For example, you could see all the small details of a task, only to notice after an hour that someone else started to work on it before you.

You are only as successful as you can communicate. If you communicate with something or someone correctly, you can handle it or that person.

You can judge your ability to communicate by how well you understand the things and people around you, and by how well your speech or writing is understood. At work, do you ask the right questions? Do you inform your supervisor about any problems? Do others understand what you say clearly? Can you understand anything or anyone when you choose to do so? If the answer is not always “yes,” then you would spend your time well by improving your communication skills.

Body and Mind Connection

How well you, your body, and your mind work determines your overall effectiveness. When your mind is healthy, it’s easier for your body to be healthy, and vice versa. It is easier to think when you are healthy and in good physical condition. Similarly, physical work is more possible when you can think clearly about your actions and observe the environment.

Programming is a sedentary job. Neglecting your body can negatively affect you and decrease your effectiveness. Avoid food with added sugar or chemical additives. Physical exercise can clear your mind, as well as increase energy and motivation. Anything physical, like cleaning your house or desk, has the same effect. But many writers, and programmers are basically writers, recommend an even simpler solution.

Ernest Hemingway said he could think more easily when he took a walk. Friedrich Nietzsche, a German philosopher, even said: “Only thoughts won by walking are valuable.” The habit of walking can be underestimated because of its simplicity, but many, including me, have found it to be a good cure not only for improving their thinking, but also for such widespread problems as exhaustion and poor sleep. In my experience, it also helps to achieve a flow state.

A solution for exhaustion is to take a walk and look at the things around you until you feel better. Doing so helps to unfix your attention from your work and see the things clearly. Just walking is not enough—you have to look at your environment. At some point, you may become more tired. Don't stop then, but continue until you feel better. Orson Scott Card, American author, stated it’s “worth the time to take an hour’s walk before writing. You may write a bit less for the time spent, but you may find that you write better.” You can make it a routine that works for you.

Thinking More Productively

When you are well-rested and thinking clearly, you can more easily think about increasing your effectiveness further.

The human mind can be likened to a computer, where the input is perception.

Think about perception. Any time you miss something or don’t see it as it really is, you may be missing an important detail. That’s why, unless you know exactly what you are doing, it is better to slow down and make sure that you see all the crucial aspects of your task. And even then, it often pays to reread an important piece of information.

A computer also reads input. We spend a lot of time reading source code, emails, and other necessary information, putting all that information into our brain. There’s a difference, though. If a compiler “sees” a symbol it doesn’t understand, it reports an error and doesn’t continue. Our human brains will often go right past a misunderstood word when we read it.

Don’t do this. Check each unclear word in a good dictionary. It will not only increase your understanding, but will also build your vocabulary, and, consequently, help you to become a better communicator.

Your mind also has a memory. In computer terms, the equivalent of random access memory would be working memory. Sometimes, you have to clear out your working memory so that you have room to focus on other things. Mentally challenging tasks are often easier to do by “thinking on paper.” This technique helps to make more room in your working memory by making a paper, or a text file, an extension of your mind.

There is no fixed way of thinking on paper. You can find some ways more applicable to certain tasks than others. Sometimes, I write “fun1 -> fun2 -> fun3,“ which means that function fun1 invokes function fun2, and so on. Other times, I write down the most important question I think I need to answer to progress further. Then, after completing research, I write down an answer. Sometimes, a question leads to other questions, which can be jotted down, too.

Achieving Goals Smarter

Make sure your actions are aligned with your goals. Action is important, but the reason for the action is more important. When someone tells you to do something, a good question is whether or not it helps you to reach your goal.

Achieving a goal often requires learning. The most efficient way to learn is by starting from the basics you don’t already know, then gradually moving to more advanced subjects. A good test of understanding is whether you can apply it. If you read about functions in Clojure, but cannot write a function that prints “Hello, world,“ then you didn’t learn about functions in that language.

Many people recommend the Pomodoro Technique, which basically says to focus completely on your task and take frequent short breaks. By default, you concentrate on the work for 25 minutes and then take a five-minute break. After you do this approximately four times, you take a 15- to 20-minute break. (You can find out what numbers work best for you.)

Being Creative

How much we believe in ourselves determines our results.

People often downplay their abilities. But when you create something, you prove to yourself that you are able. And sometimes, you may surprise yourself by noticing that your abilities are higher than you thought. At this moment, you grow as a person.

I like to play guitar. According to some research, learning how to play an instrument can make a person smarter. For me, it seems to be most beneficial and fun when I pretend there is no limit to my abilities.

It’s Not Only About You

So far, we have talked about what you can do for yourself to become more effective, but sometimes, the people around you can affect your ability to work just as strongly.

Surrounding yourself with people from whom you can learn will motivate you and help you to do more. Someone who does more than you in the same amount of time can inspire you to work smarter. People who know more than you about the work you do can uplift you and help solve problems. It’s good to have at least one such person on your team.

We not only work in our jobs. We also display our personalities, affect others with our communication skills, react emotionally, etc. You can not only choose how to react to those actions, but also do them well and become an example for others. When you control your emotions, communicate effectively when needed, and help others, they will have no choice but to be positively affected. Because you are a part of a team, the whole team’s effectiveness will then increase.

Setting a good example can be as simple as saying “thank you” each time someone helps you. Anything you do that shows others they are noticed and important will help them be more effective, which consequently helps you, too.

You can set a good example with your body when you look professional and energetic, with your mind when you solve problems efficiently and communicate effectively, and with yourself when you display such personal traits as courage, honesty, optimism, outgoingness, patience, and devotion to goals.

Sometimes, a short conversation with someone you like about a subject that interests you has a positive impact on the work that you will do later. It’s a good idea to find someone with whom you share similar interests. They don’t have to be the same. Maybe you both like playing different computer games, but there is something similar in your interest.

You want others and yourself to be happy. Sometimes, a sense of humor helps to achieve this better than anything else.

Time to Be Effective

In this article, I described some of the best techniques I know to become more effective. They are simple and easy to implement. Many of them are universal and all of them can be applied by programmers.

To be more effective, you need to actively engage your communication skills. Take care of your body and your mind, and use that strong mind to think more productively. Work smarter, practice your creativity, and, last but not least, pay attention to the people around you.

All these actions helped me to achieve more with less effort and resulted in my increased happiness. Use these effective tools for your benefit and the benefit of those around you.

About the author

Bartłomiej Majka

Bartłomiej Majka is a Senior Software Engineer at Harman. He has worked on many C, C++ and Java applications. He is interested in personal development and likes to play guitar in his spare time.