Whereas hard skills are are easily demonstrated by a candidate’s qualifications and specific professional experiences, soft skills are a term used by employers to refer to the more intangible and non-technical abilities that are sought from candidates.
Here I have prepared a list of 10 soft-skills that we at Searchability and the CTO’s we work with look for in candidates. With a little help from my twitter followers!
Effective communication is a key skill in any workplace. At Searchability, we always call a potential candidate first as it can tell us an incredible amount about the kind of person we are dealing with.
Developers must have excellent communication to effectively exchange information with team leaders, clients, colleagues and of course – fellow developers.
It is important that you are confident in communicating your ideas and suggestions to others on the team as well as being able to listen to other developer’s ideas with an open mind.
Listening is crucial in being an effective communicator. You must be inquisitive, immersed and proactive!
Teamwork is also another soft skill that can be used across many industries. Even if you work independently – at some point in your life you will be required to work as part of a team.
How can developers meet important deadlines without working in a collaborative environment?
Working as part of team can also make the project more fun to work on, you may not always agree with colleagues’ opinions but getting different perspectives can help to build a highly successful company!
Leading on from teamwork, if the CTO knows each team member and their skills, abilities and weaknesses, it allows for easier prioritisation of tasks. As a team, it is important that the urgency of software development tasks and projects are aligned with business goals.
Additionally, before all the hard work goes in to these tasks, they must be analysed effectively, to know how much true value the hard work will produce. The last thing you want to do is commit to building anything, unless you understand the value behind it. Then once you have decided upon the value, you can prioritise accordingly.
It is also important that you set your own goals that will drive self-motivation and determination!
There can be a lot of pressure on developers, so it is important that you are able to emphasise with your team. When sharing ideas, it is essential that you give both the pros and cons of their opinions before making a decision. By doing this, your team member will understand and appreciate the argument for and against their ideas. Put yourself in another’s shoes: Working with an awkward client? Figure out what makes them challenging. What do they want from you and why? You need to think about how you can assist them in overcoming their problems.
Ali Spittel explains in her zen of programming blog that:
“empathy is helpful for being a team member and a mentor”.
Empathy is quite often forgotten about in the world of development, but it is one of the most important skills to have! Showing empathy can help to make the people you work with be inspired, innovative and comfortable in their role.
It will take time to acquire this skill if it does not come naturally. By showing empathy to your peers you will become progressively more approachable. It is important to SMILE! You want your employees to feel comfortable talking to you so that you can keep the channels of communication open.
By showing warmth and thanking people for bringing you information you can improve the cooperation within your team and ensure that any problems are attended to as quickly and sufficiently as possible.
Creativity is all about finding different ways to approach a problem/task.
At Searchability it is more than just a CV that makes our candidates stand out!
We always ask if you have a GitHub, Portfolio or web page that can allow our clients to get an insight into your level of creativity, as this is a key skill to have in your toolbox as a developer.
At some point in your life you are going to face a problem. Whether that problem is at work or home, it is important to learn how to approach and handle a problem before it escalates.
Demonstrating a high aptitude towards problem solving can not only vastly increase your ability as a programmer but show to others that you can operate comfortably in a pressurised environment, which can be a reassuring trait amongst a team. A large part of your job will include destructing big problems in to smaller ones that you are able to provide solutions for. Working as a team will also help as you gather multiple opinions on the best solutions to solve each problem.
You must figure out the pros and cons of each solution before any decisions can be made.
Within the programming community there is a strong desire to learn new technologies and be curious about new programming languages. Many developers like to explore new technologies in their side projects or GitHub. It is imperative that you keep this curiosity for new technologies throughout your career to ensure you are aware of the modern and in demand technical skills. Nonetheless make sure you don’t become a jack of all trades, you must focus on remaining a master of 1-2 languages.
To solve problems that matter, you must have some curiosity. If you are just starting out in software development, it is important to ask questions to improve your knowledge of different technologies.
If you are an experienced developer, it is important to be curious instead of being judgemental and critical of other opinions. If you listen to other developers’ ideas it could mean the difference between the success and failure of a project.
The best ideas come from curious minds and wonderful imaginations!
As well as showing empathy to new developers it is crucial that you have patience. You must remember that at some point in your life you were in their shoes and think about how much time and effort it has took you to be where you are today!
It is not just your fellow developers that require your patience. You need to keep in mind that clients/non-technical colleagues will not understand technical terms or how long certain tasks could take. If a client is asking you to complete a task in an impossible time it will be beneficial to both you and them to take your time to explain why the task will take longer rather than getting frustrated.
You will need to be able to go to the effort of demonstrating the reasons behind your decisions in a non-technical way.
Learning to code is a fantastic way to acquire the soft skill of resilience. Debugging is essential, and you will find throughout your career just how frustrating one small error can be.
Rather than stressing out turn it in to a fun challenge.
The key is to never give up, remain motivated and persevere with the task!
This also applies in job hunting, do not be set back by unsuccessful applications but instead, figure out how you can better yourself and how you can use any feedback to improve the way you come across to employers.
Thanks for reading!
Follow me on Twitter for more tech-related posts HERE.
Check out Ali Spittel’s Blog – THE ZEN OF PROGRAMMING.