What is the difference between a great programmer and a great programmer?

What is the difference between a great programmer and a great programmer? This question comes from Quora. This article summarizes two popular responses. 
Russel Simmons (Former CTO & Co-founder of Yelp) 2.5k likes My answer to this question is not universal, but I do notice some remarkable qualities in some great programmers.  



  • Able to strike a balance between perfectionism and pragmatism - great programmers are able to make both skilled, fast but ill-formed solutions and simple, elegant, and robust solutions to problems, and they can choose wisely solution to the given problem. Some lesser programmers seem to lack the ultimate pursuit of the necessary details. Others are stuck in perfectionist mode.
  • Willingness to debug and bugfix - mediocre programmers are often disgusted and terrified of debugging, even in their own code. Great programmers dive in and dig deep with Churchill tenacity. If the bug turns out to be outside of their own code, they probably won't be happy about it either, but they will definitely find it.
  • Benign skepticism - A good programmer will call it quits after coming up with a solution that seems to work. But a great programmer doesn't trust their own code until they've done extensive testing. This is also common in data analysis and system administration. The average programmer might see a seemingly innocuous inconsistency without caring. If a great programmer sees the same thing, he suspects it might be the trigger for a bigger problem, and digs into it. Great programmers always tend to do more.


Davin Lafon , 1.4 k likes 1. Good programmers write code they have to write, and great programmers write code they don't need to write. 2. In terms of lines of code, being a great programmer doesn't mean how fast they can write a codebase, but how quickly they can shrink their code without sacrificing functionality and performance. 3. If you start arguing with them about "what's the best programming language", will they smile or look bored and change the subject? Or do they start chattering to you? If it's the last one, then he's not a great engineer. 4. It has nothing to do with code or language. It also has nothing to do with "obsessed", "knack", "talent" or any other pretend term. Quite simply - do they understand software engineering beyond the level of code? Do they understand software engineering at the architectural level? Or are they capable of foresight? Can they transition smoothly between mathematical abstraction of the problem and software engineering? Can they work with shareholders and understand their needs for the system? Or do they develop the system they want to write and then think that's the system you really should want? Someone can be a great hacker or programmer, but that doesn't mean he is a great software engineer. I'm not saying this for value - a great programmer is a great programmer...but you can't ask a genius welder to design a bridge after all. 5. Can they "find a bug" when everyone else in the house is obsessed with a solution or something new, and more importantly, can they explain this important bug to the people in the house in a way they can understand . 6. Can you listen? If you can't, you're not a great software engineer.  











Reprinted from: http://www.iteye.com/news/30258

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=327033995&siteId=291194637