Many things in the world follow patterns. Just like "The 7 Habits of Highly Effective People", excellent programmers also have seven main traits. Some of these traits are innate, that is, talents, but some are acquired through learning, progress, accumulation, and summarization in daily programming work. Every programmer wants to know whether they are an excellent programmer, so refer to the following 7 items and see if you have met the standards of being an excellent programmer.

1. Like helping others, taking care of programmers who are less skilled than yourself

234209ley9es9xsw1myo22

Programmers usually have a hot temper and often argue with clients, colleagues, and even bosses over programming issues. Excellent programmers can put themselves in others' shoes, understand the client's ignorance, the junior programmer's incompetence, and the boss's helplessness. They always use the utmost patience to help others, help colleagues, and help new employees so that they can grow quickly.

2. Passionate about programming

234318igwprngo24w4o4w4

Many programmers work in this field just to earn money. If there were a better career, they would not hesitate to quit their programmer job. Excellent programmers love programming and enjoy delving into problems in code. They feel that commanding computers to help people and themselves solve real-life problems is a magical ability. When they encounter unsolvable problems, they lose appetite and cannot sleep.

3. A gentleman makes good use of tools

234330kzcrc5h03eccnmbr

Excellent programmers know how to complete tasks more efficiently and solve problems more effectively. When encountering a problem, they don't get bogged down in details and are good at using external tools to solve their problems, especially skilled at using search engines. Junior programmers only use Baidu and Baidu Knows to search for problems, while senior/excellent programmers use Google and websites like Stack Overflow or MSDN forums to find better answers.

4. Pragmatic and flexible

234343txzddiiiht68r5i2

Many programmers share a common trait: they don't like constraints, don't like rules, don't like clocking in, don't like writing logs, don't like writing tests, don't like morning meetings, and so on. But excellent programmers are willing to follow rules. They know that individual heroism is inherent in programmers, but developing a formal project is a team effort, and where there is a collective, there must be discipline. However, excellent programmers are not rigid or dogmatic; they continuously adjust their strategies based on changes in the environment and developments in the situation, so that rules better serve the work.

5. Concerned not only with technical knowledge, but also with non-technical knowledge

234355ne4refn886j9xf0a

Incompetent programmers like to cram at the last minute and only study when needed. Excellent programmers proactively learn various relevant knowledge and have an open attitude toward all sources of knowledge, unlike some people who are complacent and stagnant. Moreover, they are not limited to career-related technical knowledge; they also learn any knowledge they find interesting, such as communication skills.

6. Knowing when to let go

234404ueonubdb0adenaau

There is a common problem in software companies in China: they like to pile up features, always dreaming of building a large, all-in-one, universal software that works everywhere. But in reality, such software usually fails, and many are abandoned halfway. Excellent programmers know when and how to let go. When deadlines approach, manpower is insufficient, and requirements are unclear, they decisively determine which features should be postponed and which should be prioritized for release.

7. Having an entrepreneurial spirit

2344157ikkbkbvyrr6gxbk

Many programmers like to think of themselves as employees, viewing themselves as employees and working with an employee mentality. Excellent programmers regard themselves as owners of the enterprise; they know the interests of the company are closely related to their own. Moreover, excellent programmers imagine that if they were to start a business, what knowledge they would need and what skills they lack. Only by putting yourself in the owner's position can you truly understand the skills needed to run an enterprise.

Source: http://www.vaikan.com/traits-of-good-programmer/