`

一些鲜为人知的编程事实

阅读更多

from: http://sd.csdn.net/a/20100903/279029.html

 

 

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

分享到:
评论

相关推荐

    传送带中大块煤识别检测数据集,使用yolov5pytorch格式对792张图片标注

    传送带中大块煤识别检测数据集,使用yolov5pytorch格式对792张图片标注,标注图片和标注信息可参考博文:https://backend.blog.csdn.net/article/details/144513245

    整体风格与设计理念 整体设计风格简约而不失优雅,采用了简洁的线条元素作为主要装饰,营造出一种现代、专业的视觉感受 配色上以柔和的色调为主,搭配少量鲜明的强调色,既保证了视觉上的舒适感,又能突出重点内容

    整体风格与设计理念 整体设计风格简约而不失优雅,采用了简洁的线条元素作为主要装饰,营造出一种现代、专业的视觉感受。配色上以柔和的色调为主,搭配少量鲜明的强调色,既保证了视觉上的舒适感,又能突出重点内容,使整个演示文稿在视觉上具有较强的吸引力和辨识度。 页面布局与内容结构 封面:封面设计简洁大方,“MORIMOTO” 和 “SENYAN” 字样增添了独特的标识性,可根据实际需求替换为汇报人姓名或公司名称等信息,让演示文稿从一开始就展现出专业与个性。 目录页:清晰列出 “工作内容回顾”“工作难点分析”“市场状况概述”“工作目标计划” 四个主要板块,方便观众快速了解演示文稿的整体架构和主要内容,为后续的详细展示做好铺垫。 工作内容回顾页(PART.01):提供了充足的空间用于详细阐述工作内容,可通过复制粘贴文本并选择只保留文字的方式,方便快捷地填充内容,建议使用微软雅黑字体以保证整体风格的一致性。无论是列举日常工作任务、项目执行细节还是工作成果总结,都能清晰呈现,让观众对工作内容有全面而深入的了解。 工作难点分析页(PART.02):这部分页面设计注重实用性,文本框可自由拉伸,方便根据工作难

    Python3数据分析与挖掘建模实战 学习代码开发

    python 【项目资源】:包含前端、后端、移动开发、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源,毕业设计等各种技术项目的源码。包括C++、Java、python、web、C#、EDA等项目的源码。 【适用人群】:适用于希望学习不同技术领域的初学者或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。

    【独家首发】基于matlab引力搜索算法GSA优化Transformer-BiLSTM负荷数据回归预测【Matlab仿真 6585期】.zip

    CSDN Matlab研究室上传的资料均有对应的仿真结果图,仿真结果图均是完整代码运行得出,完整代码亲测可用,适合小白; 1、完整的代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    【BP回归预测】基于matlab凌日算法优化BP神经网络TSOA-BP光伏数据预测(多输入单输出)【Matlab仿真 5170期】.zip

    CSDN Matlab研究室上传的资料均有对应的仿真结果图,仿真结果图均是完整代码运行得出,完整代码亲测可用,适合小白; 1、完整的代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    基于java的门禁管理系统源代码(完整前后端+mysql+说明文档+LW).zip

    本系统主要包括两个角色:管理员、员工。 1.进出通道的权限:对每个通道设置哪些人可以进出,哪些人不能进出 2.门禁系统:进出方式:输入密码 3.进出通道的时段:就是设置可以该通道的人在什么时间范围内可以进出 4.出入记录查询功能:系统可储存所有的进出记录、状态记录,可按不同的查询条件查询 环境说明: 开发语言:Java,jsp JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea 部署容器:tomcat

    【ESN回归预测】基于matlab粒子群算法优化回声状态网络PSO-ESN数据回归预测【Matlab仿真 4383期】.zip

    【ESN回归预测】基于matlab粒子群算法优化回声状态网络PSO-ESN数据回归预测【Matlab仿真 4383期】

    玻璃盖板全球市场研究报告:2023年年复合增长率高达12.67%

    玻璃盖板全球市场研究报告:2023年年复合增长率高达12.67% 在科技日新月异的今天,玻璃盖板作为触控显示屏的重要部件,不仅承载着保护屏幕的重任,更以其卓越的性能和多样化的应用,成为连接科技与生活的桥梁。从智能手机到汽车电子,从工业控制到医疗器械,玻璃盖板无处不在,市场需求持续增长。然而,面对激烈的市场竞争和不断变化的用户需求,企业如何把握市场脉搏,实现创新发展? 市场概况 近年来,全球玻璃盖板市场呈现出蓬勃发展的态势。据QYR最新调研,2016年至2023年,全球玻璃盖板市场规模由116.2亿美元增长至267.6亿美元,年复合增长率高达12.67%。在国内市场,随着国产品牌智能手机出货量的稳步上升,以及应用领域的不断扩大,国产盖板玻璃取得了较大市场份额。我国玻璃盖板整体市场规模也由2016年的397.1亿元增长至2023年的788.6亿元,展现出强劲的增长势头。 技术创新与趋势 技术创新是推动玻璃盖板行业发展的核心动力。在加工领域,厂商不断引入新材料,改进生产工艺,持续提升玻璃盖板的性能。如耐磨性、耐高温性、防眩光性、防反射性、抗菌性等特性的提升,使得玻璃盖板更加适应市场需求。同时

    【故障诊断】基于matlab黑猩猩算法优化双向时间卷积神经网络ChOA-V2-BiTCN轴承数据故障诊断【Matlab仿真 5080期】.zip

    CSDN Matlab研究室上传的资料均有对应的仿真结果图,仿真结果图均是完整代码运行得出,完整代码亲测可用,适合小白; 1、完整的代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    深圳混泥土搅拌站环境安全管理制度.docx

    深圳混泥土搅拌站环境安全管理制度

    人脸疲劳图像目标检测数据【已标注,约10,000张数据,YOLO 标注格式】

    人脸疲劳图像目标检测数据【已标注,约10,000张数据,YOLO 标注格式】 类别个数【2】:drowsy、undrowsy【具体参考classes文件】 数据集做了训练集、验证集划分,如果想要可视化数据,运行show脚本即可。 yolov5的改进实战:https://blog.csdn.net/qq_44886601/category_12605353.html 【更多图像分类、图像分割(医学)、目标检测(yolo)的项目以及相应网络的改进,可以参考本人主页:https://blog.csdn.net/qq_44886601/category_12803200.html】

    【故障诊断】基于matlab鹈鹕算法优化双向时间卷积神经网络POA-BiTCN轴承数据故障诊断【Matlab仿真 5106期】.zip

    CSDN Matlab研究室上传的资料均有对应的仿真结果图,仿真结果图均是完整代码运行得出,完整代码亲测可用,适合小白; 1、完整的代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    第七章:循环控制语句 包含循环写星星 循环写乘法表 循环累加计算

    所有例程代码以及练习代码

    【温度预测】基于matlab灰狼算法优化BP神经网络GWO-BP温度预测【Matlab仿真 3422期】.zip

    CSDN Matlab研究室上传的资料均有对应的仿真结果图,仿真结果图均是完整代码运行得出,完整代码亲测可用,适合小白; 1、完整的代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    Qt C++皮肤生成器 20套肤 26套精美界面 各种界面 一键肤 1. 自带17套精美皮肤样式,其中包括黑色、灰色、扁平等 2. 皮肤生成器只需要简单几步就可以生成一套自定义的皮肤 3. 自带了

    Qt C++皮肤生成器 20套肤 26套精美界面 各种界面 一键肤 1. 自带17套精美皮肤样式,其中包括黑色、灰色、扁平等。 2. 皮肤生成器只需要简单几步就可以生成一套自定义的皮肤。 3. 自带了26种uidemo,非常漂亮美观,涵盖了主界面布局、菜单切等各种效果,总有一款适合你。 4. 所有代码和demo注释都非常详细整齐整洁,非常适合初学者学习。 5. uidemo由简入难,可以一步步学习下去,从入门到熟悉。 6. uidemo从常规的客户端到app端到触摸端等都有,既有鼠标操作的也有触摸操作的。 7. 皮肤中的qss样式表内容,覆盖了几乎所有的控件,非常适合学习每个控件的qss样式如何设置,而且分门别类非常清晰。 8. 自带的quiwidget类,集大成之所长,超级牛逼,内置了无边框的消息框、错误框、询问框、右下角信息框、输入框、日期范围选择框等,支持倒计时关闭,集成图形字体设置方法及根据指定文字获取图片,集成CRC校验、获取应用程序文件名、文件路径、设置窗体居中显示、设置翻译文件、设置编码、设置延时、设置系统时间等各种静态方法,保你满意。 9. 支持任意Qt版本+任意编译器

    vscode的概要介绍与分析

    ### Visual Studio Code (VSCode) 资源描述 Visual Studio Code(简称 VSCode)是由微软开发的一款免费、开源的代码编辑器,支持多种编程语言,并拥有丰富的插件生态系统。它提供了智能感知、调试工具、Git 集成等功能,极大地提高了开发者的工作效率。 - **官方文档**:[VSCode 官方网站](https://code.visualstudio.com/) 提供了详尽的文档和技术支持,包括安装指南、用户手册、视频教程等。这是学习 VSCode 的最佳起点。 - **在线课程**:Coursera、Udemy 和 edX 等平台上提供了许多关于 VSCode 的课程,如《The Complete Visual Studio Code Course for Beginners》或《Full Stack Web Development with React & NodeJS》,可以帮助你从基础到高级逐步提升技能。 - **书籍**:虽然没有专门针对 VSCode 的书籍,但像《Pro Git》(作者: Scott Chacon 和 Be

    测试logicflow组件验证

    测试logicflow组件验证

    matlab仿真程序,二阶MASs,事件触发机制 这段代码是一个带有领导者的二阶多智能体的领导跟随一致性仿真 以下是对代码的分析: 1. 代码初始化了系统参数,包括邻接矩阵A、拉普拉斯矩阵L、系

    matlab仿真程序,二阶MASs,事件触发机制 这段代码是一个带有领导者的二阶多智能体的领导跟随一致性仿真。以下是对代码的分析: 1. 代码初始化了系统参数,包括邻接矩阵A、拉普拉斯矩阵L、系统的领导跟随矩阵H等。 2. 代码定义了一个二阶系统的微分方程模型,并使用RK4方法解方程。 3. 代码使用事件触发机制来控制智能体之间的通信和更新。每个智能体根据自身的位置和速度误差以及邻居智能体的误差信息来决定是否触发通信。 4. 代码通过绘制图像展示了系统的位置和速度状态、智能体在二维空间中的位置分布、控制输入和误差变化趋势等。 这段代码应用在多智能体系统的领导跟随问题中,通过控制输入和事件触发机制,实现了智能体之间的协同运动和领导者的跟随。算法的优势在于通过事件触发机制减少了通信开销,提高了系统的效率和鲁棒性。 需要注意的是,代码中的参数需要根据具体问题进行调整,包括邻接矩阵A、系统的领导跟随矩阵H、控制参数alpha、beta、lambda等。此外,代码中的事件触发条件也可以根据具体需求进行修改。 对于新手来说,从这段代码中可以学到以下几点: 1. 了解多智能体系统的领导跟

    【故障诊断】基于matlab黏菌算法优化双向时间卷积神经网络SMA-BiTCN轴承数据故障诊断【Matlab仿真 5097期】.zip

    CSDN Matlab研究室上传的资料均有对应的仿真结果图,仿真结果图均是完整代码运行得出,完整代码亲测可用,适合小白; 1、完整的代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    322222222111111111

    322222222111111111

Global site tag (gtag.js) - Google Analytics