阅读更多

2顶
2踩

编程语言

原创新闻 经验丰富的程序员和代码行数

2011-03-22 09:28 by 见习编辑 jobbole 评论(1) 有7352人浏览

  编者按:原文作者John D. Cook是一位数学教授、程序员、顾问、经理人和统计学家,善于并享受结合运用这些技能来解决问题。

  最近,我听说了一个关于缺乏经验的程序员和经验丰富的程序员每天写相同行数的代码的研究结果。其不同之处在于,经验丰富的编程人员让这些代码更高效, 向着目标稳步前进;缺乏经验的程序员单纯地将大段的代码分隔开,并且多次复写相同的代码块直到它们看起来能够运行。或者不拆分代码,他们连续调试好多天, 几乎是随机的改变一两行代码,直到这些代码看起来能够运行。

  正如格雷.威尔森在他的采访中所指出的,将注意力放在软件开发的质量上,往往也会提高生产力。更多的努力,会带来进步;反之,将会导致“回锅肉”(返工)。

  经验丰富的程序员不仅能每天编写更多行值得借鉴的代码,而且他们的每行代码都能实现更多的功能,有时候多的不可思议。但是这并没有什么新奇的。众所周 知,最优秀的程序员不是一般的高产,他们的产量一般是普通程序的一倍或两倍。(例如Joel Spolsky的书《聪明的完成工作》Smart and Gets Things Done)。更有意思的是,在编写和理解代码方面,最优秀的程序员看起来并没有什么更高超的能力。

  并且,也有研究显示,程序员每天编写相同行数的代码与他们使用的语言无关。你可能认为使用汇编语言的程序员每天能比使用像VB或Java之类的高级语 言的程序员编写更多的代码,但是事实并非如此。虽然通过数代码的行数来衡量程序员的产量是一种很烂的方法,但它却是判断一个人大脑能装多少东西的好方法。

  (编注:在原文评论中,Fred Mitchell 的评论非常精彩,编译如下。)

  我编写代码的时间已有30年,我可以非常肯定地说,和那些仅有过两三年代码经验朋友的代码来比,根本没有可比性。
  
  为了更好地反应手中问题,我在代码中力争清晰性和简洁性,也注重“清洁”的架构和对象模型。我所编写的东西有,操作系统、驱动、应用程序、中间件和Web应用。

  不仅是代码,还有算法、模式和数据结构。一个经验不多的程序员或许并不喜欢某些算法,从而选择一个“蛮力”方法,而不是选择更有效并省时的方法。

  但是通过代码行数来判断工作的方法,并不能反映出所有这些。这种方法完全是一个愚蠢之极的想法。注释算不算进代码行数呢?有时候,我写的注释,比代码还要多,因为我想尽可能详细一些,我不想6个月之后再来看这些代码的时候,我是一头雾水。(编注:在伯乐在线编译的《风雨20年:我所积累的20条编程经验》这篇文章中,就重点提到添加注释,千万别担心过多注释,不仅对你以后查阅代码时有帮助,后来接手的同行或技术支持,都会感激你的。)

  真正的生产力是无法轻易和快速测量出来的。有时候,你必须考虑业务模式。总共节省了多少时间,节省(或创造)了多少钱,代码所涉及的维护或停工时间是多少,客户服务的工作量是多少,等等。所有这些才是影响真正生产力的因素。




  译文出处:伯乐在线 - 职场博客
  译文链接:http://www.jobbole.com/entry.php/569

  原文:John D. Cook   文章推荐:关关  翻译:伯乐在线 敏捷翻译组 - 魏哲


