Hackers & Painters
作者: 保羅·格雷厄姆 (Paul Graham) 译: 阮一峰
-
出于兴趣而解决某个难题,不管它有没有用,这就是黑客。
-
黑客伦理 [hacker ethic]
- 使用计算机以及所有有助于了解这个世界本质的事物都不应该受到任何限制。任何事情都应该亲手尝试。
Access to computers-and anything that might teach you something about the way the world works-should be unlimited and total. Always yield to the Hands-On Imperative! - 信息应该全部免费。
All information should be free. - 不信任权威,提倡去中心化。
Mistrust Authority-Promote Decentralization. - 判断一名黑客的水平应该看他的技术能力,而不是看他的学历、年龄或地位等其他标准。
Hackers should be judged by their hacking, not bogus criteria such as degrees, age, race, or position. - 你可以用计算机创造美和艺术。
You can create art and beauty on a computer. - 计算机使生活更美好。
Computers can change your life for the better.
根据这六条“黑客伦理”,黑客价值观的核心原则可以概括成这样几点:分享、开放、民主、计算机的自由使用、进步。
- 使用计算机以及所有有助于了解这个世界本质的事物都不应该受到任何限制。任何事情都应该亲手尝试。
-
计算机程序只是文本而已。你选择什么语言,决定了你能说什么话。编程语言就是程序员的思维方式。
- 阿尔伯蒂有一句名言:“任何一种艺术,不管是否重要,如果你想要在该领域出 类拔萃,就必须全身心投入。”
黑客与画家
-
黑客搞懂“计算理论” [theory of computation] 的必要性,与画家搞懂颜料化学成分的必要性差不多大。一般来说,在理论上,你需要知道如何计算“时间复杂度”和“空间复杂度” [time and space complexity];如果你要写一个解释器,可能还需要知道状态机 [state machine] 的概念;除此以外,并不需要知道特别多的理论。这些可比画家必须记住的颜料成分少很多。
-
因为如果你不爱一件事,你不可能把它做得真正优秀,要是你很热爱编程,你就不可避免地会开发你自己的项目。
-
黑客就像画家,工作起来是有心理周期的。有时候,你有了一个令人兴奋的新项目,你会愿意为它一天工作 16 个小时。等过了这一阵,你又会觉得百无聊赖,对所有事情都提不起兴趣。
-
对于编程,这实际上意味着你可以把 bug 留到以后解决。消灭 bug 对我来说属于轻松的工作,只有在这个时候,编程才变得直接和机械,接近社会大众想象中的编程的样子。消灭 bug 的过程就像解一道数学题,已知许许多多的约束条件,你只要根据条件对方程求解就可以了。你的程序应该能产生 x 结果,但是却产生了 y 结果。哪里出错了?你知道自己最后肯定能够解决这个问题,所以做起来很轻松,就好像刷墙一样,接近于休闲了。
-
“程序写出来是为了让人看懂它的算法,附带告诉计算机如何执行。”一种好的编程语言应该比英语更容易解释软件。只有在那些不太成熟、容易出现问题的地方,你才应该加上注释,提 醒读者注意那里,就好像公路上只有在急转弯处才会出现警示标志一样。
不能说的话
-
大多数成年人故意让孩子对世界有一个错误的认识。最鲜明的例子之一就是圣诞老人。我们觉得,小孩子相信圣诞老人,真是太可爱了。我本人其实也是这样想。但是,扪心自问,我们向孩子灌输圣诞老人的神话,到底是为了孩子,还是为了我们自己?
我在这里不讨论这样做是否正确。家长想要塑造孩子的心灵,把他们装扮成可爱的小宝宝,这可能是无法避免的。我也可能这样做。但是,就本文而言,这样做会产生一个重要的结果,那就是孩子“被迫”在一个精心设计的环境中长大。他的头脑或多或少是纯洁无暇的,一点也不知道那些“不能说的话”,从来没有被真实的社会生活“污染”过。孩子眼里的世界是不真实的,是一个被灌输进他们头脑的假想世界。将来当孩子长大以后接触社会,就会发现小时候以为真实的事情,在现实世界中是荒唐可笑的。
-
那些团体神经越紧张,它们所产生的禁止力量就越大。伽利略因为宣布日心说而遭到教廷的审判,这件事讽刺的地方在于,他只是在宣传哥白尼的观点,而后者却安然无恙。事实上,哥白尼不仅不反对教廷,还是一个虔诚的天主教教士,他把自己的著作献给教皇。不幸的是,伽利略正赶上教廷内部反对派上台,宗教改革制度压制,任何非正统的思想遭受到前所未有的严厉控制和禁止。
为了在全社会制造出一个禁忌,负责实施的团体必定既不是特别强大也不是特别弱小。如果一个团体强大到无 比自信,它根本不会在乎别人的抨击。美国人或者英国人对国外媒体的诋毁就毫不在意。但是一个团体太弱小,就会无力推行禁忌。有一种行为怪癖叫做“嗜粪症” [coprophila],它的患者人数以及影响势力眼下似乎就不太强大,无法把自己的观点推广给其他人。
我猜想,道德禁忌的最大制造者是那些权利斗争中略占上风的一方。你会发现,这一方有实力推行禁忌,同时又软弱到需要用禁忌来保护自己的利益。
大多数的斗争,不管它们实际上争的是什么,都会以思想斗争的形式表现出来。
为什么这样做
-
有人可能会问,为什么要去找出“不能说的话”?为什么要故意打探那些龌龊的,见不得人的思想观点?你明知那里有挡住去路的石头,为什么还要把它们翻过来看个究竟呢?
首先,我这样做与小孩子翻石头是出于同样的原因:纯粹的好奇心。我对任何被禁止的东西都有特别强烈的好奇心。我要亲眼看一下,然后自己做决定。
其次,我这样做是因为我不喜欢犯错。如果像其他时代一样,那些我们自以为正确的事情将来会被证明是荒唐可笑的,我希望自己能够知道是哪些事情,这样可以使我不会上当。
再次,我这样做,是因为这是很好的脑力训练。
想要做出优秀作品,你需要一个什么问题都能思考的大脑。尤其是那些似乎不应该思考的问题,你的大脑也要养成思考它们的习惯。
优秀作品往往来自于其他人忽视的想法,而最被忽视的想法就是那些被禁止的思想观点。
-
“守口如瓶”的真正缺点在于,你从此无法享受讨论带来的好处了,讨论一个观点会产生更多的观点,不讨论就什么观点也没有。所以,如果可能的话,你最好找一些信得过的知己,只与他们畅所欲言、无所不谈。这样不仅可以获得新观点,还可以用来选择朋友。能够一起谈论“异端邪说”并且不会因此气急败坏的人,就是你最应该认识的朋友。
-
你不仅要远距离观察人群,更要远距离观察你自己。顺便提一句,这可不是激进的想法。儿童和成年人的主要差别就在这里。儿童精疲力竭时,可能会大发脾气,因为他不知道为了什么;成年人则会了解是个人的身体状况问题,与外界无关,说一句“没关系,我只是累了”。我想,通过类似的机制,一个人完全可以识别和抵制外界流行的道德观念,把它们与内心世界相分离。
如果你想要清晰的思考,就必须远离人群。但是走的越远,你的处境就会越困难,受到的阻力也会越大,因为你没有迎合社会习俗,而是一步步地与它背道而驰。小时候,每个人都会鼓励你不断成长,变成一个心智成熟、不再耍小孩脾气的人。但是,很少有人鼓励你继续成长,变成一个怀疑和抵制社会错误潮流的人。
如果自己就是潮水的一部分,怎么能看见潮流的方向呢?你只能永远保持质疑。问自己,什么话是我不能说的?为什么?
另一条路
-
如果软件的新版本要等一年后才能发布,我就会把大部分新构思束之高阁,至少过上一段时间再来考虑。但是,构思这种东西有一个特点,那就是它会导致更多的构思。你有没有注意过,坐下来写东西的时 候,一半的构思是写作时产生的?软件也是这样。实现某个构思,会带来更多的构思。所以,将一个构思束之高阁,不仅意味着延迟它的实现,还意味着延迟所有在实现过程中激发的构思。事实上,将一个构思束之高阁,甚至会限制新构思的产生。因为你看一眼堆放在一边、还没实现的构思,就会想“我已经为下一个版本准备了很多新东西要实现了”,你就懒得再去思考更多的新功能了。
-
现在,创业公司有更多的理由选择互联网软件创业,因为开发桌面软件越来越乏味了。如果你现在开发桌面软件,就不得不接受微软公司的授权条款,调用它的 API,为它那个 bug 百出的操作系统伤透脑筋。历尽千辛万苦,你最终写出了一个受大众欢迎的软件,这时你可能会发现,你所做的一切其实只是在为微软公司做市场调查。
-
你能够做到这一点,意味着竞争者也能做到这一点,所以长时间工作变成了一种必须,不得不如此。
因为你能做到,所以你必须做到
。这简直就是逆向的帕金森定律 -
不少公司都很想知道,什么事情可以外包,什么事情不可以外包,一个可能的答案是,公司内部所有不直接感受的竞争压力的部门都应该外包出去,让它们暴露在竞争压力之下。(我这里所说的“外包”,指的是聘请另一家公司来执行,而不是指把业务部门转移到海外。)
-
由于个人经历的关系,特雷弗·布莱克韦尔对这一点的认识可能比其他任何人都深刻。他写到:“我会进一步说,由于互联网软件的程序员非常辛苦,所以会使得经济优势根本性地从大公司向创业公司转移。互联网软件要求的那种工作强度和付出, 只有当公司是其本人所有时,程序员才愿意提供。软件公司可以雇用到能干的人,让他们去干轻松的事情,也可以雇到不能干的人,让他们去干艰苦的事情。但是无法雇到非常能干的人,让他们去干非常艰苦的事情。因为互联网软件的创业不需要太多的资本,所以大公司可以与创业公司竞争的优势就所剩无几了。”
如何创造财富
-
交换媒介的优点是,它使得交易可以进行下去。缺点是,它往往模糊了交易的实质。人们觉得做生意就是为了挣钱,但是金钱其实只是一种中介,让大家可以更方便地获得自己想要的东西。大多数生意的目的是为了创造财富,做出人们真正需要的东西。
-
金钱不是财富,而只是我们用来转移财富所有权的的东西。
-
公司就是许多人聚在一起创造财富的地方,能够制造更多人们需要的东西。
-
我们这个世界,你向下沉沦或者向上奋进都取决于你自己,不能把原因推给外界。
-
一个大学毕业生总是想“我需要一份工作”,别人也是这么对他说的,好像变成某个组织的成员是一件多么重要的事情。更直接的表达方式应该是“你需要去做一些人们需要的东西”。即使不加入公司,你也能做到。公司不过是一群人在一起工作,共同做出某种人们需要的东西。真正重要的是做出人们需要的东西,而不是加入某个公司。
对于大多数人来说,最好的选择可能是为某个现存的公司打工。但是,理解这种行为的真正含义对你没有什么坏处。工作就是在一个组织中,与许多人共同合作,做出某种人们需要的东西。
-
要致富,你需要两样东西:
可测量性
和可放大性
。你的职位产生的业绩,应该是可测量的,否则你做的再多,也不会得到更多的报酬。此外,你还必须有可放大性,也就是说你做出的决定能够产生巨大的效应。 -
如果你有一个令你感到安全的工作,你是不会致富的,因为没有危险,就几乎等于没有可放大性。
-
乔布斯曾经说过,创业的成败取决于最早加入公司的那十个人。我基本同意这个观点,虽然我觉得真正决定成败的其实 只是前五人。小团队的优势不在于它本身的小,而在于你可以选择成员。我们不需要小村庄的那种“小 ”,而需要全明星第一阵容的那种“小”。
-
什么是技术?技术就是某种手段,就是我们做事的方式。如果你发现了一种做事的新方式,它的经济价值就取决于有多人使用这种新方式。技术就是钓鱼的鱼竿,而不是那条鱼。
-
只要懂得藏富于民,国家就会变得强大。让书呆子保住他们的血汗钱,你就会无敌于天下。
-
“财富”这个词有很多意思,有些并不是指物质财富。我不想做深入讨论,研究到底什么才是真正的财富。我这里指的只是一种特定的技术层面上的“财富” ——人们用金钱向你交换东西。这是一种很有趣、很值得研究的财富,因为它使得你免于饥饿,而且人们是否用金钱交换这种财富取决于他们,而不是取决于你。
关注贫富分化
-
事实上,财富和金钱是两个概念。金钱只是用来交 易财富的一种手段
,财富才是有价值的东西,我们购买的商品和服务都属于财富。你到 海外旅游时,不用看当地人的银行账户就会知道你来到的是富国还是穷国。你只要看看他们的财富就行了:建筑、街道、服装、健康状况等。 -
技术的发展使得通过创造而积累财富的速度第一次有可能超过通过偷窃而积累财富的速度。19 世纪典型的富人不是宫廷朝臣,而是实业家。
设计者的品味
-
对于建筑师和设计者,它意味着美依赖于一些精心选择的结构性元素,而不是依赖于表面装饰品的堆砌。(装饰品本身并不是坏事,只有它被用来掩盖结构的苍白时,才变成了一件坏事。)
-
如果解决方法是丑陋的,那就肯定还有更好的解决方法,只是还没有发现而已。
-
白描其实是最难画的视觉媒介,因为它们要求近乎完美的再现。用数学语言说,线条属于闭合解 [closed-form-solution],水平不够的艺术家没有办法直接解决问题,只能通过不断逼近来求解。
-
人们有时会说自己有了“状态”,我的理解是,他们这时可以控制自己的脊髓。脊髓是更本能的反应,面对难题时,它能释放你的直觉。
-
好设计是模仿大自然的设计。我不是说模仿大自然这种行为本身有多么好,而是说大自然在长期的演化中已经解决了很多设计问题。所以,如果你的设计与大自然很接近,那么它基本上不会很差。