顶尖黑客 编辑本段回目录
原文作者:Paul Graham原文链接:Great Hackers译者:hgye
译者按:1.作者Paul Graham 是一个Lisp黑客 ,同时也是Y-Combinator的联合创始人(什么是Y-combinator的本意?看看这里 ,可惜我没有看懂,不过我猜想和Lisp有 ......
原文作者:Paul Graham
原文链接:Great Hackers
译者:hgye
译者按:
1.作者Paul Graham 是一个Lisp黑客 ,同时也是Y-Combinator 的联合创始人(什么是Y-combinator的本意?看看这里 ,可惜我没有看懂,不过我猜想和Lisp有很深的关系,好像是lambda算子可以推出Y)
2.这篇文章是作者的Essays系列 ,注意它不是blog,也就是说,这是TMD文学作品。不得不承认,这篇文章从篇章结构到遣词造句,都已经超越我了E文水平。(也许只在四六级考试里见过...)这里 是我在google docs上的草稿,如果你发现错误,尚请顺手改过来。(我在翻阅这篇文章的同时,发现了另一个老兄 已经翻译了Paul的几篇作品 )
3.翻译这篇文章的缘起是一个无聊星期六的中午和下午。不过能够坚持把它读完并打算把它译出来则是因为我自己最近的经历和体验。
(这篇散文源于2004年Oscon 上的一个演讲)
几个月前我刚刚完成了一本书 ,在书评中我发现了书评中诸如这样的字眼,“煽动的”,“争议的”,更别说还有“白痴般的”评价。
我无意使那本书处于争议之中,我只是试图更有效率,告诉你们已经知道的事情是浪费你们的时间。不同是更有效的方法,不过这注定产生一本火药味的书。
爱迪生们
关于哪个是最有争议的观点中,这一个无疑没有太大异议:寻求更多的变化,这并不是像我们想得那样的大问题。
我没有在书中说寻求变化本身就一定是件好事,而是说在某些情况下这是一个好的征兆。脑袋的阵痛也许不是好事,但是有时,譬如在受到头部重击之后恢复意识的时候,就是一件好事。
力求变化可能是生产力提高的一个征兆(在一般意义上,他们几乎是同义词),这几乎永远是一件好事,如果社会的生产力停滞不前,多半不是因为人人都是爱迪生。相反是因为没有爱迪生。
在科技不发达的社会里,生产力上面的差异可能不是那么显著。在一个到处捡柴生火的游牧部落中,一个最好的捡柴禾者比最差的捡柴禾者能强多少呢?两倍吗?但是在操作像计算机这样复杂的的工具时,个体之间生产力的差异将是巨大的。
这些并不是新观念,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建立时,传统智慧认为在门户中搜索是无聊的,不重要的。不过这些家伙不认为搜索是无趣的,这就是为什么它们做的这么好的原因。
这里是经理可以做出贡献的地方。就像父母对孩子说,我打赌你在10分钟内不能把房间打扫干净。好的管理者可以把问题重新定义的更加有趣。Steve Jobs在这方面好像特别擅长,部分的原因不过是他的高标准而已。在Mac之前有很多小的,便宜的电脑。他把问题重新定义为:做一个漂亮的。这可能比任何胡萝卜加大棒都更有效。
他们当然成功了,在Mac第一次面世时,你甚至不必开机就知道它到底有多好。从这个案例中你应该可以学到什么。就在几个星期前,我走在剑桥的街道上,在某人丢弃的垃圾中我发现了Mac的包装盒,我向里看了一眼,那不是一台Mac SE 吗!我把它带回家,插上电,然后它启动了。快乐的Macintosh标志,然后是finder 。天啊,就是这么简单,就像...google(sorry,不熟悉Mac,所以什么是Macintosh face? 我翻译成标志)
黑客们喜欢和高标准的人一起工作,但是仅仅严格要求是不够的。你还必须坚持正确的事情,通常这意味着你自己也必须是一名黑客。我偶尔可以看到如何管理程序员的文章。实际上这里有俩个主题:一个是自己是程序员时要做什么,另一个是你不是程序员时你要做什么。第二种情况可以简单的浓缩为一个词:放弃
问题并不是出在日常的管理上,好的黑客都是自我管理者。问题是,如果你不是黑客,你就不能辨别谁是好的黑客。类似的我们可以解释为什么美国的汽车都很丑陋。我称之为设计悖论,你可能认为我只要雇佣好的设计者就可以设计出漂亮的产品。但是没有好品味,你怎么才能辨识好的设计者呢?名义上你可以考察他的履历,但是仅仅是得过的奖项和曾经拥有的工作是不行的。因为在设计上,或者说在所有领域,那些被时髦和人云亦云驱使的人,是没有能力做一个合格的第三方的。 下面这样是行不通的:不了解什么是美,却希望通过控制流程来制造漂亮的事物。美国汽车的丑陋是因为美国的汽车公司是一帮没有品味的人在把持。
这个国家的很多人认为品味是飘忽的,甚至是反复无常的,但是两者都不对。出色的设计中,经理应该是公司产品的要求最高的使用者。如果你确实有不错的品味,Steve Jobs就做到了,你可以在满足自己的要求的同时,让最好的人甘心为你工作。
琐碎的小问题
非常容易分辨出什么问题是无趣的:那些不是宏大的,清楚的,困难的的问题,但是你必须一个个去解决的很琐碎的问题。为一个到处是bug的软件的写界面就是一件最差的事。为每个客户提供复杂的,病态要求的定制是另一个差的不能再差的事。对于一个黑客来说这不谛于千刀万剐。
琐碎的事的显著特征就是你不能从中学习。写一个编译器是有趣的,因为你从中学到了什么是编译器。而为到处是bug的软件的写界面却不能教会你任何东西。因为bug是必然会产生的[3]。这里不是说让一个顶尖的黑客尽量远离琐碎的问题,这也不仅仅是自我保护的本能。做琐碎的事情会让你变蠢,就像模特远离奶酪三明治一样,顶尖的黑客也会远离这种问题。
当然有时必然需要这种角色。并且由于供需比例,他们也会得到非常好的报酬。就公司而言,找一个顶尖的黑客来做这些乏味的工作的尝试是有可能成功的。你怎样才能做到呢?
这种情况会发生在一个地方,就是在创业者当中。在我们创业时,我们找到了Robert Morris 做系统管理员。是不是感觉就像滚石乐队在酒吧里做善事,所以你不可能雇佣到这样的天才。但是他们会为他们自己的公司吃任何苦头。[4]
大一点的公司可以通过拆分公司来解决这个问题。他们可以成立单独的R&D部门来雇用聪明的家伙,好让他们不必直接面对刁钻的客户[5]。在这种情形下,研究部门相当于一座宝矿,产生公司其他部门使用的新奇主意。
不过你可能不需要如此极端。自下至顶编程法 建议的另一种分割公司的方法:让聪明人成为工具制造人。如果你的公司制造生产其他什么东西的软件,那就让一小群人来做,然后用这些工具软件来写你的应用。这种方法可以让聪明的家伙为你完成98%的代码,同时又可以像传统的研究部门那样,让他们几乎和用户绝缘。工具制造者的确有用户,不过面对的是公司里的开发者。[6]
如果M$使用这种发式,他们的软件就不会到处是安全漏洞。正是因为不那么聪明的家伙是不太会考虑底层的操作,比如内存分配。所以不要用C来直接写Word,应该用像搭建Lego的积木那样的Word语言。(Duplo ,我相信这是一个太过于技术的术语)(不知道这里的Word是不是指得M$的Word)
群聚
除了有趣的事情,黑客们最欣赏的是另一个好家伙。顶尖的黑客倾向于聚集一处——有时非常壮观,譬如在施乐帕洛阿尔托研究中心 。所以所能营造出来上佳的氛围是和你能招徕到的黑客是成比例的。群聚的含义就是这样的一个氛围。所以赢者通吃,在任意时段,只有那么10到20个地方是黑客们希望工作的地方。如果不在其中,你不会招揽到少数几个黑客,而是零个。
是否拥有顶级黑客,仅就此而言,已经足够让你的公司成功的假设,对于google和ITA而言,两个目前的最炙手可热的地方,这是正确的。(译者:这是在2004,ITA是什么东西 ?)但是这救不了Thinking Mchines 和施乐。Sun有一段时间做的很好,但是他们的商业模式在飞速的走下坡路,在这种情况下,甚至是最好的黑客也不能拯救你。
我认为在其他条件等同的情况下,能吸引到黑客是公司的一项巨大的优势。可能有人对此不同意,在我们于90年代开办VC企业的时候,一些人告诉我们软件公司不会通过写伟大的软件获胜,但是品牌和渠道能帮助他们成为好买卖。
他们好像很相信这一点,我想我明白为什么。我认为许多VCs在寻找下一个M$,至少是无意识的。当然M$就是你的模型,你不应寻找希望通过写好软件来获胜的公司。但是VCs寻找下一个M$是一个错误,因为没有创业公司会成为下一个M$,除非是其他人恰巧在正确的时刻屈服,转而去做下一个IBM。
把M$当作模型是一个错误,因为他们整个的文化继承于一个幸运的突破点。M$是一个错误数据,如果你把M$抛在脑后,你会发现在市场上还是好的产品更容易成功。VCs们更应该关注下一个Apple,下一个Google
我认为Bill Gates很清楚这一点,让他真正担忧不是Google的品牌,而是Google有着更好的黑客[7]。
辨识
那么谁是顶尖黑客呢?当你遇到一个时你怎么知道他就是呢?这非常困难。甚至是黑客们自己也不能辨别。我现在可以非常肯定我的朋友Trevor Blackwell 是一顶级黑客。你可能在slashdot上面 读到过他曾经做出来他自己的赛格威 电动车。令人印象深刻的是它在一天之内就写出了所有的软件(顺便提一句,他用的是python)
对Trevor 而言,这是非常平常的。不过我第一次碰到他的时候,我想这家伙真是一个完完全全的白痴。他站在Robert Morris的办公室中,嘴里胡乱的说着什么,我还能记得在他后面,Robert做着夸张的动作试图把这个怪人赶出办公室,好和我一起去吃午饭。 Robert说他一开始也错误的判断了Trevor。当Robert第一次碰到Trevor时,Trevor刚刚开始一项计划,他随身携带这些带索引的小卡片,并把个人生活的每一个方面都记在上面。Trevor那时刚从加拿大来,带着很浓的加拿大口音和他那mullet 发型。(这个找不到对应的中文词^^,hacker就是hacker)
问题在于,黑客是这样的混合体:除了他们那不善于社交的名声之外,通常他们还会付出很大的努力使得自己看起来聪慧。当我还个高中生时,我时常在MIT人工智能实验室旁边晃荡。那的确是压抑的感觉,每个人说话说得快极了。不过一段时间之后,我就发现了其中的诀窍。你的思维不需要很快,不过需要用两倍的话语来表达任何事情。
从这些纷杂的情形里传出来到信号就是,当你碰到好的黑客时认出他们是很困难的。我自己直到今天还不能辨别。你也不能从他们的简历中辨别它们。看起来唯一的途径就是和一个黑客一起工作一段时间。
这也就是高科技区域通常产生于大学的周围,这里主要是因为学生而不是教授。创业者成长在大学的周围是因为大学把这些有希望的年轻人带到一起,让他们工作在同一个项目上。一个聪明人找到了另一个,于是两个人就一起建起了他们自己的项目。
除了和他们一起工作就不能辨识好的黑客的假设对于黑客本人也适用,黑客们通常都意识不到自己有多棒。相比而言,这在其他大多数领域要容易得多。百米赛跑只需要10秒就可以知晓跑得最快的那个。甚至在数学上面哪些是公认的难题以及它们的最佳解决方案似乎也有一致的意见。但是做黑客就好像写作。谁能说在两部小说当中有一个更好呢?当然作者本人除外。
不过黑客在一起时,至少其他的家伙知道你是黑客。因为黑客并不是小说家,黑客在项目上相互协作。当你在网络上和别人较劲时,你很快会意识到还击是格外困难的。(When you get to hit a few difficult problems over the net at someone, you learn pretty quickly how hard they hit them back.)但是黑客们不能在工作中看到自己,如果你问一个顶级黑客他本人有多好,他一定会回答,我不知道。他这并不是在自谦,他是真的不知道。
除了那些我们确实在一起工作的人,其他的我们都不熟悉。这就导致了这样奇怪的情形:我们不知道谁应该是我们的英雄。那些赫赫有名的黑客通常只在特定的小圈子里有享有盛名。(The hackers who become famous tend to become famous by random accidents of PR. )通常当我需要给出顶级黑客例子的时候,我真的为很难。首先想到的肯定我认识的那些人,但是这样似乎有点眼界太小的意思。也许我应该给出像Richard Stallman,Linus Torvalds,Alan Kay这样有名的例子。但是我对于这些家伙是不是顶级的黑客一点没有底,因为我从来没有和他们在一起工作过。
如果黑客世界中有一个Michal Jordon,没有人会知道,包括他自己。(这是什么鬼意思)
养成
最后,关于黑客所有人都会感兴趣的问题是:如何才能成为一个顶级黑客?我不太确信你是否能成为其中一员。但是可以确信能够做点什么让你自己变得更蠢一点,如果你能让自己变蠢,你也很可能让自己变得更聪明。
成为一个好的黑客的关键是做你喜欢的工作。当我回想起那些我认识的顶尖黑客,他们共性是让他们做不想做的事情将是极端困难的。我不清楚这是原因还是结果,亦或二者兼具。
把事情做好的前提是热爱它,也就是你热爱什么东西你就会有持续hacking的动力。尝试去找在你14岁时迫不及待编程的感觉。如果你觉得现在的工作让你的大脑僵化,那么事实可能就是如此。
最好的黑客肯定是聪明的,但是其它很多领域最好的人也是聪明的人。那么对于黑客有什么是他们独特的品质呢?我问过一些朋友,他们首先提到的就是好奇心。不过我总是假定所有的聪明人都是好奇的——好奇是知识的自然延伸。但是明显的黑客特别好奇,特别是在事物如何工作方面。这就是意义所在,因为程序的绝大部分就是描述事情是如何运作的。
几个朋友提到黑客的能力在于专注——他们的能力就是,有人说的好,“把脑袋当中其他的一切杂念摒除”。我当然也很清楚这一点。我甚至听几个黑客说过,在没有喝掉半打啤酒之前他们是根本没有办法写程序的。所以hacking可能是在专注上是需要一些特别的能力的。可能顶尖的黑客在他们的大脑中可以容纳相当大的上下文,所以在他们看到一行行的代码是,他们不仅仅是看到了一行,而是整个程序。John Mcphee在写道Bill Bradley之所以是一个成功的篮球运动员时,部分的要归因于Bill那不同寻常的周围视野,“完美的”视野意味着水平47度的周围视野,Bill是70度,当他看像地板时他也能看见篮球。也许顶尖的黑客也有类似的与生俱来的能力。(我使用非常浓密的语言来欺骗,这会使我在法庭退缩)(I cheat by using a very dense language, which shrinks the court天啊,这又是什么鬼意思)
这也可以解释很什么需要一个个单独的房间,对于在小房间里工作,也许从来不关注细节,管设备的人没有任何概念,不过黑客倾向于让自己的脑袋处于混乱的状态。(如果哪个孤僻症的谣言是真的,Bill对此显然非常了解)(是指Bill Gates?)
在顶尖黑客和一般意义上的聪明人之间,我注意到的一个区别是,黑客们通常都是政治错误的。好黑客之间心灵相通的奥秘,在他们很了解对方的时候,会相互表达对于公众来说是非常颠覆性的观点。我能看到的,为什么政治错误是编程上的一个好品质:程序是复杂的,在好的程序员手中尤其这样,非常灵活。在这种情形下,挑战假设就是一个很好的习惯了。
你能培养这些品质么?我不知道,至少你可以加强他们。这里我有一个良方。如果你希望自己成为一个顶尖黑客,尝试着对自己作这些事情吧:绝不工作在无聊的项目上(除非你真的没饭吃),作为报答,你也决不能允许自己做事只做一半。我认识的所有顶尖黑客都会把一票干完,虽然有时他们只是别无选择。
脚注
[1]平心而论,我不得不说IBM做硬件还是相当好的,我就是在IBM笔记本上写这篇文章的。
[2]他们的确走向了失败,几个月之后他们关门大吉了事。
[3]我想这也是人们通常所说的“生命的意义”。表面上看,这看起来很奇怪。生命不是一种表达;怎样才能有意义?但是保证品质会感觉更有意义。在一个写编译器的项目上,你不得不解决很多问题,但是所有的问题都属于一类,看起来都有相同的信号。在那些随机的产生问题的情况下,这好比是噪音。
[4]爱因斯坦曾经设计过电冰箱(他有股票)
[5]很难说什么是计算机世界里的研究,但是粗略可以等同于:那些没有用户的软件。
我不认为最好的黑客,就像公众认为的那样,倾向于工作在研究部门。我认为大部分原因是,不必和产品经理在一起开三个小时的会,来讨论第13.27条,即整合南韩版本的问题。
[6]在相当长的一段时间之内,相同的问题也发生在建筑界。几百年前建造房屋时,建筑师一切从头做起。慢慢的有人开始使用已经由别人造好的模块来构建房屋。这就像DTP 的发布,给了人们自由和损失惨重基础上的经验,但是显然这更有效。(不知道有什么典故)
[7]比起Netscape,Google是M$的真正威胁。也许是有史以来最危险的。不仅是他们决定对抗,在他们工作列表上,他们宣称一个“核心价值”是“不做恶”。从买豆油的公司到采矿设备公司,这样的宣言都不仅仅是古怪可以形容的了。我想计算机世界的所有人都知道谁宣布战争开始了。(这是在2004年)
致谢:感谢Jessica Livingston, Robert Morris, and Sarah Harlin审阅了这个讲稿的早期版本
http://www.itconversations.com/shows/detail188.html
读后感:
(原谅我既有译者按,又有译后感。不过既然我付出了劳动,总要让我表达自己的意见吧^^)
1.个人觉得这篇essay的风格还是正统硅谷风格的文章,或者说,介于黑客(hacker)和奇客(geek)之间,更倾向越黑客一点。虽然作者一直说的是黑客,不过我想黑客是信奉do it now的。表达的思想虽然有点激进,不过不妨碍他说出了很多事实。(在纠正人心上,矫弯必过正。)特别是既然在代码上不能强过你们,那么更要说点什么了。
2.前面说个人经历,我想在稍微说一点。就在最近几个月,我见识了:
?
在你debug一个下午,还在徒劳的寻找什么出错了的时候,别人只需要10分钟,再注释点几行code后,一切都正常了。是的,快速修改code的能力,文章里说黑客坚持控制,我原来也试图搞清楚一切,但是这样在出问题时你往往不能fix it。我想文章还说到了不仅仅看到了那一行code,这就是问题所在,基础的差异。
在别人说要需要修改代码,你花了一个星期去研究,还在各种纷繁复杂得class中试图搞清楚问题到底在哪里。别人去只花了2个小时,就了解了提出需求的人在想什么。然后快速定位了代码,虽然那些我都看过。是的,修改代码有时就像解数学题,问题面前除了排除法就是一片空白。我真是奇怪在初中是解几何题时的那种感觉那里去了。是的,这些已经不能说经验或者基础了,的确需要灵感。需要理解别人的表述风格,code的风格。一种语言就是一种表达的媒介。
还有在两个星期里反复看code,前一个星期也是空白,然后写code,然后改来改去,最后只需要200行就OK了
呵呵,距离文中的黑客我恐怕只能想想了...
有关「黑客」编辑本段回目录
写于二零零四年四月
对于大众传媒来说,「黑客」(hacker)是指入侵电脑的人。对于程序员来说它是指优秀的程序员。但这两个意思是有联系的。在程序员那里,「黑客」传达的讯息和字面意义上的「精通」是一样的,即能让电脑做任何事--无论电脑愿不愿意--的人。
问题还没这么简单。作为名词的「黑克法」(hack)也有两重含义。它既可以是褒奖,也可以是侮辱。用丑陋的方法做某件事,可以叫黑克法。但如果你做某事的手段很聪明,甚至多少打败了系统本身,那也可以叫黑克法。通常,用第一种意思的情况比较多,大概是因为丑陋的解决方案要比高明的多。
信不信由你,「黑克法」的两个意思也是相关的。丑陋的和富有想象力的方法有一个共同点:它们都打破了规则。从丑陋地破坏规则(如用胶带把东西粘到单车上),到富有想象力地破坏规则(如打破欧几里德空间),这之间有着一定的连续性。
黑客行为并非随着电脑的出现而产生。理查德·费曼参与曼哈顿计划时,一度以撬解装有秘密文件的保险柜自娱。这个传统一直延续到今天。我读研究生时,一个成天出入麻省理工学院的黑客朋友自己拥有一套撬锁装备。(他现在管理对冲基金,这两件事并非完全无关。)
有时候不太容易向当权者解释为什么有人爱干这类事。我的另外一个朋友曾经因为入侵电脑被政府逮个正着。这种行为在不远的过去并不算犯法,联邦调查局发现他们的常规调查技巧在这里不管用了。警察的调查工作通常从分析动机开始。常见的动机不外乎毒品、金钱、性和复仇。「智力层面的好奇」并不在联邦调查局的动机列表上。的确,这一整个观念对于他们都很陌生。
当权者往往对黑客的叛逆态度感到恼怒。但这种叛逆是令他们成为优秀程序员的那种特质的副产品。他们会嘲笑首席执行官们空泛的企业发布会演讲,但如果你跟他们说有什么问题是无法解决的,他们同样会嘲笑你。如果你压抑这两种特质中的一种,那么另外一种也无法发展。
这种态度有时会传染。有时,年轻的程序员注意到了著名黑客的一些怪癖,决定模仿,以显得聪明。这些伪黑客不只是讨人厌而已,他们的装腔作势可能会减缓创新的过程。
但即便是把这种烦人的怪癖考虑进来,黑客们的叛逆态度仍然是极大的优势。我真希望人们能够理解这一点。
举例来说,我怀疑好莱坞的那些人根本就理解不了黑客们对于版权的态度。这个话题在 Slashdot 上经年累月地讨论。但是,给电脑写程序的这些人,关心什么不好,要来关心版权?
部分原因是有些公司运用某种机制去阻止拷贝行为。任何黑客看到一把锁,首先想到的是怎么才能撬开。但黑客们对于版权、专利制度的警觉还有更深层的原因。他们将愈演愈烈的对于「智力所有物」的保护视为对自由思考的威胁,而那正是他们的工作所需要的东西。他们是对的。
下一代技术的概念,是由黑客通过观察现有技术产生的。版权所有者或许会说:不必了,省省吧。我们不需要外界帮忙。但他们错了。下一代的电脑技术通常是由外人开发的。
一九七七年,IBM 内部肯定有团队在开发他们心目中下一代的商用电脑。他们错了。下一代的商用电脑是两个叫史蒂夫的长发青年在洛斯奥拓斯的一间车库里开发的。几乎同一时间, 还有一些大机构在合作开发下一代操作系统:Multics。但有两个家伙认为 Multics 太复杂了,于是动手自己新写了一个。他们对 Multics 开了个玩笑,将新的操作系统命名为 Unix。
最新的知识产权法对于能够催生新想法的那种不规矩行为施加了前所未有的限制。在过去,竞争者或许可以利用专利阻止你销售他们生产的东西,但无法阻止你把它拆开来研究。最新的法律视这一行为为违法。不让研究现有技术从而对其进行改进,如何能够开发新技术?
讽刺的是,造成这种局面的不是别人,而是黑客自己。问题出在电脑本身。在过去,机器内部的一整套控制系统是由硬件组成的:传动装置,杠杆和凸轮。渐渐地,产品的大脑(也就是价值)移向了软件。这里我指的是广义的软件,即数据。黑胶唱片上的歌曲是被实体地刻入塑胶里的,而 iPod 上的歌曲只不过是储存在里面。
数据天生就易于复制,互联网又令复制的数据变得易于传播,难怪大公司会害怕了。但常见的情况是,恐惧蒙蔽了他们的判断力。政府用严苛的法律予以回击,以保护知识产权。他们的本意大概是好的,但他们或许意识不到,这种法律是弊大于利。
程序员为什么如此激烈地反对这些法律呢?如果我是立法委员,我会对这个谜团感兴趣——原因很简单:如果我是个农民,一天晚上突然听到鸡棚里传来一阵呱呱的叫声,我一定会想出去看看怎么回事。黑客不傻,而众口一词在他们的世界里是很罕见的现象。所以如果他们都在聒噪,或许确实有什么地方出了问题。
有没有可能是这样:那些法律,尽管其本意是保护美国,但结果反倒伤害了它?仔细想想。费曼在做曼哈顿计划时橇保险箱这件事,其实是很美国的。很难想象同一时期的德国当局对这种事情能够保持幽默感。这或许并非巧合。
黑客不守规矩。这是黑克行为的精髓,也是美国精神的精髓。硅谷生在美国,而不是法国、德国、英国或日本,这并非偶然。在那些国家里,人们喜欢照章办事。
我在佛罗伦萨住过一段时间。但待了几个月之后,我意识到自己无意识地想在那个城市寻找的东西,其实就在我刚刚离开的地方。佛罗伦萨之所以有名,是因为在一四五零年的时候,它是纽约。一四五零年的佛罗伦萨充斥着如今的美国随处可见的那种动荡的气息以及雄心勃勃的人物。(所以我最终回了美国。)
美国何其幸运,在这里,正确的叛逆是受到鼓励的。也就是说,美国不只是聪明人的家园,也是爱耍聪明者的天地。而黑客无一例外都是爱耍聪明的家伙。如果要为全国黑客选一个假日,那一定是愚人节。我们用同一个词来指称牛逼的或糟糕的解决方案,这很大程度上就已经反映了我们的工作性质。当我们弄出一个方案时,我们并不百分百肯定它属于上述哪种。但即便错了,只要错得有益,那就说明有希望。很多人认为编程是件精确、讲究方法的事,这是很奇怪的。电脑是精确而讲究方法的。黑克行为是开心地笑着干的。
在我们的世界里,最有个性的一些方案往往和笑话差不了多少。IBM 对于和 DOS 之间的授权交易所带来的结果一定十分吃惊,同样,当迈可·拉宾(注一)通过将一个问题重新定义为「较易解决的那个问题」,从而解决了它时,那个假想的「对手」一定也非常惊讶。
爱耍聪明的人必须掌握好度的问题,知道怎样才不至于给自己带来麻烦。最近,黑客们感到大环境有变。最近,黑客气质似乎很令人不满。
对于黑客来说,近来发生的公民自由的收缩似乎意味着厄运将至。外人大概又不明白了。为什么我们会特别关注公民自由呢?为什么是程序员,而不是牙医、推销员或园林设计师在关心这些事?
我来试着用政府官员能够了解的语言解释一下。公民自由不只是装饰,不只是古老的美国传统。公民自由令国家变得富有。如果做一个表,比对人均国民生产总值和公民自由,就会看到明显的趋势。公民自由会不会是原因而非结果?我认为的确如此。我认为在人们可以随意说话做事的国家里,效率最高的解决方案最有可能胜出。那些由一群最有影响力的人控制的国家则不会。专制国家会腐败,腐败的国家会穷,国穷则弱。在我看来,拉弗曲线不但可以应用在税收方面,也可以运用在政府权力方面。至少,我们可以很有把握地说,为证明这点而去做实验是很愚蠢的。税收得过高还可以改,但如果在极权主义的实验做到一半时突然意识到这是个错误,可没有办法撤销它。
这就是黑客们之所以担心的原因。监视民众的政府并不会直接降低程序员写出的代码质量,但它最终会形成一个烂点子战胜好点子的世界。正因为这点对于黑客们十分重要,他们对此尤其敏感。他们在很远的地方就能嗅到极权主义的气味,正如动物能够感知即将来临的暴风雨一样。
如果事情真如黑客们所担心的那样发展,政府近期用来保护国家安全和知识产权的措施,最终成了射向令美国强大的因素的导弹,那会是一件讽刺的事。但如果它发生了,那也不会是头一次出现「令民众恐慌的措施带来事与愿违的结果」这种情况。
有一种东西叫「美国性」。生活在其他国家你是了解不到的。如果你想了解什么会培育这种美国性,什么会压制它,那么没有比黑客更好的样本群了。因为,在我所了解的群体里,他们最能代表美国性,无论如何比如今掌管我们政府的那些人更能代表。那些人尽管满口爱国主义,但总是令我想到红衣主教黎塞留或枢机主教马萨林,而不是托玛斯·杰弗逊或乔治·华盛顿。
读一读开国元老们的话,就会发现他们很像黑客。「抵抗政府的精神,」杰弗逊写到,「在某些情况下是如此宝贵,我希望它无论何时都不萎缩。」
你能想像此话出自今天的美国总统之口吗?这些开国元老们的话,就像直言不讳的祖母一样,令那些自信心缩水的后继者们颜面扫地。他们提醒我们,不要忘记自己的传统。他们提醒我们,美国的财富和权力源自那些打破规则的人。
制定规则的人自然希望别人遵守规则。但请谨慎从事,你所要求的,有可能成为现实。
---
感谢下列朋友阅读本文(译者:指英文)初稿:Ken Anderson, Trevor Blackwell, Daniel Giffin, Sarah Harlin, Shiro Kawai, Jessica Livingston, Matz, Jackie McDonough, Robert Morris, Eric Raymond, Guido van Rossum, David Weinberger, 与 Steven Wolfram。
页顶照片为史蒂夫·乔布斯和史蒂夫·沃兹尼亚克在把玩「蓝匣子」。摄影:玛格丽特·沃兹尼亚克。经史蒂夫·沃兹尼亚克授权刊登。)
---(注一:迈可·拉宾,一九三一年生,电脑科学家,一九七六年图灵奖得主。)
黑客印象——聪明的“书呆子” 编辑本段回目录
聪明的“书呆子”是未来的黑客,一个技术天才,并不被众人所接受,他不懂得如何取悦于他人,只知道按自己的方式生活。
黑客,神秘而令人向往,这是一个庞大而特殊的群体,不要以为那些单纯的破坏者和玩家也算作是黑客,他们根本不够资格,不是因为技术,而是因为精神。如今的电脑和互联网已经像水和空气一样成为生活的必需品,渐渐被揭开那神秘面纱的黑客们也开始习惯于站在阳光下。“黑客正在改变这个世界”,这是保罗 ·格雷厄姆(Paul Graham)最受欢迎的一句话。当然,他自己也一定是这样认为的,因为他本人就是一名真正的黑客。“所谓黑客,就是那些真正理解电脑和互联网技术和应用的高级程序员,他们以黑客自居,但绝不作恶”,在保罗撰写的《黑客和艺术家:电脑时代的伟大灵感》(Hackers & Painters: Big Ideas From The Computer Age)一书中,他以“黑客就是艺术家,艺术家就是黑客”为黑客重新定义,“在《黑客和艺术家》中,黑客的任务是创造美好的事物,改善人们的生活,保罗不是理想主义者,他们确实在这么做”,书评网站iThome.com写道,“黑客们应该感谢保罗,是他创造了机会,让更多的人了解这个特殊群体。”
1998年,保罗开发的互联网应用软件Viaweb被雅虎以上百万美元的价格收购,之后发展为著名的在线商店Yahoostore,“这是一个靠技术发财的时代,而与计算机和互联网相关的技术很容易将某个人变成百万富翁”,保罗亲眼目睹了盖茨、乔布斯、拉里·埃里森等白手起家,“为什么赚大钱的都是程序员和电脑技术专家,而不是工程师、摄影师或是经济分析师?”,保罗将答案归结为“懂得如何制造财富”。这种变化显而易见,打字机被电脑替代、电话被电脑替代、紧接着是电视、DVD、信件、报纸和商店,没有黑客,就没有这一切。“我希望人们真正走进黑客,了解他们的生活、想法和到底是什么源动力在驱动着他们,他们并不是来自外星或地心的怪物,只是他们看世界的角度与你不同”,在接受《连线》采访时,保罗表达了写书的初衷。
在《黑客与艺术家》之前,技术出身的保罗还曾出版过《On Lisp》和《ANSI Common Lisp》两本纯技术书籍,然而真正能让程序员和技术员记住的作品却是一篇名为《A Plan For Spam》(一个关于垃圾程序的阴谋)的文章,在这篇文章中,他展示了一名黑客的正义感和责任感,其中“黑客是拯救世界的英雄”至今让人津津乐道。在他的观点下,黑客与艺术家息息相关,两者具有相同的气质,而不是简单地表达为“黑客的艺术”,因为那根本不能算是真正的艺术。他曾在罗德岛大学学过绘画,并前往佛罗伦萨的Di Belle Arti学院接受最正统的艺术熏陶,体验着那种梦寐以求的黑客与艺术家身份互换的感觉。这段特殊的经历导致了他的新书完全脱离了简单的技术层面描写,而是成为了就像《连线》所说的那样,“他开始像一名诗人那样来表达自己,那种单调和枯燥的技术语言被他隐藏得相当完美”,“一本关于黑客文化的散文集,文字优美而流畅,它会改变你对程序员的看法,让你开始重新思考”,MIT教授罗伯特·莫里斯评价道。
“这是一本了解天才脑子中在想些什么的教科书,仅此一条,就值得你花20美元”,伴随着《连线》主编克里斯·安德森的推荐语,你进入了一个黑客的世界。在这个“书呆子”身上,你会看到许多人的身影,包括保罗自己,他们现在是富翁,但在学校时,他就是一群“书呆子”。“人们通常选择做一个受欢迎的人,而不是一个聪明的人,因为聪明的人不懂得如何与他人一起游戏”,表面上,他完全是以一种黑客式逻辑来为“书呆子”开脱,但实际上,“大部分社会财富都是由这些‘书呆子’制造的”,他们跟你不一样,所以能够创造出不一样的产品。
“黑客的财富观”是书中的精华,并贯穿全书始终,但这里不涉及商业技巧,也没有告诉你如何才能赚到钱,只是告诉你“正确的生活方式”。对于为了钱而生活的黑客们他表示同情,因为“他们是最容易成为百万富翁的一群人”,但这不应该是他们的理想。在谈及软件设计时,他主张“好的设计应该有品位”,也并不否认“好的设计是简单的”、“好的设计是沉淀下来的”,但他更强调“设计的美感”,要以“艺术的眼光来设计自己的产品”,这在他设计Viaweb时得到了验证,“如果你设计的只是一件功能齐备的软件,那它就值几千美元,因为每个黑客都能够做到,也许还更好,但当你的产品是一件艺术品时,它就一定价值不菲,可以挂出来拍卖。”“每个人都应该读读‘创造财富’和‘小心陷阱’这两章,我们每天的生活将因此而发生变化”,Blogger共同创使人埃文·威廉姆斯还特地为此开通了博客。
艺术、文化和技术的混合体让保罗的作品拥有一个更广泛的读者群,但他并不希望《黑客和艺术家》成为人们理解黑客文化的统一标准,“就像艺术性很难有一个明确的定义一样,人们对黑客文化的理解也是千差万别。它(此书)可以让你开始像一个天才一样去生活,像一个百万富翁一样去工作,像一个艺术家一样去思考,或是做一个纯粹的电脑黑客,惟一的目的就是要有所改变”,所以他更不会在乎中国台湾出版的繁体中文版将书名翻译为《骇客与画家》。



