How to become a great programmer has always been one of the focus of discussion. There are plenty of articles on this topic on the web, but today’s post from CodingDojo sheds light on the 10 common traits of great programmers. – EarlGrey @ programming

If you keep up with the latest programming languages and frameworks, great: you already have the technical ability to write good code. But to really stand out in your role, you need to have a few more traits. Here are 10 things you need to be a good programmer. (We know this list isn’t exhaustive, so feel free to comment on what makes a good programmer.)

Inventor of the Python programming language: Guido van Rossum

1. Comprehensive development.

While it’s great to know more about a technology, real-world problems can never be solved by one technology alone. Even if someone hires you as a technical professional, you still need to understand how your technology interacts with the other software, hardware, and networks that make up the app ecosystem. You will also need to contribute in many different ways to the project, offering to help as soon as it needs more support.

2. Enjoy solving difficult problems.

App development doesn’t happen overnight. Figuring out why code doesn’t compile, why bugs happen, and learning how to solve problems in production during development requires problem-solving skills and a persistent belief that a solution can be found. If you can solve problems under pressure, so much the better — when the system is down, you can imagine management breathing down your neck as you solve them.

3. You love learning.

Technology is constantly evolving. The tools and languages you use today will not necessarily be the tools you use next year, let alone ten years from now. Therefore, you need to constantly learn new skills so that you can participate in future projects. Your boss may provide ongoing training, but the best programmers take the time to educate themselves.

4. Good at communication.

A programmer’s job is not just to work with technology. Programmers also need to communicate with business users to understand their application needs. They also often need to produce technical documentation, so it’s important to write clearly — even if it’s just a progress report.

5. Confidence.

There is more than one way to develop a system. No matter how great your ideas are, they are worthless if you keep them to yourself. The best programmers are so confident in their ideas that they speak up during design discussions and can even influence the architecture of the application. To enhance your message, start with a few small suggestions, rather than proposing to redesign the entire app at the outset.

6. Curiosity about business.

Companies use technology to solve business problems. The more you understand the business, the easier it will be for you to understand the problems the company is trying to solve and the easier it will be to develop solutions that will help the company grow. You should take advantage of the opportunity to talk to business users and ask them about the difficulties they face in their work. If you are really interested in business, you can take some classes and even try to get some qualifications in the business field.

7. Focus on teamwork.

Movies often glorify the role of a single programmer, and computer science majors often work alone, but real world projects require teams. Therefore, how well a programmer can get along with colleagues is also important. You need to be able to deal with people at different levels of ability and respect their different opinions. If possible, try to get to know your teammates as your friends, not as technicians. Talking about things that aren’t part of the project from time to time also improves relationships and makes it easier to collaborate at work.

8. Understand the importance of deadlines.

The best project managers take the input of the project developers into account when scheduling deadlines, even if external factors sometimes shorten the project schedule. No matter what, as long as you agree to complete a task, you go all out to meet the deadline, even if it means working overtime. Of course, you don’t have to give up your personal life for the company and your job, but your co-workers will be positively impressed by the commitment and effort you show to completing projects.

9. Adaptable.

Projects and priorities change for many reasons, so programmers need to be able to switch gears and focus on what’s most important right now. These changes can be subtle and temporary, or they can be major and long-term. If it’s temporary, be sure to document it so things can settle down and get back to normal development. If it’s long-term, take the time to understand the new scene and figure out how to fit in. It may also provide new opportunities to help you achieve your goals. No matter what happens, stay professional at all times and don’t let the situation get you down.

Think of yourself as the owner of the product.

Strictly speaking, once you’ve written code that compiles and passes test cases, your job is done. You stand out if you can continue to be involved in other phases of the product lifecycle — that means being willing to help test, develop, train users, and solve problems in development. While this is better for your work, you actually get more out of it because you see and experience the efficiency and impact of your code in actual production. Now it’s up to you to take advantage of that experience and make your next app even better!

Translator: Earlgrey@programming school