《黑客与画家》一书是硅谷创业之父Paul Graham的文集,中文版由阮一峰翻译。

Paul Graham:1964年出生,哈佛大学计算机博士。1995年,创办世界上第一个互联网应用程序Viaweb。1998年,Yahoo以5000万美元收购。

Paul Graham 和 Y Combinator:2005至今,Paul Graham创建的YC,已经帮助建立了多达200家创业公司,改写了创业家和硅谷投资者之间的旧秩序,塑造了创建技术公司的新范式。

这本书前半部分主要讲了黑客是如何成长的,以及他们看待世界的一些观点,中间部分讲的则是黑客怎样做出自己的成果,这些成果又是怎样对全世界产生了影响,最后讲了黑客的工具(编程语言)和工作方法,这是黑客文化的基础和核心。

读这本书会有许多与以前的想法完全不同的观点产生,这让我想起了柴静《看见》一书中的外国朋友卢安克,他的教育方法就与中国现有的教育方式完全不同,了解了卢安克的教育理念后,就会不得不去思考当今中国的教育方式,同样的,读了这本书后,会不得不去反思自己的世界观、成长史、编程思想等,会更有可能的去了解黑客们的想法。

1

小孩子说脏话就是一个很好的切入点,你可以从这个小小的侧面来思考这个问题。我的许多朋友现在都开始为人父母了。他们一个个都变得非常小心,不在孩子面前使用“fuck”、“shit”这样的脏话,以免孩子学会这些词。但是,这些词是日常语言的一部分,成年人一天到晚都在用。所以,孩子从家长那里得到一个错误的印象,以为它们是没人用的。为什么家长要这样伪装呢?因为他们觉得孩子不应该知道成年人语言的所有内容,只需知道一部分适合儿童的词就行了。我们喜欢孩子们看上去天真无邪。「很快,孩子就会从朋友那里知道这些词。但是他们明白,不能在大人面前使用。所以,没过多久,一切就变得有点像讽刺剧了。家长在外使用这些词,回家后就不用。孩子在外也使用这些词,回家后也不用。双方见面,就像演戏一样。」

2

我在这里不讨论这样做是否正确。家长想要塑造孩子的心灵,把他们装扮成可爱的小宝宝,这可能是无法避免的。我也可能这样做。但是,就本文而言,这样做会产生一个重要结果,那就是孩子“被迫”在一个精心设计的环境中长大。他的头脑或多或少是纯洁无暇的,一点也不知道那些“不能说的话”,从来没有被真实的社会生活“污染”过。孩子眼里的世界是不真实的,是一个被灌输进他们头脑的假想世界。将来当孩子长大以后接触社会,就会发现小时候以为真实的事情,在现实世界中是荒唐可笑的。

3

虽然,流行的思想观点与流行的服饰产生方式不尽相同,但是,它们的传播途径却很相似。第一批的接受者总是带有很强的抱负心,他们有自觉的精英意识,想把自己与普通人区分开来。当流行趋势确立以后,第二批接受者就加入进来了,人数比上一批庞大得多,恐惧心在背后驱使着他们。他们接受流行,不是因为想要与众不同,而是因为害怕与众不同。

4

你的策略,简单说,就是不赞同这个时代的任何一种歇斯底里,但是又不明确告诉别人到底不赞同哪一种歇斯底里。狂热分子试图引诱你说出来真心话,但是你可以不回答。如杲他们不放手,一定要你回答“到底是赞成还是反对我们”,你不妨以不变应万变:“我既不反对也不赞成。”   
不过,更好的回答是“我还没想好”。哈佛大学校长拉里·撒墨尔斯(Larry Summers)被逼表态时,就是这样说的。他后来解释说:“别想在我身上做石蕊试验。”人们喜欢讨论的许多问题实际上都是很复杂的,马上说出你的想法对你并没有什么好处。

5

如果你想要清晰地思考,就必须远离人群。但是走得越远,你的处境就会越困难,受到的阻力也会越大,因为你没有迎合社会习俗,而是一步步地与它背道而驰。小时候,每个人都会鼓励你不断成长,变成一个心智成熟、不再耍小孩子脾气的人。但是,很少有人鼓励你继续成长,变成一个怀疑和抵制社会错误潮流的人。   
如果自己就是潮水的一部分,怎么能看见潮流的方向呢?你只能永远保持质疑。问自己,什么话是我不能说的?为什么?

6

