7 characteristics that distinguish a great programmer from a good one
7 characteristics that distinguish a great programmer from a good one
Great programmers are rare, they are 3 times more productive than an average programmer and 10 times more productive than a bad programmer. These great programmers, who make up 1% of all people in this field, are not only coders, but also have other intangible and important qualities. After working with over 1,000 programmers, we’ve identified 7 traits that separate a great programmer from a good one.
“The best programmers are at most 28 times better than the worst programmers” Robert Glass
1. They have good communication skills
Good communication skills are directly related to technical skills. A great programmer is able to clearly understand problems, break them down into smaller parts, and come up with coherent solutions to solve them. They understand concepts quickly and ask the right questions to understand different issues. Also, great programmers are usually fluent in several different languages and do not have any language problems in their relationships.
Strong expression and high social relations are important characteristics that separate a great programmer from other colleagues.
How to test this skill in people?
Simulate a scrum meeting and see how they interact?
Define a scenario/problem for them and see how they can communicate effectively.
2. They are good at managing time and tasks
Professional programmers are very reliable. They have a great work ethic and attend meetings on time. An important skill for a programmer is the ability to estimate the amount of time needed to complete a task. Exceptional programmers manage customers in the best way; Instead of customers managing them.
How to test this skill in people?
A good way to test each developer for the above features is to make a short-term contract with the developer and evaluate him periodically. In this way, you provide all your feedback about the programmer in this evaluation. You have to recognize his strengths and weaknesses quickly and if you see a problem in his performance, decide to give him another chance or stop working with him.
3. They have fast learning skills
Great programmers are usually amazing self-learners. They have the ability to learn new technologies and are not left behind when new technologies come into the field. Every programmer experiences times during his career when he does not know the answer to a question. Professional programmers find various resources, talk to the right people and provide the right solution for the problem. The best skill anyone can have is knowing how to learn, and great programmers master this.
How to test this skill feature in people?
Conducting a structured behavioral interview
Assigning a complex project to a person and checking the amount of resources used during the project
4. They have a lot of deep technical experience
One of the characteristics of professional programmers is that they are deeply immersed in limited technologies. That is, they have spent a long time to learn each programming language and instead of learning a large number of them, they learned a limited number professionally. Finding a programmer who has worked on a product similar to yours is important because that person knows the best technologies for your field of work. A programmer with a lot of technical experience follows coding standards and writes code that is understandable to other programmers. Experienced programmers should be familiar with best practices such as agile development, task management software (Jira, Trello, Slack, etc.) and version control software (if they know Git, they are probably also familiar with older systems like SVN).
And how to test this skill in people?
1. Ask for their previous work samples
Check if they can showcase their previous products that they have built. Ask them to send you pictures of their past project progress
2. Talk to your previous employer or boss
Talking to entrepreneurs or CTOs who have worked for them will reveal their technical prowess and other minor qualities.
3. Programming challenges
Although most of the work challenges are not similar to the programming challenges on the CodeEval site, if a programmer can solve some of these problems in a short time and using a smart algorithm, you can be sure that you are dealing with a smart and experienced person.
5. They have the ability to work in a team
One of the most important characteristics of top programmers is their ability to help each other and other programmers. They teach their teammates new skills when problems arise, and can even write documentation that not only helps teammates, but also serves as a guide within their organization or the developer community more broadly.
You can define a challenge and ask them to find a solution to the problem by following the principles of teamwork.
6. They have the ability to focus on the end user
A good programmer does what is asked of him. While a great programmer thinks about the end user of the software and tries to create a better user experience by solving their possible problems. A professional programmer wants to make sure that every feature of the software being developed creates value for the user so that if a part of the software does not create value, they will remove it.
Ask them to write a list of possible problems that users will have with the software during the project and check how well they have been able to identify the needs of the users.
7. They care about work
The hallmark of a great developer is that they care about your product. They have a positive personality and will do their best to deliver their best work on your project. They usually take the time to research your brand identity to deliver the product that best matches it.
Other things to consider:
1. Expertise is not everything!
Keep in mind that expertise is important, but it shouldn’t be your only criteria for hiring people. A person who has the ability to learn quickly, has a great attitude, and has leadership skills, even if he has less technical skills, is still more valuable than someone who only has technical expertise. This person can improve his skills by learning and can provide creative solutions with his attitude. Therefore, having expertise is not the only criterion for choosing the right person, and other things should also be considered.
2. Look at the size of your company
The importance of all the mentioned features varies based on the size of your company. Large companies often look for specific skill sets because their positions are more stable. However, for startups that are in a state of uncertainty, the ability to solve problems, learn new technologies, and the ability to work in a team can be more important. In general, you should list the necessary skills considering the conditions and needs of your company and search for the right people based on that. (Read books about the characteristics that distinguish a great programmer from a good one.)
How do some people become great programmers?
1. Education: good or bad
2. Follow your heart
Doing things you enjoy will automatically help you improve. The best programmers are curious, love to build new things, and love the impact technology has on the world. It helps you to be more creative and show your skills better.
3. Get experience
While starting out, don’t choose your career just because of the high income. Choose a job that will help you gain experience in a short period of time. Even if you are not paid anything in return. Try to work for a startup or a large company and build that experience.
4. Shape your toolbox
Technology is changing rapidly. New platforms are being built, new languages are being developed, and products are being built at an amazing rate. Therefore, it is important to adapt to these changes and accept them. They are made to make things easier for you. Choose the most up-to-date tools and build your toolbox. A professional programmer easily learns new tools and creates new things with them.
Result
The lack of talent in attracting people has made companies unable to hire the right professionals for their needs. As a manager, try to hire the right people and help the growth and development of your organization by considering the principles mentioned in this article. Also, don’t forget the characteristics of a good manager versus the characteristics of a good programmer.