为什么程序员的工作效率跟他们的工资不成比例(转)

英文原文:Why programmers are not paid in proportion to their productivity

  最有效率的程序员会比一般的程序员的编程效率高上几个数量级。但在任何公司里,他们的工资水平却只会出现很小的浮动差距。甚至在整个行业内,这种差距也不是很大。如果一个程序员的效率能达到其他人的10倍,为什么他不能得到10倍高的报酬呢?

  Joel Spolsky在最近的他的一个演讲里就这个问题给出了一系列的答案。首先,程序员的工作效率在整个行业内千差万别,但在一个公司里却不会有太大的差距。如果一个人比他的同事的效率高10倍,那他基本上会离开,要么去找更有天赋的人一起工作,要么去创业开公司。第二,极高的工作效率并没有被察觉。这篇文章我们主要讨论这第二种情况。

  一个人的工作效率比同伴高10倍怎么可能不被察觉呢?在某些行业里,这种差别是显而易见的。一个销售人员的效率是他的同伴的10倍,这很容易看出来,而且他也能得到相应的报酬。销售成绩容易测量,就比如有些销售人员销售额会是其他人的数十倍。一个泥瓦匠的工作效率是其同伴的10倍,这也很容易看出,但这种事情不会发生:最好的泥瓦匠也不可能比一个一般的泥瓦匠快10倍。软件的产出不可能像销售或砌砖那样容易的测量。最好的程序员并不是能写10倍多的代码,他们也不是能多干10倍多小时的工作。

  程序员在避免写代码时才体现出最高的效率。他们能认识到人们要求他们解决的问题并不需要解决,他们能知道客户并不清楚自己想要的东西是什么。他们知道什么地方可以重复利用或可修改来解决问题。他们会欺骗客户。但是,当他们做到了最高的效率时,没有人会说“哇塞!这比用那笨办法做会省事100倍。你应该涨工资。”顶多人们会说“这个主意不错!”然后继续干活。你需要很长的时间才能发现有些人经常性的显现出省时省力的睿智。或者反过来说,你需要很长的时间才能认识到有些人虽然经常加班加点的编程却没有什么产出。

  对超级程序员形象的一种具有浪漫主义色彩的描绘是:他开启Emacs编辑器,敲起代码来就像打机枪,把一个软件从无到有开发成没有任何缺陷的最终产品。而一个更精确的描绘是:他静静的望着太空几分钟,然后说“咦,这好像以前在什么地方见过呀。”

时间: 2024-08-04 14:24:41

为什么程序员的工作效率跟他们的工资不成比例(转)的相关文章

22条日常技巧助程序员提高工作效率、节约时间

我一直在测试和调整各种生产效率的技术,在过去的五年中,阅读了大量的书籍(其中大多数是重复的) ,这里是我的一些结论: 这不是一个关于时间的问题,而是关于精力. 为了"有效率",我们试图在一个工作日内塞进尽可能多的小时,但最终一切都更多地取决于你的注意力,积极性和良好状态(这些都是直接与精力等级联系在一起)而不是工作时间 . 我最近在葡萄柚的一个内部演示上提及了我提高效率的想法,结果性的演示是在Slideshare上的:producitivity porn. 其中一些关键结论: 决定什么

程序员提高工作效率、节约时间的22条日常技巧

我一直在测试和调整各种生产效率的技术,在过去的五年中,阅读了大量的书籍(其中大多数是重复的) ,这里是我的一些结论: 这不是一个关于时间的问题,而是关于精力. 为了"有效率",我们试图在一个工作日内塞进尽可能多的小时,但最终一切都更多地取决于你的注意力,积极性和良好状态(这些都是直接与精力等级联系在一起)而不是工作时间 . 我最近在葡萄柚的一个内部演示上提及了我提高效率的想法,结果性的演示是在Slideshare上的:producitivity porn. 其中一些关键结论: 1. 决

程序员的工作效率:Emacs vs IntelliJ IDEA

我用 Emacs 写了 7 年的 C++ 代码. 4 年前,当我换了工作,开始使用 IntelliJ IDEA 转向 Java 开发.毫无疑问,比起 Emacs,我在 IntelliJ IDEA 上写代码更有效率. 导航 代码好像真的是80%由导航生成,只有20%是实际写作的结果,IntelliJ IDEA的真正亮点所在是导航到代码库.例如,假设你要添加功能到现有的类,即使你对那个类很熟悉,你还是需要检查新代码该放在哪里比较合适,需要添加一 个新的声明吗?还有什么其他的类在使用你现在修改的方法?

