Add by Zhj: There are two very useful, first: can find a balance between perfectionism and pragmatism. Article two: Do they understand software engineering beyond the level of code? Do they have an architectural level of understanding of software engineering? Or are they capable of foresight?
For the first, it is very touching, because I have been in the pursuit of perfection, the efficiency of doing things very low, a good degree must be able to find a balance between perfectionism and pragmatism programmer. Second, very good, he told us do not want to be a general soldier is not a good soldier, if a lifetime of programmers, that life can only be at the bottom of the work, only the high ability to see the distance, you have to jump out of the programmer that acres three points, from a higher perspective, such as the architect's perspective, to study the problem, So that you can make a breakthrough, your salary and ability to have a greater increase.
This article by Bole Online-alexxxx translation, Justin Wu School Draft. without permission, no reprint!
English Source: Quora. Welcome to join the translation team.
Bole Online Guide: "What are the differences between excellent programmers and good programmers?" "The problem comes from Quora. This article excerpts from two popular replies.
Russel Simmons (Yelp's former CTO & co-initiator) 2.5 K-Likes
My answer to this question is not universal, but I do notice that there are some extraordinary qualities in some excellent handlers.
- The ability to strike a balance between perfectionism and pragmatism--excellent programmers are able to make skilled, fast but notorious solutions and solve problems in a concise, elegant and robust way, and they can intelligently choose the solution that is right for the problem. Some slightly less-than-perfect programmers seem to lack the ultimate quest for the necessary details. Others are trapped in the perfectionist model.
Willing to debug and bug fix-mediocre programmers often hate and fear debugging, even their own code. Excellent programmers dive in and dig deep with Churchill-like tenacity. They may not be happy with it if they finally prove that the bug is outside their own code, but they will find it.
- Benign skepticism-a good programmer will come up with a seemingly workable solution and call it a day. But a great programmer doesn't trust their own code until a lot of testing is done. This is also common in data analysis and system management. Ordinary programmers may not care when they see a seemingly harmless non-conformance. If a great programmer sees the same thing, he suspects that it may be the trigger for a bigger problem and delve into it. Excellent programmers always tend to do more things.
Davin Lafon, 1.4 K likes
1. Good programmers write code that they have to write, and excellent programmers write code that they don't need to write.
2. In terms of the number of lines of code, being a great programmer does not mean that they can write a code base much faster, but how quickly they can reduce their code without dropping functionality and performance.
3. If you start arguing with them about the "What's the best programming language" question, will they smile or look bored to change the subject? Or are they starting to talk to you? If it is the last one, then he is not an excellent engineer.
4. Regardless of code or language. It has nothing to do with "obsession", "know-how", "talent" or any other term. Very simply--do they understand software engineering beyond the level of code? Do they have an architectural level of understanding of software engineering? Or are they capable of foresight? Can they translate smoothly between the mathematical abstraction of the problem and the software engineering? Can they work with shareholders and understand their needs for the system? Or do they send out the system they want to write and think that's the system you really want? Someone can be a great hacker or programmer, but that doesn't mean he is an excellent software engineer. What I say is not used to measure value-a great programmer is really a great programmer ... But you can't get a genius welder to design a bridge after all.
5. Whether they can "discover flaws" when others are infatuated with a solution or something new in the house, and more importantly, if they are able to explain this important flaw to the people in the room in a way that they can understand.
6. Can you listen? If not, it's not an excellent software engineer.
About ALEXXXX
What's the difference between excellent programmers and good programmers (go)