Non code related skills that are useful to coders

The topic today is actual soft skills that make a difference in your life. Or rather, not just soft skills. Any skill that is outside of writing code and knowing oodles of absurdly technical stuff, but which nevertheless counts towards being a good software developer.

  • This is not an exhaustive list.
  • Your mileage may vary.
  • Some of this stuff might seem very basic and it is – feel free to ignore or disagree with anything you feel should be ignored or disagreed with. It’s not like I’m qualified to have opinions on this topic. como tomar la ivermectina en comprimidos

Understanding yourself

Basically this just means being prepared to take a good hard look at yourself and see where you have weaknesses, admitting that they could be a problem, and finding ways to mitigate or fix them. It’s ridiculously hard.


Basic. But important. You can decide how you want to dress obviously, unless the boss says thou shalt wear the clown suit. ivermectin frequency of administration on poultry In that case thou wearest the clown suit and thou art grateful. But the important thing to understand, regardless of what you are wearing, is that what you wear sends a message about who you are. So far so basic. What I took a while to realise is that people don’t have a choice in how they perceive you based on your clothes. What that means is you can control people’s perception of you by your choice of dress. Of course this is no longer perfectly true since we all got locked down but the principle still applies to video chat.

Basically, as a software developer you want to project the image – regardless of the reality – that you are competent. Of course, it’s also good to actually be competent, so by all means do that. But the thing is, being competent is not entirely within our control. Even if we have the ability, we still need the client / our boss / whoever we’re working with to trust us in order for us to be actually able to deliver. And the most basic thing we can do to foster that trust is to dress to project that image.

Here’s where it can get a bit tricky. You could go whole hog and be a total snappy dresser who wears a suit to work every day. But actually, we’re an engineering profession. Programmer dress code is normally a bit more relaxed than customer facing people like sales. That said, if you make sure that you dress neatly and professionally – and wear very muted, neutral colours like black, grey, white and whatever beige is, that goes a long way towards convincing people – without you having said a single word – that you’re a serious person who should be taken seriously.


When I was a young whippersnapper fresh outta uni I thought I knew a lot. And I did, to be fair. But I didn’t know everything, and I had trouble recognizing that. I still do. But to truly master being an engineer you have to learn to leave your ego at the door where it won’t interfere with my ego and what I’m telling you about. I mean, hehe, I totally left my ego at the door too, what are you complaining about?

Basically there are a few things I’ve learned, which may or may not be of use to you:

  • I am usually not the expert. I need to recognize that fact and make sure that I consult with whoever is actually the expert when solving a problem.
  • Anyone is capable of contributing valuable ideas to the discussion, even if they sound dumb at first. If someone is a junior dev or super young or super old or super grumpy… or whatever… they can still have absolutely good ideas which are better than my idea, and they can be more knowledgeable than me.
  • I should never be afraid to look like an idiot. When I don’t understand I should speak up and say so.
  • Stuff ups happen and sometimes they’re my fault and when that is the case I need to own up.
  • I am nearly terminally arrogant sometimes – I do think I’m pretty sharp – and I need to check myself occasionally and make sure that I’m not suffering from hubris.
  • Regardless of how dumb I think it is or how convinced I am that it is a mistake, sometimes the client will insist on something and at that point my job is to faithfully implement it to the best of my ability. And frequently they will be right and I will be wrong because I am not the expert. The client is the one who intimately knows the problem they want me to write software to solve. At the end of the day it’s their call.

I won’t lie, these things are frikken hard. I hate thinking that I’m wrong or feeling like an idiot or making stuff ups and having to own up to them. And I really hate being overruled and having to implement a solution I disagree with. But I am a better engineer when I put these things into practice.

Also if you can gracefully admit that you’re wrong and be honest about stuff ups and so forth with a client, they will trust you even more. We don’t have to succeed all the time, we just have to show our client that we have tried our best.

It is important to trust yourself

This is the flip side of the previous point. OK so on the one hand I try to be hyper vigilant that I’m not overlooking an aspect of a solution to whatever problem I’ve got through not listening to people around me, but on the other hand I am a highly trained, highly motivated, intelligent software developer. I am fully capable of designing solutions. Just because someone disagrees with me or thinks I’m an idiot does not mean that that is actually the case. Once I’ve decided on a course of action I’m gonna go for it. If it doesn’t work I can always try something else.

Client communication

Here’s what I know about communicating with clients:

  • Project the image of competence. Also actually be competent. But project the image so that they trust you to solve their problem.
  • Make sure they see you as honest. This means actually being honest. how to give ivermectin to This means for example, admitting when you don’t know something. Admitting when you’ve made mistakes. Clients really like people who’re honest with them, even if you’ve made a major mistake they want to trust you, so make sure that you are worthy of that trust. They will forgive stuff ups, they won’t forgive anything that they see as lies or dishonesty.
  • Jokes, swearwords and off-colour humour are fine in person if you know that the person is chilled about that kinda stuff but be very careful about putting that stuff into writing. It tends to freak clients out and can be seen as unprofessional.
  • Sometimes things are badly specified. In this situation the earlier you go back to the client and ask them for clarification the better it is for everyone. A lot of teams farm off responsibility for requirements gathering to BAs but as the software developer you are the one with the vested interest in making sure you don’t dev to a bad spec, ‘cos otherwise you’ll just have to reimplement it later, so make sure that if you don’t understand what you’ve been asked to do you track down whoever’s responsible for the requirement whether a BA or someone else and hold them hostage until you understand what you need to do. I’m half joking about holding them hostage.
  • Always treat other people with respect. A lot of the time you’re working as part of a team. Sometimes you might spark off other team members badly or whatever. It’s fine to do that, we can’t all be shiny happy people all the time who live in the magical kingdom and are never grumpy with each other. And it’s an absolute fact that sometimes people who’re out of their depth or just… not that nice… work on the team with you. But one thing you can do is always treat people with professional courtesy even if they rub you the wrong way. The thing is, this is another of those things where people don’t have a choice. If you do this they cannot control their perception of you, they will have to see you as a nice person. I mean, you will actually also be a nice person, so it’s not like it’s a lie. If people on the team like you suddenly your job will be much easier. It’s pretty much that simple.


Here’s hoping this is useful 🙂

About the Author