A common question among developers is how do I know if I'm good at my work?
Do you keep up with the trends or are you steady to a framework? Do you use best practices? Are you helping the juniors or if you are a junior do you ask your questions correctly to the seniors?
You are a good developer if you can explain how your code works to someone with no experience. This is done by describing it in terms of the abstract concepts that it represents. You can describe your methods and functions by giving them names so that others can understand what your program does. You can describe your data structures by giving them names so that you don't have to memorize a long list of objects. You are a good developer when you test and write bug-free code as well as you get positive feedback from your managers.
Additionally, you can ask yourself a series of questions such as: Do I understand the basic difference between an object oriented programming language and a procedural programming language? Can I abstract data structures? Do I have a clear idea of how classes and objects relate to each other? What are the main differences between an object-oriented programming language and a high-level programming language? Can I define and compare one with another? Do I understand the concept of encapsulation? I could continue with questions but I think you get my point.
Programmers play a key role in software development. A team of programmers usually develops a complex program. This can involve both technical and creative aspects and a developer must be good at both! If you are a code newbie you can still be a good developer. Most beginners tend to start asking questions from a technological point of view. They assume that a complex program must be written in a specific programming language (and in some cases that can be true). However, many programmers use everyday words and phrases in their code to describe the problem or change frameworks and languages according to the software they are asked to develop.
If I had to choose only 2 soft skills that make a good developer I would go with: fast learner and good communicator.
Fast learner: Being a fast learner means being able to finish day-to-day activities with speed and accuracy, while at the same time being able to concentrate on the bigger picture and if needed to explain your thoughts to other developers around you. The tech world is a fast paced world, new technologies arise daily. It doesn’t mean that a good developer should know every new framework that pops up. But it means he/she should be able to recognise which framework suits each project better. And this, in my opinion, is what separates the good ones from the mediocre ones.
Communication: Being a good communicator is very important in being a good developer. Being able to communicate with your team members is necessary in order for you to hear what they are trying to say and if asked, help them in their requests. Good developers listen well to what their teammates are saying and then carefully consider their thoughts before making decisions. Communicating with your Being a team member should not be something you do once in a while, but rather something you should do every day.
The developers that are really great at communication usually have high levels of empathy. This is one of the basic principles of being a good developer, and actually, empathy is crucial in every kind of job. Being able to feel what people are feeling and why they are feeling it is one of the most powerful tools that you have at your disposal (and especially people who work in the UX field should be aware of that). Empathy doesn’t have to do only with your team members but also with your managers and the clients. By nature, some people are more empathetic than others, and it is a skill that can be improved with practice.
Good developers can be great “Business Partners”. They are able to make a difference by developing a strong business partnership. There are many times that different individuals will come together to form a business. However, this doesn't always work out. The same thing goes with software development teams. Sometimes the best developers and business partners will form a working team where the business can prosper. If you have a developer that is capable of developing business relationships, then you can rest assured that your business will thrive.
There is also one more category I wouldn’t like to miss, the one I like to call top-level expertise. The developers that are capable of leading a group are the ones that really get things done. These are the developers that have been around the longest in the company. They know the ins and outs of the business and can easily lead the business partners. If the developer is good enough, then he or she will be given more responsibility and get promoted.
How do I know if I'm an ideal candidate for a programming position? Ask other developers. You can give them a list of questions; you can even get interviewed by other companies. Be sure to know what a company is looking for, and be sure to meet the hiring manager early on in order to make sure that you are a good fit.
How do I know if I'm doing well in my developer role? Read your own code. Ask other developers for their opinions. Make sure your questions are asked correctly. Help the juniors. Or consider taking a class or two to sharpen your hard and soft skills.
Being a developer has never been easy. Developers need to have the skills that are required to develop and manage different types of applications. Your skills must span both hard and soft skills. Being able to communicate your work and communicate with others can clearly give a developer an advantage. Being able to learn fast, knowing the company’s code, being keen on helping, having an interest in management and collaborations can also be key factors for a developer’s career.
Eleftheria is a freelance developer and community manager at Hashnode. Her studies include a major in Informatics and Telecommunications of Engineering and a master's in Graphic Arts and Multimedia. She has worked for many years in the field of frontend and app development. She has created tech courses for several platforms such as Packt, Udemy, and Skillshare and she likes to produce motivational talks and how-to videos on her YouTube channel.
When she isn't glued to a computer screen, Eleftheria spends time working out and strolling in nature.