最有效率的程序员会比一般的程序员的编程效率高上几个数量级。但在任何公司里,他们的工资水平却只会出现很小的浮动差距。甚至在整个行业内,这种差距也不是很大。如果一个程序员的效率能达到其他人的10倍,为什么他不能得到10倍高的报酬呢?
Joel Spolsky在最近的他的一个演讲里就这个问题给出了一系列的答案。首先,程序员的工作效率在整个行业内千差万别,但在一个公司里却不会有太大的差距。如果一个人比他的同事的效率高10倍,那他基本上会离开,要么去找更有天赋的人一起工作,要么去创业开公司。第二,极高的工作效率并没有被察觉。这篇文章我们主要讨论这第二种情况。
一个人的工作效率比同伴高10倍怎么可能不被察觉呢?在某些行业里,这种差别是显而易见的。一个销售人员的效率是他的同伴的10倍,这很容易看出来,而且他也能得到相应的报酬。销售成绩容易测量,就比如有些销售人员销售额会是其他人的数十倍。一个泥瓦匠的工作效率是其同伴的10倍,这也很容易看出,但这种事情不会发生:最好的泥瓦匠也不可能比一个一般的泥瓦匠快10倍。软件的产出不可能像销售或砌砖那样容易的测量。最好的程序员并不是能写10倍多的代码,他们也不是能多干10倍多小时的工作。
程序员在避免写代码时才体现出最高的效率。他们能认识到人们要求他们解决的问题并不需要解决,他们能知道客户并不清楚自己想要的东西是什么。他们知道什么地方可以重复利用或可修改来解决问题。他们会欺骗客户。但是,当他们做到了最高的效率时,没有人会说“哇塞!这比用那笨办法做会省事100倍。你应该涨工资。”顶多人们会说“这个主意不错!”然后继续干活。你需要很长的时间才能发现有些人经常性的显现出省时省力的睿智。或者反过来说,你需要很长的时间才能认识到有些人虽然经常加班加点的编程却没有什么产出。
对超级程序员形象的一种具有浪漫主义色彩的描绘是:他开启Emacs编辑器,敲起代码来就像打机枪,把一个软件从无到有开发成没有任何缺陷的最终产品。而一个更精确的描绘是:他静静的望着太空几分钟,然后说“咦,这好像以前在什么地方见过呀。”
我静静的望着标题几秒钟,然后说“咦,这好像以前在什么地方见过呀。”
哈哈,你说的太对了,这个题目好像以前看到过,不过我仔细想了想,以前也是在这个站点看到的,不过这个题目没有被单独提出来,而是包含在一篇文章中。
以前看有种说法是:高效的程序员为了把程序写的完美,完善,简洁,写各种注释,所以总的工作效率还是不高,但是质量很高。。
高效的程序员不会去写各种注释,代码自注释了。
程序写得完美简介绝对不是效率不高,而是高太多了,因为你在修一堆bug的时候,人家可以很爽的睡大觉或者喝咖啡。
其实有时候在想,这篇文章应该不是在说反话吧?
在《黑客与画家》中有读到过,作者称其为可测量性。
除去各种抱怨,这应该是最合理的解释
程序员就是砌砖的民工,他们的经理是工头,而技术总监是建筑师。一个砌砖头再好的民工一直会是民工,哪怕他经常省砖头,或者跟明朝工匠一样在城墙上标记是张三李四王二麻子督造。唯一出路是跳出去做工头或建筑师。
哈哈 就是这样的
当然如果你是技术总监 就不同了, 所以大家创业吧
第三,公司制度问题
工资不是你老大说了算
本来3个人干的事情,突然一个人请假或辞职了,临时一段时间由2个人包办了
老板会给每人加薪50%吗?哪怕临时这一段时间。
的确,《程序员修炼之道》里面的思想有一部分就是描述的这个!
恩恩 是啊 写高质量的代码 并不是写的多 工作时间长工作效率就高 就我看来 觉得程序花时间主要是在业务逻辑上 最好的逻辑 最好的算法 虽看起来很花费时间 但实质省去很多代码 我觉得这才是高端