程序员:选择效率,还是选择质量?

程序员:选择效率,还是选择质量? 时间:2014-11-07 02:28 来源:36kr 作者:36kr 本文作者系程序猿Daniel F Pupius,这是一篇他发表在Medium上的博文,讲述自己怎么在实际写代码的过程中,发现在效率和质量间做出抉择 其实是个伪命题. 程序开发项目进行过程中,通常会冒出这样的困惑:应该选择效率,还是选择质量?很多程序猿都会有偷懒的思维, 觉得把一些摸不清头绪.不知道怎么写的代码片段去掉,可以节省很 多时间,更早完成项目计划. 其实过去几年中,我也是这么想的,但

程序员的工作、学习与绩效

工作中,碰到一些这样的例子,总有人提出疑问,为什么一个同事工作勤勉,完成了很多事情,季度绩效评定很高,但晋升却碰壁了.之前已经写过一篇<技术晋升的评定与博弈>,基本就能解答这个问题.但隐藏在背后的更深层次的本质却是:工作.学习与绩效的关系. 工作 程序员的主要工作是:编程,产出代码,完成需求,交付软件系统. 程序员按其工作技能和经验,大体又分为三个阶段:初.中.高级.三个级别的程序员的主要工作都是编程与产出代码,产出代码的数量也许相差不大,但产出代码的属性可能有明显差别. 在曾经的文章中提出过

《告别失控:软件开发团队管理必读》一一2.4 程序员的工作要求与能力

2.4 程序员的工作要求与能力 要想成功地招聘和管理程序员,首先要认识到每个程序员都有其独特的能力.就像雪花一样,任何两个程序员都不会是完全一样的.我们常常会说,程序员之间写代码的能力可能相差一个数量级.这种差异是怎么出现的呢?教育.经验.天赋以及直觉,还有其他无形的因素,都有可能导致这样的差异. 多数程序员不需要借助显式的排名或者头衔,从直觉上就能理解同行之间的差异.但是如果能把程序员的类型与等级正式记录下来,并简要描述每种类型与等级的职位要求与能力(见表2-1),那么管理工作将会轻松很多,项

程序员的工作环境和他们的工作效率

1.足够大的桌面空间 我认为程序员的办公桌最好能够并排坐下2个人,用来结对编程或者code review.而在不离开座位的情况下,还要有足够的空间用白板或者纸面展开讨论问题.而协作的同事就不必站在身后费力的越过肩膀去看屏幕上的内容.而桌面上可以放下2个显示器并可以还要可以随手拿到常用的参考资料及书籍,同时要有合适的文件柜或壁柜存放归档的资料,以此避免桌面上堆满了各种打印的资料. 2.电脑环境 我想工作的机器应该要有足够的内存,比如8G,这样并行打开复杂的workspace时候就不需要关闭邮件或者

程序员编程工作应该避免的一些坏习惯

良好的编程习惯是每个程序员都应该具备的工作素质,在我的软件生涯中屡屡发现一些程序员的身上总有这样或者那样的坏毛病这些毛病在一些从业时间不是很长的程序员的身上表现的特别突出.1. 搭棚子   搭棚子顾名思义就是拿到一个任务的时候,既不做更详细的需求分析,也不作详细设计,一开始就打开编程工具,噼里啪啦的定义了一堆的模块,我不说是定义类,是因为这样代码里根本就找不到对象,然后就在这些模块的基础上进行工作,结果整个程序看起来就象胡乱搭起来的棚子,虽然有个程序的样子,而且似乎也实现了所要的功能,但是这样的

java程序员找工作 简历应该如何写?

问题描述 准备出去找工作了..但是简历还有一点没有搞点.请大家帮帮忙~就是在项目的那一块...需要用技术描述项目但是不清楚应该怎么说..比如说项目技术采用了ssh2+dwr那如何说明为什么要使用ssh2+dwr呢? 解决方案 解决方案二:你可以从项目规模(比如项目的大小或运用.后期维护等等)和运用ssh2+dwr的好处来写啊解决方案三:路过~~~~~~~~~~~解决方案四:同一楼解决方案五:实话实说,可以精通,熟悉几门东西,但不要过多,可以对其他很多技术说是了解过.解决方案六:姓名:XXX电话: