6 Skills Every Developer Should Have Besides Coding Skills
Developers have to deal with clients, bosses, management, investors, shareholders, fellow colleagues and themselves.
A programmer’s life, contrary to public beliefs and movies does not just involve sitting and staring all day at the computer with a headphone. It is not about how fast they can type rapidly on a keyboard while chewing a burger. Developers are more than cavemen and nerds. They are not loners in the basement.
Developers have to deal with clients, bosses, management, investors, shareholders, fellow colleagues and themselves. It is therefore imperative that a developer is well rounded and armed with other skills other than coding skills.
Below are 6 skills a developer should have besides coding skills.
1. Persuasion and negotiation skills
Persuasion is the ability to get people to do what you want them to do. Persuasive skills are used to influence many and different stakeholders including clients, colleagues, funding sources etc. Persuasive skills allow the other party to clearly see what is being offered and create an opening for negotiations.
To be able to persuade you must listen carefully to the needs, preferences, predispositions, and concerns of the other party. You must be able to build rapport with them. You must also be honest with the pros, cons, and terms of what you are offering.
Areas, where you can use persuasive skills, includes
· Negotiating a salary increase
· Offering a proposal
· Tailoring a cover letter or application so that it is in sync with the key qualification of a position
. Getting people to download or use an app
Negotiation is a process by which compromise or agreement is reached while avoiding disputes. A successful negotiation is achieved when both parties are satisfied with the outcome. A developer should be able to effectively negotiate. It makes the job easier and the other party happier.
Young developers fall into the trap of accepting offers, jobs, and deadlines that they are not comfortable with as long as it makes the boss or client happy. Some are still so excited that they can code that they just take whatever comes along. A developer should never leave the other party happy and satisfied while getting little or nothing in return. It makes the job frustrating and wears you out in the long run.
To negotiate effectively, find common grounds. Know what you want and how you want to get it. Know what the other party wants and why they want it. Be patient. Be assertive. Use open, encouraging languages and tone when talking. Strategize. Ask question. Clarify the answers.
Negotiating skills makes you a problem solver and it resolves issues without them getting out of hand.
What can you negotiate?
· Salary offer
· Legal settlements
· Roles and workload within a team
· Flexible work schedule
· Terms and conditions of a project
2. Creative skills
You think life is hard, step into the real world of a programmer. It is filled with problems, challenges, bugs, ifs, and loops. Overcoming them isn’t as important as solving them effectively — in the shortest time possible.
The tech world is a fast-evolving one, with languages, ideas, and innovations growing obsolete quickly. At the current speed of change, the programmer with creative thinking, who can think outside the box, will not only survive in the industry, but also push his organization forward.
A creative thinker
· Is flexible and adapts quickly to change and situations.
· Brings fresh perspectives on business strategies and planning for the future.
· Is innovative
Divergent thinking (brainstorming) is the process of generating lots of potential solutions and possibilities for a problem.
Convergent thinking involves evaluating these options and choosing the most promising one.
The key to creativity is learning how to identify and balance divergent and convergent thinking.
Creative thinking involves asking questions, being open — minded to solutions, ideas and being flexible.
To be a creative thinker,
· Unlearn the word “NO” and “CAN’T”.
· Think extensively when faced with challenges before googling it.
· See a problem as part of the whole system instead of as a persistent itch out to ruin your life.
· Combine two different ideas and make them better. No shame in that.
· Listen. See. Think
· Stick to your guns and see a solution through to the end.
· Put your own idea to test just as you would someone else’s.
· Ask questions. Answer them.
3. Stress management skills
It is believed that stress is a protective mechanism telling the body to slow down or replenish. Stress is a response to an inappropriate level of pressure. Too bad most developers do not listen to their bodies. They are so used to pushing and pushing that they have numbed their body’s signals. And when the stress is too much for the body to bear it leads to burn-out. It just shuts down.
Stress management skill is taking control of your stress levels and managing your body’s response.
Signs of Stress
Everyone reacts to stress differently. However, some common signs and symptoms of the fight or flight response include:
Frequent headaches, frequent heartburn, stomach pain, or nausea, panic attacks, excessive sleeping, or insomnia, persistent difficulty concentrating, obsessive or compulsive behaviors, constant fatigue, irritability, and angry episodes, significant weight gain or loss, consistent feelings of being overwhelmed or overloaded.
How to Manage Stress
The first step in managing stress is to understand where these feeling is coming from.
a. Action-Oriented Approaches
With action-oriented approaches, you take action to change the stressful situations. Instead of constantly feeling overwhelmed, you take deliberate measures to change the situation. Eg. Your workload can cause stress if you don’t manage your time well, but you can decide to properly manage your time, stick to a schedule and minimize distractions.
b. Emotion-Oriented Approaches
Emotion-oriented approaches are useful when the stress you’re experiencing comes from the way that you perceive a situation. (It can be annoying for people to say this, but a lot of stress comes from overly-negative thinking.)
To change how you think about stressful situations:
- Use cognitive restructuring, through awareness, rational thinking, and positive thinking to change the way that you perceive stressful events.
- Use positive affirmations and imagery to overcome short-term negative thinking, so that you feel more positive about stressful situations.
c. Acceptance-Oriented Approaches
Acceptance-oriented approaches apply to situations where you have no power to change what happens, and where situations are genuinely bad.
To build your defenses against stress:
- Use techniques like meditation and physical relaxation to calm yourself when you feel stressed.
- Take advantage of your support network — this could include your friends and family, as well as people at work and professional providers, such as counselors or family doctors.
- Get enough exercise and sleep, and learn how to make the most of your downtime, so that you can recover from stressful events.
- Learn how to cope with change and build resilience, so that you can overcome setbacks.
4. Time management skills
How often do you stress about not having enough time in the day or night? It’s like time keeps running and you are always left behind. Developers cannot stress enough how much they need time and how little they often get. They’re like ‘I can do this, I just need more time’.
Time is precious
Time is limited
Good time management refers to the organization and planning on specific activities in the day (or whatever time frame) and how long should be spent on them.
Time management skill is being able to keep to this schedule.
Poor time management leads to high-stress levels, missed deadlines, poor work quality, less efficiency and problems with clients, colleagues, and management.
A good developer should, therefore, be able to effectively manage time. To do this
· Avoid procrastination
· Schedule tasks and keep to the schedule
· Delegate tasks. Know your limits
· Set up deadlines
· Take breaks
· Start early
Benefits of good time management include less stress, better professional reputation, increased productivity and efficiency, and happy clients.
5. Marketing skills
Every successful brand knows exactly what they are selling and to whom. Let’s say your name was a brand, what will you sell? And to whom?
Marketing is often seen as a business-related activity but in reality, it is a way of life. Even in love. We sell ourselves and put up our best front to those we find attractive so they can be impressed with us and like us back.
While most developers are still in shock that they can code, battling the imposter syndrome, the competition rages on. And it is no longer just based on degrees and ‘what school did you attend?’ YouTube and online graduates are just as good, if not better at coding.
You can be the best coder out there, but if no one hires you, what’s the point? We’re being taught to be humble and let others sing our praises. Don’t be shy about positioning yourself in the best light possible. Don’t just sit somewhere and assume someone would notice you. There is no humility in marketing. Good marketing is about establishing the needs of your target audience (it could be an interviewer, a client, or a target market) and positioning your brand to meet with their demands. You must offer the ideal solution. Sell yourself.
How do you stand out?
· Make sure your work is good. It speaks for you even when you are not there.
· Be honest with yourself. Do a complete self-assessment to know your strengths and weaknesses. Highlight the strengths and downplay the weaknesses.
· Build and protect your reputation and brand (which is you first).
· Network. Connect with experts and like-minded people in your field. Build a community.
· Share what you know. Showcase what you have done. Let your friends and community see them.
· Promote your works.
6. Communication skills
You’ve probably heard this one from love and relationship articles, telling you to communicate effectively with your partner as the secret to a long lasting relationship. Well, the secret to a tension-free workplace is effective communication too.
Communication is a dynamic process and how you communicate can positively or negatively affect your relationships.
When I say communication, I don’t just mean talk. What do you say? How do you say it? When do you say it? What about your non-verbal communication? What does your body language say? Are you smiling sweetly at a colleague or boss with a glare and an angry stance? Or talking to someone while distractedly looking at a screen and just nodding and saying ‘yes’, ‘ok’? People see right through all that.
To be a good communicator you must also be an active listener. Not a restless, bored or distracted listener. Active listeners ask relevant questions and give good feedback.
Good communication skill is effectively projecting your emotions; your fears, concerns, anger, passion, thoughts, and opinions onto the other party without losing them. So yes, you can let your colleague know when you are not happy with something. You can also compliment them.
Confidence and respect play vital roles in good communication. Be confident enough to say what you want and open-minded enough to listen to the other party and respect their point of view.