来自: www.jobbole.com
2
2
评论 共 1 条 请登录后发表评论
1 楼 cgd123 2011-03-25 13:42
感觉这篇文章有些水份,读起来不太清楚明了。即没有把要点第一时间讲清楚。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 计算代码行数 程序员专用

    计算代码行数 程序员专用

  • 程序员的代码行数越少越好?

    点击上方“开发者技术前线”,选择“星标”13:21 在看|留言|真爱作者 |Ryland Goldstein出自| CSDN代码行数越少越好?读懂别人的代码很困难?如...

  • 【转】经验丰富的程序员和代码行数

     经验丰富的程序员和代码行数 伯乐在线 - 职场博客     编者按:原文作者John D. Cook是一位数学教授、程序员、顾问、经理人和统计学家,善于并享受结合运用这些技能来解决问题。  最近,我听说了一个关于...

  • 代码行数统计工具linecount3.6.3.zip

    用于程序员统计代码行数的工具,使用方便快捷,很快就能给出统计结果,并且可以设置统计的方法和形式,可用于管理程序员的工作量

  • [转载]经验丰富的程序员和代码行数

     最近,我听说了一个关于缺乏经验的程序员和经验丰富的程序员每天写相同行数的代码的研究结果。其不同之处在于,经验丰富的编程人员让这些代码更高效, 向着目标稳步前进;缺乏经验的程序员单纯地将大段的代码分隔...

  • 奇葩公司规定程序员工资按代码行数算工资,个个提成这么高?

    一位朋友说自己以前在一家公司工作,这家公司对于程序员的工资是按照代码行数来算工资的,这的确是很稀奇的一件事情,后来这家公司有位员工就利用了这个规则,最后光是提成就拿到了2.6万,听起来真的很不错。...

  • 程序员的代码行数真的越少越好吗?

    点击上方“Java精选”,选择“设为星标”别问别人为什么,多问自己凭什么!下方留言必回,有问必答!每天08:00更新文章,每天进步一点点...代码行数越少越好?读懂别人的代码很困难?如...

  • 论程序员按代码行数领工资是什么体验?

    在云计算和大数据持续发展的推动下,程序员的开发任务边界在不断得到拓展,程序员需要同时承担更多的开发任务,这就就导致当前很多开发团队更愿意招聘全栈开发人才。不论是从事研发级程序员岗位还是应用级程序员开发...

  • 程序员的成长和代码行数的关系

    在2011年John D. Cook写了一篇博客,其中提到:我的朋友Clift Norris发现了一个基本常数,我称之为Norris常数,一个未经培训的程序员在他或她遇到...

  • 程序员的代码行数是越少越好吗?

    作为开发人员,你会听到许多有关“代码行数”的令人难以置信的疯狂理论——不要相信他们!以代码行数作为决策依据是一件非常荒谬的事情。在极少数情况下,代码行数可能还有那么一丁点意义,在绝大数情况下,代码行数...

  • 20170425 程序员的成长和代码行数的关系

    程序员的成长和代码行数的关系

  • 经验丰富的程序员和其每日代码行数

    他曾撰文说(中文): “最近,我听说了一个关于缺乏经验的程序员和经验丰富的程序员每天写相同行数的代码的研究结果。其不同之处[在于,经验丰富的编程人员让这些代码更高效,向着目标稳步前进;缺乏经验的程序员单纯...

  • 【git】Git 指令统计代码行数

    8、统计所有Java代码总行数提交修改的信息(有明细展示)3、统计每个用户的所有提交代码行数(包括增、删、修改等)9、统计所有其他文件总行数提交修改的信息(有明细展示)6、统计代码提交的人数,也称:统计仓库...

  • 家庭支出与收入数据数据集,根据人口统计和地理指标进行了分类,加拿大为例,适用于数据分析、机器学习

    这个数据集提供了2010年至2021年间加拿大各省的家庭支出与收入数据,这些数据根据人口统计和地理指标进行了分类。每行代表了年份(REF_DATE)、省份(GEO)以及编码后的支出或收入类型的唯一组合(COORDINATE)。以下是该数据集的关键特点及包含的列信息: 关键特点: 支出数据:家庭支出按照收入五分位数和支出类别进行分类。 收入数据:家庭收入值根据家庭类型、较年长成年人的年龄组别和收入水平细分。 地理位置匿名化:为了保护隐私,原始的地理位置标识符被替换为如“Province 1”这样的标签。 时间序列:涵盖了超过十年的财务数据(2010–2021),适合用于纵向经济和社会趋势分析。 包含的列: REF_DATE:记录年份(2010–2021) GEO:省份标签(例如,“Province 1”) Statistic:度量类型(例如,平均家庭支出) Before-tax household income quintile:税前家庭收入水平分组 Household expenditures, summary-level categories:支出类别 UOM:计量单位 COORD

  • 【锂电池剩余寿命预测】GRU门控循环单元锂电池剩余寿命预测(Matlab完整源码和数据)

    1.【锂电池剩余寿命预测】GRU门控循环单元锂电池剩余寿命预测(Matlab完整源码和数据) 2.数据集:NASA数据集,已经处理好,B0005电池训练、测试; 3.环境准备:Matlab2023b,可读性强; 4.模型描述:GRU门控循环单元在各种各样的问题上表现非常出色,现在被广泛使用。 5.领域描述:近年来,随着锂离子电池的能量密度、功率密度逐渐提升,其安全性能与剩余使用寿命预测变得愈发重要。本代码实现了GRU门控循环单元在该领域的应用。 6.作者介绍:机器学习之心,博客专家认证,机器学习领域创作者,2023博客之星TOP50,主做机器学习和深度学习时序、回归、分类、聚类和降维等程序设计和案例分析,文章底部有博主联系方式。从事Matlab、Python算法仿真工作8年,更多仿真源码、数据集定制私信。

  • 【更新至2024年】2000-2024年各省专利侵权案件结案数数据

    2000-2024年各省专利侵权案件结案数数据 1、时间:2000-2024年 2、来源:国家知识产权J 3、指标:专利侵权案件结案数 4、范围:31省 5、用途:可用于衡量知识产权保护水平

  • HMTL+JS+CSS实现贪吃蛇游戏,包含有一般模式,困难模式,还有无敌模式

    - 使用`<div>` 容器组织游戏界面,包含得分显示、游戏画布和操作按钮 - 支持三种游戏模式选择(一般模式、困难模式、无敌模式) - 移动端和桌面端兼容,提供触摸和键盘两种控制方式 2. CSS样式 : - 采用Flex布局实现页面居中显示 - 使用Grid布局实现方向按钮的排列 - 定义了游戏容器的阴影、圆角等视觉效果 - 为按钮添加了hover效果和过渡动画 3. JavaScript逻辑 : - 使用Canvas API实现游戏渲染 - 实现了蛇的移动、食物生成、碰撞检测等核心游戏逻辑 - 支持三种游戏模式,不同模式对应不同的游戏速度和规则 - 使用localStorage保存最高分记录 - 实现随机颜色生成,使游戏更具趣味性 代码整体结构清晰,功能完整,具有良好的可扩展性和可维护性。

  • 附件2-5:台区智能融合终端入网专业检测送检样品主要元器件清单.docx

    台区终端电科院送检文档

Global site tag (gtag.js) - Google Analytics