最有效率的程序员会比一般的程序员的编程效率高上几个数量级。但在任何公司里,他们的工资水平却只会出现很小的浮动差距。甚至在整个行业内,这种差距也不是很大。如果一个程序员的效率能达到其他人的10倍,为什么他不能得到10倍高的报酬呢? Joel Spolsky在最近的他的一个演讲里就这个问题给出了一系列的答案。首先,程序员的工作效率在整个行业内千差万别,但在一个公司里却不会有太大的差距。如果一个人比他的同事的效率高10倍,那他基本上会离开,要么去找更有天赋的人一起工作,要么去创业开公司。第二,极高的工作效率并没有被察觉。这篇文章我们主要讨论这第二种情况。

The most productive programmers are orders of magnitude more productive than average programmers. But salaries usually fall within a fairly small range in any company. Even across the entire profession, salaries don’t vary that much. If some programmers are 10x more productive than others, why aren’t they paid 10x as much? Joel Spolsky gave a couple answers to this question in his most recent podcast. First, programmer productivity varies tremendously across the profession, but it may not vary so much within a given company. Someone who is 10x more productive than his colleagues is likely to leave, either to work with other very talented programmers or to start his own business. Second, extreme productivity may not be obvious. This post elaborates on this second reason.

一个人的工作效率比同伴高10倍怎么可能不被察觉呢?在某些行业里,这种差别是显而易见的。一个销售人员的效率是他的同伴的10倍,这很容易看出来,而且他也能得到相应的报酬。销售成绩容易测量,就比如有些销售人员销售额会是其他人的数十倍。一个泥瓦匠的工作效率是其同伴的10倍,这也很容易看出,但这种事情不会发生:最好的泥瓦匠也不可能比一个一般的泥瓦匠快10倍。软件的产出不可能像销售或砌砖那样容易的测量。最好的程序员并不是能写10倍多的代码,他们也不是能多干10倍多小时的工作。 程序员在避免写代码时才体现出最高的效率。他们能认识到人们要求他们解决的问题并不需要解决,他们能知道客户并不清楚自己想要的东西是什么。他们知道什么地方可以重复利用或可修改来解决问题。他们会欺骗客户。但是,当他们做到了最高的效率时,没有人会说“哇塞!这比用那笨办法做会省事100倍。你应该涨工资。”顶多人们会说“这个主意不错!”然后继续干活。你需要很长的时间才能发现有些人经常性的显现出省时省力的睿智。或者反过来说,你需要很长的时间才能认识到有些人虽然经常加班加点的编程却没有什么产出。 对超级程序员形象的一种具有浪漫主义色彩的描绘是:他开启Emacs编辑器,敲起代码来就像打机枪,把一个软件从无到有开发成没有任何缺陷的最终产品。而一个更精确的描绘是:他静静的望着太空几分钟,然后说“咦,这好像以前在什么地方见过呀。”

How can someone be 10x more productive than his peers without being noticed? In some professions such a difference would be obvious. A salesman who sells 10x as much as his peers will be noticed, and compensated accordingly. Sales are easy to measure, and some salesmen make orders of magnitude more money than others. If a bricklayer were 10x more productive than his peers this would be obvious too, but it doesn’t happen: the best bricklayers cannot lay 10x as much brick as average bricklayers. Software output cannot be measured as easily as dollars or bricks. The best programmers do not write 10x as many lines of code and they certainly do not work 10x longer hours. Programmers are most effective when they avoid writing code. They may realize the problem they’re being asked to solve doesn’t need to be solved, that the client doesn’t actually want what they’re asking for. They may know where to find reusable or re-editable code that solves their problem. They may cheat. But just when they are being their most productive, nobody says “Wow! You were just 100x more productive than if you’d done this the hard way. You deserve a raise.” At best they say “Good idea!” and go on. It may take a while to realize that someone routinely comes up with such time-saving insights. Or to put it negatively, it may take a long time to realize that others are programming with sound and fury but producing nothing. The romantic image of an über-programmer is someone who fires up Emacs, types like a machine gun, and delivers a flawless final product from scratch. A more accurate image would be someone who stares quietly into space for a few minutes and then says “Hmm. I think I’ve seen something like this before.”

