Universal guidelines to becoming a better software developer.

Universal guidelines to becoming a better software developer.

Overview

In the recent history of mankind, People have been coming up with new crafts, artistic endeavours and skills. But only a few of those crafts/skills have been revolutionary in the same sense as the invention of computer language. The fact that there's been an upward spike in the number of programmers in the last few years, makes it so that there's going to be a lot of average ones as opposed to experts. What sets these two apart are a few attributes that are going to be laid out below. My intention behind writing this is to help push you towards being a better software developer. If you internalise the following commandments, not only will you become a far more effective programmer, you will also become a star teammate that any team would be lucky to have.

Accepting fallibility and improving

One of the big attributes to add to your repertoire is the willingness to accept that you are not perfect and therefore you are going to write bad code. That awareness lends itself to rechecking the work and finding faults in your code. You have to be a harsh critic of yourself because only then will you figure out issues with your work and grow in this competitive arena.

Being in control of the outcome

As far as possible, avoid blaming external factors when something goes wrong. You have to take ownership of your mistakes and try to find a fix for them instead of trying to save face after making a mistake. When you take responsibility for anything that goes wrong, you are more critical of your work the next time before sending it out to be utilised by users.

Human limitations

Almost everyone is guaranteed to write bad code, we are humans after all and therefore we are susceptible to putting in varying degrees of effort from day to day. One day you might produce your best work and the next day write code that’s barely passable. We are bound to be inconsistent with the quality of work we produce but one thing to always keep in mind is that you are going to improve over time if you keep at it. Be honest with yourself about your weak points so you know what needs more work. The peaks and valleys only serve to hone your ability to code better in the long run. This is a very powerful mindset to have towards everything in life.

Curbing your arrogance

You might have an edge over your peers as a result of starting out early or being naturally gifted at coding, ergo you pride yourself on being a master coder but you have to come to terms with the fact that there's always someone who knows more programming languages and is also better than you at coding, therefore It’s a good habit to develop to have an open mind towards learning something new from someone you consider to be “mediocre”. Occasionally, a person less qualified than you might have picked up a technique that you are oblivious to, and it would do you good to learn from them. Now let’s talk about humility… Not only is it applicable to your work life to be modest, it's an essential trait to work on in all aspects of life. If there's someone who knows less than you, there's never a reason to be condescending towards them. That person is a human being and extending a helpful hand in that situation will go a long way in building a relationship with them. You should want to strive to be described as personable and selfless.

Clarifying misconceptions

Every now and then you are given a task to work on and you are confident in yourself to write the code for it but when you get down to it, you find yourself in a position where you don't know what to do on a certain point. In that instance, it would serve you well to have a conversation with your teammate/superior to help you fill in the blank and give you the complete picture of the task at hand, alternatively you could also reach out to the person you are writing the code for, and enquire about what exactly needs to be done.

Avoiding downfall after accomplishments

Eventually you are going to climb the hierarchy and are going to be put in leadership positions. Some 'leaders' get complacent because being an authoritative figure can get to your head and make you overconfident; your competency is subject to taking a hit if it's not worked on and refined even at the top. You have to keep sharpening yourself like a blade otherwise it'll become blunt from a lack of striving to keep yourself updated with the times. There is ALWAYS room for improvement, regardless of how competent you are.

Playing the long game

While working in a team, there might be various approaches to completing the project and you may have a different take on how to go about it. Lay out your plan of action in such a manner that convinces your peers/teammates to take it up, if your arguments fail to persuade them, you have to learn to respect their judgement and compromise, because being hell-bent on doing it your way is only going to isolate you, and make it undesirable for anyone to want you as a part of their team in the future.

Being compassionate.

Code is a product of its writer, it's not their identity, if someone you know has made mistakes don't attack them personally for being a bad coder but offer constructive criticism so they can improve and be a better worker; remember a rising tide lifts all boats. If you play an instrumental part in someone’s growth in programming, you are going to have a much more competitive environment to work in and you’ll improve your skills consequently.

Although all of the above commandments sound basic, you will be surprised at how often the human mind tends to forget the fundamentals especially when dealing with a high brain energy like programming. You may even encounter some coders who do not follow this. Follow the above commandments and you will always find yourself in your teammates’ and your compiler's good grace.

PS: If you are interested in remote software engineering, and want to be immersed in the culture and community follow me on Twitter. I tweet every two days and the community will help fastrack all our careers.