4 min read

For developers looking to go to the next level and become a great developer, as opposed to someone who is considered just a good developer, this post is for you. In my opinion, there is a fine line between the two, but it could involve long term consequences if you do not get yourself to that next level. This may also be a different route than most of you expected, because I will be talking about various “soft” skills that will make a programmer great in the long term.

Ability to learn

A software engineer’s capacity to learn new topics effectively and quickly is crucial. In a world of changing frameworks and standards that evolve by the day, this skill has never been needed more. You do not want someone on your team who only knows Java, and does not want to learn anything else. Just because your company is using Java today, does not mean that it will be using Java a few years from now. Even two months from now it could be completely different. You ideally want someone who has displayed their ability to go deep with at least one language or technology and can transfer that depth of knowledge over to other areas at an extremely fast rate.

Positive thinker

In life, your attitude toward a situation could greatly effect where you end up. You do not simply just want a deep technical experience.The way you think about the things presented to you truly affects your ability to produce daily.

A positive thinker is someone who always sees the benefits that can be taken from a situation. That person is also more likely to take beneficial risks and will produce more in the end. The mindset and attitude of this individual will influence other team members as well and make the entire team more productive as a result.

Great interpersonal & intrapersonal skills

This skill can be described as someone who knows how to work with others in a positive and likeable manner. They know how to handle themselves, their emotions, and communicate with others. Youaren’t alone, you must deal with others. If you cannot deal with others in a positive manner, then your ability to create something revolutionary will be stunted.

Having this skill allows you to avoid conflicts with others, helps get ideas across effectively, and provides a better work environment that will make for a more productive and effective team.

Ability to teach others

Not everyone is a good teacher. As you probably already know, there are plenty of teachers that are not particularly good at teaching. It is a difficult skill to put yourself in someone else’s shoes and move them to the understanding of a specific topic. If you have a good teacher on your engineering team, you can greatly increase the level of your team’s output.

You do not need to have a PHD in linguistics or have written three novels to get ideas across. You just need to be able to make things clear for the other person. Inaccessible knowledge is knowledge wasted, so ensure that you explain in a way that does not leave people guessing.

Make long term vs short term tradeoffs

Sometimes, developers can solve problems that you give them, but without the perspective necessary for the larger and longer-term picture. They may be able to develop something very fast that solves an immediate problem, but create it in a way that will not allow this functionality to scale.

Other times there may be a deadline to ship some code, but the engineer may take his time developing software that handles every case. In this scenario, you want them to make a short term tradeoff to hit the deadline and refactor later.

You want someone who can make these time versus quality tradeoffs, depending on the intricacies of the scenario.

Conclusion

Overall, there are some qualities that make a good developer transcend into a great developer: the capacity to learn, the ability to teach effectively, having a positive attitude at all times, having awesome communication and interpersonal skills, and the capacity to make decisions that can affect short term and long term results. If you enjoyed this post I would love to hear your opinion.

About the author 

Antonio Cucciniello is a Software Engineer with a background in C, C++ and JavaScript (Node.Js) from New Jersey.   His most recent project called Edit Docs is an Amazon Echo skill that allows users to edit Google Drive files using your voice.  He loves building cool things with software, reading books on self-help and improvement, finance, and entrepreneurship. Follow him on twitter @antocucciniello, and follow him on GitHub here: https://github.com/acucciniello 

LEAVE A REPLY

Please enter your comment!
Please enter your name here