当前位置:首页 >>新闻 >> 2008年01月13日

译言:顶尖黑客

推荐者:草根帮主 (积分 188515) | 原作者:译言
爱迪生们 关于哪个是最有争议的观点中,这一个无疑没有太大异议:寻求更多的变化,这并不是像我们想得那样的大问题。 我没有在书中说寻求变化本身就一定是件好事,而是说在某些情况下这是一个好的征兆。脑袋的阵痛也许不是好事,但是有时,譬如在受到头部重击之后恢复意识的时候,就是一件好事。 力求变化可能是生产力提高的一个征兆(在一般意义上,他们几乎是同义词),这几乎永远是一件好事,如果社会的生产力停滞不前,多半不是因为人人都是爱迪生。相反是因为没有爱迪生。 在科技不发达的社会里,生产力上面的差异可能不是那么显著。在一个到处捡柴生火的游牧部落中,一个最好的捡柴禾者比最差的捡柴禾者能强多少呢?两倍吗?但是在操作像计算机这样复杂的的工具时,个体之间生产力的差异将是巨大的。 这些并不是新观念,Fred Brooks早在1974年就把它们写了下来,而他引用的研究成果发表于1968年。不过我认为Brooks还是低估了程序员之间的差异。Brooks是以代码行来描述生产力的:最好的程序员能在1/10的时间内解决问题。但是如果连问题都还没有给出呢?在程序世界的许多领域,最难得恰恰不是解决问题,而是要解决什么问题。想象力是无法量化的,但在实践中,就衡量生产力而言,占据支配地位的标准却是可以量化的代码行。 几乎所有领域的生产力都在提高,不过到目前为止,得到显著提高的领域为数有限。程序员之间的巨大差异看起来就是得到巨大提高的一个例子,不过我不认为这是写程序的固有特征。在所有领域,技术是放大生产力之间的差异的杠杆。我想在写程序上存在着特别多的技术杠杆。就当下来看,所有领域中杠杆都在变长,所以在越来越多的领域中,差异也会随着时间的推移越来越显著。公司的成功,甚或国家的成功,都取决于他们对于这种将要发生的,在效率方面差异所要采取的对策。 如果说在生产力上面的差异会随着技术而增长,那么随着时间的推移,最有效率的个体对整体做出的贡献也会不成比例的扩大。当1%的成员贡献了90%的产出时,把他们的效率拉到平均水平会使整体损失巨大。(不管是海盗出击,还是计划经济) 如果我们希望得到最大的产出,我们需要理解这些有着最高效率的人。什么是他们的驱动力?他们需要什么来完成他们的工作?如何识别他们?如何让他们为你工作?最后必然是这个问题,如何成为其中的一员? 不仅仅是钱 碰巧我认识几个超级黑客,于是我开始坐下并思考什么是他们的共同点。决定性的品质很可能是他们真的热爱编程。一般程序员写代码是为了讨生活。顶尖的黑客认为这是让他们得到乐趣的途径,更让人兴奋的是还会有人付钱给他们。 大多数时候人们认为顶尖的程序员对钱漠不关心,不幸这并不那么对。不过他们真正在乎的是他们正在做有趣的事情。为了这样的理由:能够赚足够多的钱,做任何想做的事,黑客们会被赚取巨大财富的主意吸引。一旦他们面对日常工作,他们就会更加关心他们要做什么,而不是能够得到多少报酬。 从经济学的角度看,你不需要向顶尖的黑客支付等同于他们身价的薪水,这是一个非常重要的事实。在生产力上,顶尖的程序员是一般人的数十倍甚至上百倍,他们却为自己得到了三倍的薪资而暗自高兴。后面我会提到,部分的原因是顶尖的程序员不清楚他们自己有多棒,同时对于他们来说,金钱也不是他们想要的最主要的东西。 什么是一个黑客真正希望拥有的?就像所有的手艺人那样,黑客最喜欢的是好的工具。有一句这样的话,好黑客绝不容忍差工具。对于那些构建在错误基础设施之上的项目,他们会简单得说不。 在我曾经工作过的一个创业团队当中,有一样东西是钉在我们的公告板上面的,那是一张IBM的广告。那是一张AS400 的图片,我想我能读到的标题就是“黑客不鸟它”[1] 当你决定在项目中使用什么基础设施时,不仅仅是作一个技术决定,同时也是一个社会学意义上的决定,并且后一个才是两者之中真正重要的决定。例如,你的公司决定写一个软件,看起来似乎用Java来做是一个谨慎的做法。但是在你选择编程语言的时候,你同时也是选择了一个社区。你能够雇佣的Java程序员可能不如那个使用Python的程序员,黑客的质量要比起你要选择的语言的要更加重要。并且实际上,那个使用Python而不是Java的家伙会告诉你他使用的语言(python)有多棒。 商业决定通常倾向于更流行的语言,因为它们把这些看作标准。它们不会把公司的未来赌在 Betamax 上面。但是问题是语言不仅仅是个标准。如果你需要在网络上传输比特,那意味着使用TCP/IP。程序语言不仅仅是格式,而是一种表达的媒介。 我曾经读到Java已经取代Cobol成为最流行的语言。作为一个标准,你不可能再奢望更多。但是作为表达的媒介,你可以做得更好。在所有我能想到的最好的程序员中,我知道只有一个会自愿使用java。而所有这些人,没有人愿意在java上为Sun工作. 通常顶级的黑客坚持使用开源软件。不仅是它们更好,而且开源提供给他们更多的控制。好的黑客坚持控制,这是为什么他们是好的黑客的部分原因:当什么东西不对劲时,他们需要修正它。当你需要黑客们按照上面的方式去写软件的时候,对于黑客们要求他们使用的OS也应该如此时,不要感到惊讶。 数年以前,一个风险投资人朋友告诉我他正参与一个创业的团队,一切听上去很好。但是第二次我们谈到,他们决定在windows NT上面构建他们的软件,并且刚刚雇佣了一名非常有经验的NT开发者作为他们的CTO,我想这些家伙真是逊掉了。首先,这个CTO不可能是第一流的黑客,因为一名优秀的NT开发者会不自觉地倾向使用NT,我不能想象一个顶级的黑客会这样;其次,即使这个家伙足够棒,在使用NT的项目中,很难雇佣到一个优秀的开发者。[2] 终极边界 除了软件,对黑客来说最仰仗的工具就是他的办公室。大公司认为办公室空间的功能是等级的表示。不过黑客们是这样来使用他们的办公室的:办公室是思考的场所。如果是一家技术公司,他们思考的东西就是你的产品。所以,让黑客们工作在嘈杂混乱的环境下就像是一个空气中充满了煤烟的画室。 呆伯漫画 中总是以赞赏的态度提到小休息室。不过我认识的所有黑客对此都不屑一顾,被打断意味着阻止黑客们解决难题。如果希望在一间带着小休息室的办公室中作真正的工作,你有两个选择:在家工作,或者选择比其他人早或者比其他人迟,或者在周末,总之是没有其他人在的时候。那些公司难道没有看出这有什么不对劲么?办公室理应是帮助你工作的地方,而不是这就是你工作的地方。 像Cisco这样的公司总是自豪的宣称每个人,甚至是CEO,都有一个小休息室。但是他们并不是像他们自己想的那样前卫。显然他们还是把办公室空间看作等级的徽章。注意Cisco是以在家里开发的,很小的产品而著称,但是这些产品都来自对那些创业者的新技术的收购。这些创业者的信条是:黑客需要在安静的地方工作。 理解这些黑客们的需要有一家大公司,M$,我见过一张M$的招聘广告,上面是一个大大的门。这里的逻辑是,为我们工作,我们会给你个地方,你的确能够把工作完成。在大公司中,M$对于在提倡像在家里那样开发软件的理念是突出的。不是最好,但已经足够好。 如果公司希望黑客们有效率,它们应该关注一下黑客们在家里是怎么工作的。在家里,黑客们可以自己安排要做的事情,并将其中的绝大多数完成。而当黑客们在家里工作时,他们不会工作在嘈杂的,开放的空间中,他们是工作在门的后面。当他们需要费力思考时,他们工作在舒适的,周围有人的,有地方可以散步的环境中,而不是在停着许多车子的大停车场旁边的几个玻璃盒子中。当他们感觉疲倦时有沙发可以小憩,而不是在桌子旁边昏昏沉沉。在夜晚,这是最主要的黑客时段,没有人拿着真空吸尘器咆哮,也没有会议和上帝禁止的集体反思乃至团队建设活动。当你望向他们的电脑时,你会巩固我先前说过的工具的观念,在工作上他们可能不得不使用java和windows,但是在家里,他们可以自己作主的地方,你很可能发现他们在使用Perl和Linux 实际上,那些关于Cobol和Java是最流行语言的统计数据可能是误导。如果我们想知道那些工具是最好的,我们应该考虑到的是黑客可以自由选择的工具。也就是黑客们自己的项目。当你问这个问题,你会发现开源OS已经占据决定性的市场份额,排名第一的语言则是Perl。 兴趣 有了好的工具,黑客们还希望有趣的项目。怎样让一个项目有趣?哦,那些公然的,性感的应用,比如偷飞机或者软件的特别作用是非常有趣的。只要准备迎接新奇技术的挑战,任何应用都是有趣的。事实上很难猜测黑客们喜好的问题,因为工作在那些无趣问题上的人通过发现新的解决方法,会使问题变得有趣。在ITA之前( Orbit上的软件 由他们完成),飞机票费用搜索可能是可以想到的最无趣的应用。不过ITA将问题换成更具雄心的描述方式之后,事情变得有趣了。 我认为相同的事情也发生在google身上,google建立时,传统智慧认为在门户中搜索是无聊的,不重要的。不过这些家伙
[ 关键词:黑客  原文/来源链接 ]


1楼楼长: (抢沙发奖牌 ) 在 2009-09-14 13:59:45 评价道:
顶一个呀3.016299E-02
验证码:
                 
1、请不要在评论中发广告,如需增加外链请注册成个人会员试用个人签名与自助广告。
2、把《译言:顶尖黑客》推荐给您的好友