Soft Skills Every Programmer or Data Scientist Should Master
Whether you are a software engineer, a programmer, a data scientist or a technical manager, these skills will help you stand out.
People tend to have a stereotypical image of a technologist (programmer or data scientist): someone who sits with their earphones in, typing away on a computer for 12 hours a day. That image may be true for some parts of a technologist’s day. However, more often, the technologist goes to meetings, socializes with his or her peers, and presents his or her work to an audience. Most often, soft skills differentiate technologists. At interviews, it is the soft skills that will catch the eyes of managers and clients who are conducting the interview. At work, soft skills will cement the technologist’s place on a team. It is the soft skills that will allow the technologist to further his or her career.
As technology advances, technical skills are often acquired at lightning speed. At the same time, most technologists are specialized in their area of expertise.
On a team with technologists who possess a variety of technical skills, the success of the team often depends on the soft skills of each technologist.
After my years spent at various technical and management roles on different types of in-house IT teams, I worked in successful teams as well as in unsuccessful teams. The difference is often night and day. On a successful team, projects are actually completed. On an unsuccessful team, it is difficult to get through a meeting. It’s often impossible to get through a project without some kind of team restructuring.
Each time, the determinant factor has always been the soft skills of every technologist on the team.
Soft Skills That Every Technologist Should Have
Communicating effectively with people from different backgrounds
Communication skills are a must on any team. However, for a technologist, communication skills are essential. A technologist might work with technologists from different backgrounds. A technologist’s skills might be extremely specialized in his or her technical expertise. They might also work with clients, product managers, and other managers from different areas of the business. The ability to communicate effectively with everyone is a skill that takes years to develop. Effective communication means the following:
- The ability to translate technical concepts into everyday language that can be understood by people without any technical background.
- The ability to understand the business well enough to speak about technology in terms of the business the technology is supporting.
- The ability to communicate clearly in the native language spoken at work.
Navigating work relationships with empathy and emotional intelligence
As a technologist, it is easy to get caught up in the wins. In any highly intellectual field of work, there’s a “high” associated with accomplishing goals. Sometimes, the feeling of succeeding in what you love to do can also cloud your judgment and make you lose sight of what is important. Every member of the team is important. Just because we overcame a difficult technical hurdle, we still have to package and market the product to customers. Those aspects of the business are just as difficult if not more difficult than developing the actual product.
As a technologist, respecting every aspect of the business development cycle and everyone involved in creating the “win” is intrinsic to the success of the technologist in the company. There are ups and downs in any project. The ability to stay grounded during those highs and lows is key for any technologist.
Underlying empathy and emotional intelligence is the ability to see another person’s point of view. In any highly intellectual pursuit, it often requires the technologist to be single-minded and obsessive about acquiring the knowledge that is required to solve complex problems. The ability to switch from this single-mindedness to open-mindedness is difficult for some technologists. It is a skill that must be practiced. Dealing with people requires an open-mindedness different from dealing with code and systems. This kind of open-mindedness can be practiced in different kinds of interpersonal relationships with family, friends, and coworkers.
Understanding the business and its objectives
Unless you work for a software company where your product is the business, for a technologist, there’s always a need to understand the business that the technology serves. There are different aspects of the business that will affect the product development cycle. For instance, a software team that’s designing software for internal clients might look to the business for the requirements of the project. The budget that the business is willing to dedicate to the project might drive the timelines of the project. Testing and roll out might rely on a partnership with the business. In this case, the technologist must have a solid understanding of the business to be able to understand the requirements of the project. It also means that the engineers might interact with members of the business team on a regular basis as the project progresses from requirement gathering to testing.
In the case of a data scientist and a technology manager, understanding the business is even more critical. These are roles in technology, where the technologist is partnering with the business to solve business problems. In these roles, being able to speak the language of the business is a must. In meetings, these technologists often have to act as the consultant to present solutions to the problems. Not only do these technologists have to understand the business. Sometimes, they have to understand the business even more than the business managers. They have to understand the best practices within the industry to solve these business problems.
Storytelling and presentation
Coding and storytelling go hand in hand. There cannot be one line of code written without a comment explaining what the block of code is for. If projects are managed as they should, all the pieces of the project should be laid out in a design document. A senior programmer should be able to walk through all the pieces and tell the story of this system that everyone’s working on. The data scientist’s job is to analyze data to solve business problems. That data scientist is telling a story of the business through data. Similarly, a technical manager often has to stand in front of business managers to make the case of how much the technical team is helping the business. In every technology role, storytelling allows the technologist to translate technical details for everyone to understand.
Time management and productivity
It can be difficult to manage time in any creative pursuit. Managing time in a way that doesn’t hinder creativity is really about balance. Balancing out concentration, flow, and creative mania while staying on schedule with the project deadlines is not an easy task. Productivity implies results. Often, creative people, such as a programmer or a data scientist, get caught up in perfection. That kind of need to seek perfection in tasks can become an impediment to productivity.
A technologist who has day-to-day rituals often manages time and productivity better than technologists who don't have rituals. When there are only two hours in the day to code a part of a system, the technologist might just write the most efficient code in that short span of time. Having multiple technologists overseeing each other’s code through code reviews also help to shorten the time spent at coding. The shortened time frame often prevents the onset of perfectionism. Similarly, for a data scientist and a manager, a healthy amount of time pressure injected into the project means that work can be conducted in an effective manner.
Adaptability and creativity
Nowadays, one of the most underrated skillsets for a technologist is adaptability and creativity. I didn’t really find this skill to be extremely useful until a few years into my programming career. In today’s workplace, technology innovation happens in such a fast pace that to be able to adapt to the latest technologies is a must. Beyond that, business is changing daily as well. Instead of working on a project for years, technologists might be working on projects for only a couple months at a time. Budgets might not be guaranteed for the next phase. As technologists, working in uncertainty mean that we must adopt the motto of “We do the best that we can for the situation at hand.” It’s not always about being able to do the “right” thing. It’s more about doing our “best” under the given situation.
In uncertainty, there’s always a degree of creativity that the situation demands. As a programmer, a data scientist or a technology manager, we understand the “right” way of doing things. How can we be as creative as we can to do the “best” that we can in situations that are not ideal? To be able to balance technical integrity while delivering for business objectives often takes unusually creative solutions. As technologists, this is where we flex our creative muscles. This is where we go from good technologists to great technologists.
Intrinsic motivation and curiosity
I don’t know any good technologists who are not intrinsically motivated. Being a successful technologist requires a lot of dedication and years of study, it’s much easier if the person is not just in it for the money. I’ve encountered many who quit their technology careers midway simply due to the lack of motivation. When you’ve been at a job for a few years, it’s easy to feel like your skills are not enough for the new job market. Without intrinsic motivation and the curiosity to constantly learn new skills, it’s impossible for any technologist to have a long-lasting career.
As technologists, in our workplaces, we are frequently encountering problems that seem impossible to solve due to business constraints. There’s time, budget, data and resources constraints to any project. Frequently we’re also pushing our intellectual limits by applying the newest technological innovations in our projects. Without a healthy dose of intrinsic motivation and curiosity, it’s difficult to overcome the doubts that might creep in. Curiosity starts us on the path of solving complex problems. But, it’s often the single-minded intrinsic motivation that allows us to keep going for the hours on end to find the solution.
Problem solving and perseverance
At the end of the day, the main job of any technologist is to use technology to solve a business problem. Even game programmers who are programming games for kids are solving the “entertainment” problem of the buyer of the game. Along with that, each programming, data science or management problem must be solved by us in order to proceed to the next step of the project. The inherent logical step by step manner of programs and projects calls for perseverance. A later step often can not be completed without first completing the current step. Even if a technologist doesn’t want to deal with an issue at the moment, often, that technologist has to keep going to find a solution. As a technologist, persevering the challenges despite circumstances is the key to success.
Whether you are a new or experienced technologist, I hope that you can see how these soft skills can help you in your career. With the right mindset, these soft skills can be learned and practiced every day. Today’s technology demands a dynamic work environment full of coworkers coming from different backgrounds. In that dynamic work environment, we can all be better technologists when we use our soft skills effectively alongside our technical skills.
About the Author
Jun Wu is a Content Writer for Technology, AI, Data Science, Psychology, and Parenting. She has a background in programming and statistics. On her spare time, she writes poetry and blogs on her website.