David Veksler曾发表过一篇博文《Some lesser-known truths about programming》,列出了一些鲜为人知的编程事实,这些事实是什么呢?酷壳个人网站楼主陈皓对此文进行了翻译,全文如下:
我的程序员经历让我明白了一些关于软件开发的事情。下面是一些在编程中可能会让人感到诧异的事情:
1. 一个程序员用了大约只用了10%-20%的时间来编码,而且大多数程序员,无论他的水平如何,其平均每天只有10-12行的代码最终会进入最终的软件产品中。这是因为,优秀的程序员会花费90%的时间来思考、调查、研究最佳的设计。而糟糕的程序员则会花费90%的时间来调试代码,并随意地改动代码并尝试让代码工作起来。
“A great lathe operator commands several times the wage of an average lathe operator, but a great writer of software code is worth 10,000 times the price of an average software writer.” –Bill Gates
“一个优秀的车工其工资是一个普通车工的好几倍,但是一个优秀程序员写出来的代码比一个普通程序员要值钱一万倍。——比尔盖茨”
2. 一个好的程序员比一个普通的程序员多十倍的生产率。而一个优秀的程序员的生产率则比普通程序员多20-100倍。这并不是夸张(自从上世纪60年代的研究一直表明这是一个事实)。一个糟糕的程序员并不只是没有产出的——他们并不仅是完成不不工作,而且还会制造出大量的让别人头痛并要去解决的麻烦。
3. 优秀的程序员花少量的时间写代码——那些代码都会出现在最终的产品中。那些花大量的时间写代码的程序员其实是很懒惰、很无知,或是很自大的,以至于不能使用已经存在了的解决方案来解决已有的问题。优秀的程序员精通于对通用模式的识别和重用。好的程序员并不害怕持续地重构/重写自己的代码,直到达到最理想的方案。糟糕的程序员的代码基本上都缺少概念一致性,代码冗长,缺少层次和模式,所以,也就很难被重构。所以,重写他们的代码要比重构他们的代码要容易得多。
4. 软件和其它一切事物一样,都遵循着一致性规则。持续得更改只会让软件变成一潭烂泥,其破坏了原始设计的概念一致性。软件产品变成泥沼是不可避免的事情,但是因为程序员不考虑软件概念一致性而导致软件产品更为快速地成为泥沼,这种速度快得可能会在软件产品还没有完成时,软件产品已经变得没有价值。设计概念一致性的失败通常都会导致软件项目的失败(而第二大导致软件项目失败的原因则是发布的软件并不是用户想要的)。软件变成烂泥的速度正在呈指数级下降,太多的项目在被完结前都面临着激增的时间和成本。
5. 一个 2004 研究报告 指出,大多数的软件项目 (51%) 都会在关键环节出问题。而15%的项目则是完全失败,当然,这比1994年有了很大的进步,当时完全失败的项目是31%。
6. 虽然,几乎所有的软件产品都有些开发团队,但其并不是民主的。通常,只有一个人负责设计,而剩下的人去实现细节。
7. 编程是一个辛苦的工作。其实是一个剧烈的脑力劳动。好的程序员24×7地在思考他们的工作,他们一般都在洗澡和梦中编写软件中最重要的代码。因为最重要的工作只能在键盘之外完成,软件项目不可能因为加班或是加人来加快进度。
原文链接:http://dotmac.rationalmind.net/2010/08/some-lesser-known-truths-about-programming/
译文链接:http://coolshell.cn/articles/2909.html#more-2909
分享到:
相关推荐
《C++高级编程(第2版)》还会披露一些鲜为人知的特性,使用这些特性可以让编程更简单;还讲解了可重用的编码模式,模式是区分编程新手和专业程序员的标志。编程书籍往往重点描述语言的语法,而不是语言在真实世界中的...
这些秘密揭示了技术发展的艰辛历程和一些著名公司的起源。让我们深入探讨一下这些IT市场的不为人知的事实。 首先,Windows操作系统,我们每天都在使用的图形用户界面,最初被称为"Interface Manager"。这个名称反映...
高中历史热门阅读人类历史上鲜为人知的60件奇特事实素材
Objective-C在2009年之前鲜为人知,使用者也相对较少。然而,随着苹果公司的iPhone和iPad产品的巨大成功,Objective-C开始受到广泛的关注,并逐渐成为iOS应用开发的标准语言。2011年和2012年的Tiobe编程语言年度总结...
然而,关于Borand的传奇故事,往往被那些广为人知的成就所掩盖,导致他的许多鲜为人知的贡献和经历少有人提及。本文将深入探讨Borand的生平,以及他在技术界的不凡历程。 一、早期生涯与编程语言创新 Borand的编程...
高中历史之历史百科人类历史上鲜为人知的60件奇特事实素材
以下是一些具体的应用示例: 1. **条件格式化**:这是一个非常强大的功能,允许根据数据的特定条件来改变单元格的显示样式。例如,在工资表中,可以通过设置条件格式,使工资总额大于等于2000元的单元格显示为红色...
然而,在选购和使用万用表时,仍然存在一些误区。首先,很多用户过分重视功能的多样性而忽视了附件的匹配。万用表的丰富功能往往需要相应的附件来实现,例如电流钳和测温仪探头等。如果缺乏这些附件,即使万用表功能...
在日常工作中,我们经常需要快速访问一些特定的文档。通过在“工具”菜单中选择“自定义”,可以自定义菜单栏,添加常用的文档快捷方式,使工作更为便捷。此外,利用“超链接”命令,可以将常用文档的超链接拖至新...
这些故事不仅涵盖了API的使用技巧,还包括系统设计原则、兼容性问题以及一些鲜为人知的陷阱和最佳实践。 首先,书中详细介绍了Windows API,这是开发Windows应用程序的基础。从简单的窗口创建、消息处理到复杂的...
### Windows XP 鲜为人知的70招:系统优化技巧 #### 一、系统启动项管理 在 Windows XP 中,可以通过多种方式来管理和优化系统的启动项,从而提高系统的启动速度和性能。例如,可以使用“运行”命令窗口输入 `...
以下是一些值得学习和掌握的Excel技巧。 首先,创建分类下拉列表填充项是提高数据一致性的重要方法。在Sheet2中,你可以先建立一个企业名称数据库,将不同类别的企业名称分别输入到不同的列中,如“工业企业”、...
### AI一些不鲜为人知的小技巧 在Adobe Illustrator(简称AI)这款强大的矢量图形设计软件中,掌握一些鲜为人知的小技巧对于提高工作效率、优化设计流程至关重要。下面,我们将详细解析这些技巧及其应用场景。 ###...
作者从C++基础知识讲起,始终着眼于C++语言的编程实践,提供了大量实践示例和解决方案,包括如何更好地实现重用、如何有效地测试和调试等C++专业人员常用的一些技术与方法,还提供了一些鲜为人知的、能大大简化工作...
Windows XP鲜为人知的73招Windows XP鲜为人知的73招Windows XP鲜为人知的73招Windows XP鲜为人知的73招Windows XP鲜为人知的73招Windows XP鲜为人知的73招Windows XP鲜为人知的73招
作者从C++基础知识讲起,始终着眼于C++语言的编程实践,提供了大量实践示例和解决方案,包括如何更好地实现重用、如何有效地测试和调试等C++专业人员常用的一些技术与方法,还提供了一些鲜为人知的、能大大简化工作...
这些鲜为人知的C++符号,可直接在代码中使用,但实践中不推荐这么做,可作为茶余饭后的乐趣了解C++的另一面。 虽然它们鲜为人知,但却不是GNU g++独有的,而是C++标准定义的,找一本C++标准书或pdf文档看看,就...
本文将探讨C语言位运算中的一些鲜为人知的方面,旨在加深开发者对位运算更深层次的理解。 首先,位运算主要包括五种操作:位逻辑与(&)、位逻辑或(|)、位逻辑异或(^)、位逻辑反(~)、左移()和右移(>>)。这些操作可以...