公民自由并不仅仅是社会制度的装饰品,或者一种很古老的传统。公民自由使得国家富强。如果将人均国民生产总值与公民自由的关系画成图,你会发现它们是很清楚的正相关关系。公民自由真的是国家富强的原因,而不是结果吗?我认为是的。在我看来,一个人们拥有言论自由和行动自由的社会,往往最有可能采纳最优方案,而不是采纳最有权势的人提出的方案。专制国家会变成腐败国家,腐败国家会变成贫穷国家,贫穷国家会变成弱小国家。经济学里有一条拉弗曲线(Laffer curve),认为随着税率的上升,税收收入会先增加后减少。我认为政府的力量也是如此,随着对公民自由的限制不断上升,政府的力量会先增加后减小。至少现在看来,我们的政府很可能蠢到会真的把这个实验付诸实施,亲自验证一下这个观点。但是,税率提高了还能再降下来,而一旦这个实验铸成大错,就悔之晚矣,因为极权主义制度只要形成了,就很难废除。

7

Hotmail于1996年7月4日上线,是第一批浏览器界面的电子邮件服务提供商。它首创了用户可以在邮件中使用HTML标记语言(因此Hotmail的原始写法是HoTMaiL),并且每位用户有2MB的免费存储空间。

8

如果你想把钱藏在安全的地方,请问你是选择放在家中床垫下面,还是放在银行?这个比喻对服务器管理的方方面面都适用,不仅是安全性,还包括正常运行时间、带宽、负载管理、备份等,都是我们占优。只有把这些事情都做对,我们才能保证自己生存下去。服务器管理对我们是生死攸关的大事,玩具制造商如何看待对人体不安全的玩具,或者食品制造商如何看待感染了沙门氏菌的食品,我们就如何看待有缺陷的服务器管理。

9

你可能会问,如果Mac电脑真那么出色,为什么后来它的市场表现不佳?还是那个老生常谈的原因:成本太高。微软公司把所有精力都集中在软件上面,所以很多厂商只要专攻硬件就可以了,把硬件成本降了下来。单单是微软的软件或者第三方厂商的硬件都不足以赢得市场优势,但是它们结合起来,就在个人电脑出现后一段关键时期中主导了市场。苹果公司同时做软件和硬件,所以成本上没有优势。(但是,苹果公司还没有失败,如果它能把iPod升级成手机,并且将网络浏览器包括在其中,那么微软公司就有大麻烦了。)(译者注:这段话写于2001年9月,苹果公司的iPhone手机已于2007年6月上市。)

10

级观创业公司的历史,你会发现它们变得越来越小,越来越快,越来越不像正规的企业。1960年,所谓“开发软件”就是IBM公司的那种形式,满满一屋子的人,他们都戴着牛角质眼镜架,系着细细黑黑的领带,勤勉地埋头写代码,每人每天可以完成十行。到了1980年,“开发软件”变成了8到10人的一个小组,他们穿着牛仔裤上班,在VT100终端上打字。现在,“开发软件”则是两个人坐在客厅里,一人捧一台笔记本电脑。(牛仔裤如今已经不能算是不正式的服装了。)

11