为什么程序员的工作效率跟他们的工资不成比例相关推荐

  1. python 语音websocket_Python 牺牲性能以提升程序员的工作效率

    1.项目名称:基于 Python3 的信息发送系统 项目简介:lykchat 信息发送系统是 Python3 开发的,通过模拟微信网页端,基于个人微信号,为系统管理人员提供信息发送工具,实现的功能有用 ...

  2. 【项目管理】用LoC衡量程序员的工作效率是不科学的

    由于编码是脑力劳动,是创造性工作,所以尽管程序员的工作量和工作效率不是那么容易度量,但用LoC衡量程序员的工作效率显然是不科学的. 不合理的理由: 想改进代码,资深程序员更倾向于删代码而不是加代码.代 ...

  3. python语音分割_Python 牺牲性能以提升程序员的工作效率

    1.项目名称:基于 Python3 的信息发送系统 项目简介:lykchat 信息发送系统是 Python3 开发的,通过模拟微信网页端,基于个人微信号,为系统管理人员提供信息发送工具,实现的功能有用 ...

  4. 使用 ABAP 开发的一个基于 Web Socket 的小工具,能提高程序员日常工作效率

    程序员区别于其他岗位的一个优势是,我们可以充分利用自己掌握的编程语言,将平日一些琐碎的,重复的日常工作,通过代码来实现自动化,从而省下更多的时间来投入到技术含量更高的工作中,提高工作效率. 本文介绍一 ...

  5. 是什么摧毁了程序员的工作效率

    本文是html5tricks原创翻译,转载请看清文末的转载要求,谢谢合作! 下图是摘自网上有关程序员工作效率的论述. 正如Homer Simpson所说,如果这是真的,那就有意思了. 我之所以不能一针 ...

  6. 如何提高程序员的工作效率 这几招就够了

    一直以来,很多学生都被一个问题困扰过:程序员如何才能提高自身的工作效率? 1.给自己一个安静的编程环境 编程是一个细致活儿,需要程序员全情投入,因此创造一个安静的编程环境非常重要,你可以尝试切断自己的 ...

  7. 可以帮助提升程序员高效工作效率的常用小工具推荐

    给大家分享一些程序员的实用工具,工具用得好,帮助你快速提升效率.     1.Xmind思维导图     Xmind是一款比较适合记录想法的软件,尤其是在当你负责项目的时候,把项目的各方面想法进行细化 ...

  8. 程序员提升工作效率和质量工具

    持续更新中- 文章目录 〇.软件推荐 0. JIRA 团队项目管理平台 1. confluence 团队知识共享平台 2. GitLab 代码管理 3. 坚果云/NAS 文件备份,多设备同步,文件共享 ...

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

    这不是一个关于时间的问题,而是关于精力. 为了"有效率",我们试图在一个工作日内塞进尽可能多的小时,但最终一切都更多地取决于你的注意力,积极性和良好状态(这些都是直接与精力等级联系 ...

最新文章

  1. Codeforces Round #303 (Div. 2) E. Paths and Trees 最短路+贪心
  2. 廖的python教程_学廖老师的python教程想到的
  3. 还在为DST模型刷不动而感到苦恼吗?来试试无监督DST吧,DSI等你来战!
  4. 介绍一个好用的日期倒计时工具
  5. 英语口语 week11 Tuesday
  6. 【LeetCode】231. Power of Two
  7. SpringBoot集成Activiti Explorer
  8. 享元模式在 Java Integer 中的应用
  9. 数据预处理第1讲:标准化
  10. jquery 获取data-* 属性值
  11. Java 编程技术中汉字问题的分析及解决
  12. Java学习笔记(十)——开发个小项目(GoBang2.0)
  13. bi 工具 市场排行榜_bi工具市场排行榜,国内BI软件排名
  14. 如何部署自定义统计图
  15. 【网络学习】对TortoiseSVN的基本了解及简单操作
  16. 人在广州,力撑陈 Sir
  17. Python 爬取 201865 条《隐秘的角落》弹幕数据,发现看剧不如爬山?
  18. SQL Server TempDB 收缩方法
  19. 下载的图片损坏 图片完整性检测工具
  20. 微信小程序——不同角色的导航栏显示不同

热门文章

  1. mergeCells里面参数解析
  2. java catch 抛出异常_java - 在catch和最后claus中抛出异常
  3. Derby/IJ基础环境配置与使用
  4. 一点一点学习C++之笔记001
  5. Java代码审计审技巧及方法
  6. 没有终结点在侦听可以接受消息的 U9WorkflowService
  7. Mr.Alright---时区、城市、GMT大全(含数据库)
  8. 高新技术企业的账务处理怎么做
  9. 如何给PDF文件裁剪页面
  10. WebSocket集群解决方案