If you’re anything like me, you’d know how nerve-wracking the technical interview process can be. Especially if, like me, you’re not that technically proficient. But this process can be daunting even for those who are excellent coders.
Some developers can reverse a linked list or write an algorithm to check for palindromes in a jiffy. However, they are sometimes told they wouldn’t be a good fit for companies. So what’s the problem?
Why being a great coder is (probably) not enough
A long time ago in a galaxy far, far away the professional world of software development looked quite different from how it does today. Thanks to waterfall project plans, designers could create interfaces and ship them off to dev teams without any real interaction.
Those days are behind us as an industry. Thanks to agile project plans and companies realizing that developers are people too (albeit often odd ones), developers have become more integrated with the rest of businesses.
Don’t get me wrong, technical skills are still essential for developers, but soft skills are becoming increasingly essential for developers who want to stand out.
What are soft skills?
Soft skills are a combination of people skills, social skills, communication skills, character or personality traits and more. They are intangible and not as easily measured as hard skills. They basically determine how well you’ll be able to communicate and collaborate in a team setting.
Which soft skills are most beneficial for developers
While just about any soft skills can benefit you in some way, I’ve compiled a list of ones I think are especially important for developers:
Be empathetic (towards teammates and users)
Empathy is basically one’s ability to place oneself in someone else’s shoes. In a software development setting, there are several interactions where this becomes especially important. Consider the following scenarios:
- Reviewing a team member’s code
- Interviewing a possible new team member
- Dealing with a QA engineer testing your features
- Building software that people will use
In all of the above examples, it’s possible for a developer’s empathy to be tested. It’s important to always consider other parties when you’re interacting with them. Think carefully about the language you use and how you come across.
I’ve met several developers throughout my career who wouldn’t say a word in meetings. While knowing when to stay quiet and listen is a great skill, knowing when to speak up is equally important.
For developers, this often doesn’t come naturally. After all, a lot of developers likely chose this path because they’d rather talk to computers than to people. If this sounds like you, I’d highly recommend for you to start working on this. It’s fine to start slow, I know it can be difficult. It’s worth knowing that a lot of pain points can be ironed out if you communicate well with your team members.
Be willing to change and grow
They say the only constant is change. In the fast-moving world of software development, this is especially true. Hardware keeps changing and the in-demand programming languages, frameworks and so on often do too.
In some cases, you might work for an industry that requires developers to maintain legacy systems, but even then it’s a good idea to stay abreast of the latest tools and technologies. One of the worst things you can do for your career is to allow your skills to stagnate.
This also comes into play with projects and codebases. Developers need to be able to adapt well to changes in the project plan. And, sometimes need to be willing to throw some of their code away if someone else suggests a better solution.
Be accountable for your work
This counts especially for senior developers, but even junior developers should know that they are responsible for the code they write.
We all make mistakes. Maybe at some point, you’re going to make a mistake that might be costly for your company. Don’t try to shift the blame. It’s best to own up to it and to see to it that you do better in the future.
Manage your time effectively
Software developers deal with deadlines often. Therefore, it’s an important skill for developers to be able to estimate how long certain tasks will take to complete. On top of this, it’s important to know how much work you need to put in during this time to complete your tasks by the proposed deadlines.
This will largely depend on how you like to work, but it’s generally a good idea to have a laser focus on one task at a time.
Lastly, an often overlooked aspect of time management is to know when to stop and have a rest. It is the nature of the industry that you might be expected to work overtime during crunch time once in a blue moon. However, this doesn’t mean it has to be a regular occurrence. Take care of yourself and you’ll be a more efficient developer for it.
Be creative and innovative
Maybe simultaneously the most and least obvious item on this list. Sure, maybe you’re not a designer, but approaching challenges from less obvious angles can lead to the best results.
Creative thinking is a skill that you can learn, not from watching lectures but by learning and applying creative thinking processes. For developers, I’d recommend trying out some coding challenges on platforms like CodinGame to get those creative dev juices flowing.
As times change, it’s becoming increasingly important for developers to learn more soft skills. I think we can all benefit by reflecting on where we can improve our soft skills to become better team members and better leaders.