Differences in knowledge reserves
Ordinary code farmers mainly master the basic knowledge of computers, learn programming languages and like to show their skills very much. Excellent programmers have a solid computer foundation. Understanding the advantages and disadvantages of programming languages rarely stays on the surface. Proud of writing high-quality software that users are satisfied with, the most important thing is to understand the advantages and disadvantages of individual development and team development, as well as document specifications.
Differences in work attitudes
Ordinary code farmers only pay attention to the realization of functions, not to the progress and quality of understanding. A good software engineer should know the balance between schedule, quality (function) and cost. The purpose of understanding these norms is to improve efficiency and focus on innovation. Generally speaking, testing is more difficult than code, so we often test our partners' white boxes.
Differences in learning ability
Many code farmers think that other people's programs are poor, don't like to read other people's codes, and think that they are very capable. When they really do things, they know nothing. An excellent programmer can learn from others, learn from others' advantages, correct his own shortcomings, and know not only business but also programming languages. This is the real software engineer.