[译]优秀与伟大程序员的区别

在程序员的职业生涯中,总有一些理念让你眼前一亮,犹如夜空中一颗颗明亮的星,指引你不断前行。Quora上Russel Simmons的这个答案就是曾让我深受触动的三个理念,翻译出来给E文一般的童鞋。E文好的童鞋请移步,原著更加准确生动些。

原文链接:Software Engineering: What distinguishes a good software engineer from a great one?

我并不打算给出一个全面的答案,不过我已注意到几个伟大程序员具备却不常被提及的特质:

  • 能够平衡实效与完美。伟大工程师具备进行娴熟、快速而粗略的hack,和设计优雅、精炼、健壮的解决方案的两种能力,以及,根据给定问题选择恰当方式的智慧。一些稍普通的程序员们看起来缺乏对问题关键细节的极致关注,另一些人则太过坚持完美主义。
  • 不排斥调试代码和修复bug。平庸的程序员害怕、厌恶调试,甚至对自己的代码也是如此。伟大程序员会以丘吉尔般顽强的精神潜心钻研。如果问题被证明不在他们的代码中,伟大程序员会有些不愉快,他们会最终找出问题所在。
  • 合理质疑。优秀程序员会找到看似可行的解决办法并一直沿用。伟大程序员则倾向于质疑自己的代码,直到测试完备。而这一过程往往需要大量的数据分析和系统管理。一般程序员可能看到一个似乎没什么危害的细微异常,然后忽略掉了它。如果换作伟大程序员,他们会怀疑这可能是一个更大问题的线索,并投入精力研究透彻。伟大程序员乐于做更多的交叉校验和完备性检查,通过这种方式发现隐含的问题。
Proudly powered by Express. Designed by Spring.