帕金森定律(Parkinson's Law)是英国作家诺斯科特·帕金森(Cyril Northcote Parkinson,1909—1993)在1955~1958年的一组系列文章的总称。在这些文章中,帕金森讽刺了英国的官僚主义,总结了许多常见的官僚主义的表现形式。“帕金森定律”后来成为这些表现形式的代名词,它包括很多内容,其中有一条就是“因为你必须做到,所以你能够做到”。因此,本文作者称“因为你能够做到,所以你必须做到”是逆向的帕金森定律。

12

Ed Roberts(1941—2010),美国工程师。1970年创立MITS公司,1975年设计出了历史性的产品——微型计算机Altair8800,开创了个人电脑的时代,后来被称为“个人电脑之父”。1977年,他卖掉了MITS公司,来到佐治亚州乡下研究医学,最后成为小镇上的医生。

13

1975年一月号的Popular Electronics杂志的封面报道就是Altair8800型计算机,封面上的文字是:“突破性的项目。世界上第一台可与商用型号媲美的微型计算机。Altair8800,为您节省超过1000美元。”这是历史上第一篇对微型计算机的新闻报道,影响极大,标志个人电脑时代的来临。当时,哈佛大学二年级的学生比尔·盖茨就是因为看到了这篇报道,才决定和保罗·艾伦一起为Altair开发Basic语言的解释器,并于1975年7月成立微软公司,因此这篇报道直接促成了微软公司的成立。

14

17世纪的英国很像今天的第三世界,当官是公认的发财职业。那个年代要赚大钱仍然主要通过贪污,而不是经商。到了19世纪,情况就变了,虽然存在大量贪污受贿(今天依然如此),但是政府遂渐被一些将良心和名誉看得比金钱更重要的人所控制。技术的发展使得通过创造而积累财富的速度第一次有可能超过通过偷窃而积累财富的速度。19世纪典型的富人不是宫廷朝臣,而是实业家。

15

技术的发展加大了贫富差距,这是不是一个社会问题?好像没有那么严重。技术在加大收入差距的同时,缩小了大部分的其他差距。

16

好设计是简单的设计。
好设计是永不过时的设计。
好设计是解决主要问题的设计。
好设计是启发性的设计。
好设计通常是有点趣味性的设计。
好设计是艰苦的设计。
好设计是看似容易的设计。
好设计是对称的设计。
好设计是模仿大自然的设计。
好设计是一种再设计。
好设计是能够复制的设计。
好设计常常是奇特的设计。
好设计是成批出现的。
好设计常常是大胆的设计。

17

真实情况是,如果开发“功能”非常艰难,那么“形式”将不得不全部都由“功能”决定,因为没有多余的精力再来单独开发“形式”了。人们常常觉得野生动物非常优美,原因就是它们的生活非常艰苦,在外形上不可能有多余的部分了。

18

大多数操作系统都是用C语言写的,这并非偶然。不过,硬件的运行速度越来越快了,所以使用C这样的低层次语言开发应用程序的必要性正在不断减少,但是大家似乎还是要求操作系统越快越好。(另一种可能是,人们还是希望“缓存区溢出攻击”继续存在下去,以便让大家时时保持警惕)

19

有意思的是,劫持飞机与“缓冲区溢出攻击”有类似之处。在一般飞机上,乘客区与驾驶舱是相通的,就好像C语言中数据区与代码区是相邻的一样。劫机者一且进入驾驶舱,实际上就相当于把自己从数据提升为代码。

20

在英语中,via是一个介词,意为“经过……”

21

我们知道其他人都用C++或Perl开发软件, 但是我们不觉得这说明了什么问题。如果别人用什么技术,你也用什么技术,那么你大概只能使用Windows了。选择使用哪一种技术的时候,你不能考虑别人的做法,只能考虑什么样的技术能最好地完成工作。

22

在Viaweb创业期间,我读过大量竞争对手的招聘职位。差不多每个月都有一个新的竞争对手浮出水面。我首先会看他们的产品有没有一个试用版,然后就去找他们的招聘职位。这样过了几年,我就知道哪些公司值得关注,啷些公司不用在意。有些公司的职位描述使用了大量的IT词汇,这样的内容越多,这家公司就越不构成威胁。最不用担心的竞争对手就是那些要求应聘者具有Oracle数据库经验的公司,你永远不必担心他们。如果是招聘C++或Java程序员的公司,对你也不会构成威胁。如果他们招聘Perl或Python程序员,就稍微有点威胁了。至少这听起来像一家技术公司,并且由黑客控制。如果我有幸见到一家招聘Lisp黑客的公司,就会真的感到如临大敌。

23

在面向对象编程的世界中,我们大量听到“模式”(pattern)这个词,我觉得那些“模式”就是现实中的因素(c),也就是人肉编译器。当我在自己的程序中发现用到了模式,我觉得这就表明某个地方出错了。程序的形式应该仅仅反映它所要解决的问题。代码中其他任何外加的形式都是一个信号,(至少对我来说)表明我对问题的抽象还不够深,也经常提醒我,自己正在手工完成的事情,本应该写代码通过宏的扩展自动实现。

24

一种真正优秀的编程语言应该既整洁又混乱。“整洁”的意思是设计得很清楚,内核由数量不多的运算符构成,这些运算符易于理解,每一个都有很完整的独立用途。“混乱”的意思是它允许黑客以自己的方式使用。C语言就是这样的例子,早期的Lisp语言也是如此。真正的黑客语言总是稍微带一点放纵不羁、不服管敎的个性。

25

帕金森定律(Parkinson's Law)的一种原始表达形式是“工作总是到最后一刻才会完成”,后来引申到计算机领域就变成了“数据总是会填满所有空间”,更一般性的总结则是“对一种资源的需求总是会消耗光这种资源的所有供应”。

26

有个披黑大衣的人从边上过来,当着镜头对着他说:“说话小心点.工厂可给你钱了。”年轻人说:“那点钱能管什么?你病了谁给你治?”吵起来了。黑大衣是工厂的人,我问他:“你不怕住在这儿的后果?”他说:“习惯了就行了,人的进化能力很强的。”我以为他开玩笑,看了看脸,他是认真的。


blog comments powered by Disqus

Published

03 March 2013

Category

book