勤学如初起之苗,不见其增,日有所长;
辍学如磨刀之石,不见其损,日有所亏。
--晋·陶渊明

本书是硅谷创业之父Paul Graham 的文集,主要介绍黑客即优秀程序员的爱好和动机,讨论黑客成长、黑客对世界的贡献以及编程语言和黑客工作方法等所有对计算机时代感兴趣的人的一些话题。 书中的内容不但有助于了解计算机编程的本质、互联网行业的规则,还会帮助读者了解我们这个时代,迫使读者独立思考。

黑客信条

  1. 使用计算机以及所有有助于了解这个世界本质的事物都不应该受到任何限制,任何事情都应该亲自尝试
  2. 所有的信息都应该是自由的。
  3. 不信任权威,提倡去中心化
  4. 判断一名黑客的水平应该看他的技术能力,而不是看他的学历,年龄或者地位等其他标准。
  5. 你可以用计算机创造美和艺术
  6. 计算机使生活更美好

为什么书呆子不受欢迎?

表面上的原因是:他们自己不想也不屑于成为受欢迎的人,真实的原因是他们把心思花到其他地方去了,脑子里面想的是别的事情。他们更多的是想要自己变得聪明,而不是变得受欢迎。 就如同科学家心里想得是如何改变世界,最求真理,而不是如何变成超级明星(虽然有的科学家最终变成了超级明星,比如爱因斯坦,牛顿等)。 由于在学习上投入了太多的时间,导致书呆子没有时间琢磨如何去变得受欢迎。

任何一种艺术,不管是否重要,如果你想要在该领域出类拔萃,就必须全身心投入。 格拉德威尔在他《异类》一书中提出了一个1万小时定律,即你想成为某个领域的高手,就需要在这上面花1万小时的时间。

为什么书呆子在学校总是被欺负和歧视?

一方面,青少年在心理上没有摆脱儿童状态,许多人会残忍的对待他人。在一个人产生良知之前,折磨就是一种娱乐。在他们看来,欺负书呆子就像拆了自己的玩具, 或者拔下蜘蛛的一条腿一样:Just for fun. 另一方面,一群小孩需要通过欺负一个书呆子来形成自己的团体和组织,让组织内的人都成为自己人。就如同政客为了让选民忘记国内糟糕的局势,为国家寻找一个敌人, 哪怕这个敌人并不存在,他们也可以创造一个。 其实那些孩子们并不恨书呆子,他们只是需要一个共同的目标。

有时候人们需要通过“鄙视链”来增强组织成员的忠诚度和凝聚力,给组织成员制造一种优越感和选民意识,比如黑帮文化,它们不被主流文化接收,但是它们的组织成员的忠诚度极高(讲义气)

为什么真实社会中书呆子并没有被人欺负?

真实的社会规模超级庞大,使得你所做的每件事情都能产生真正意义上的效果(学校是无法做到这一点的),这个时候找到世界运行的规律, 发现正确的答案就开始变得重要了,而这些正是书呆子的强项(比尔盖茨,扎克伯格等)。 真实社会的超大规模性带来的另一个结果就是,是的原本只是及少数派的书呆子,他们聚集起来也能形成一定的规模,发展自己的社区, 充分发挥自己的(智力)优势。最终使得少数派(2%)的书呆子,战胜了多数派(98%)的普通大众,至少从创造财富的结果上看是如此。

黑客与画家

黑客也是创作者,跟画家,设计师,建筑师一样。黑客需要同时解决 “做什么” 和 “怎么做” 的问题。 黑客需要搞懂 “计算原理” 正如画家需要搞懂颜料的化学成分,建筑师需要清楚每种建筑材料的物理特性一样。 在理论你需要知道如何计算 “时间复杂度” 和 “空间复杂度”。 如果你要写一个解析器,你可能还需要知道 “状态机” 的概念。 黑客的工作不应该是用软件实现某个功能,而是设计软件,不过实际上只有很少一部分黑客懂得如何设计软件。

在中国,很多工程师都被戏称为码农,而他们的工作也被贬低为 “搬砖”。因为他们只能解决 “怎么做” 的问题, 每天重复简单的工作,跟创作根本不搭边。

目前黑客有个尴尬的处境,大学和实验室强迫黑客成为科学家,而企业强迫黑客成为工程师。那么黑客要想做自己喜欢的工作只有一个比较好的办法: 找一份 “白天工作” 养家糊口,然后在找一份 “晚上工作” 来满足自己的爱好。这里的 “白天工作” 和 “晚上工作” 是从音乐家身上来的,音乐家白天教书, 晚上出去出席自己喜欢的演出。对于工程师来说,最好的 “晚上工作” 就是开始或者参与一个自己喜欢开源项目

在学习方法上,黑客和画家也有着惊人的相似之处,画家学习绘画的方法主要是动手去画,而黑客学习编程最好的方法就是动手去写。对于黑客来说,要定期的从头开始,不要长年累月的在一个项目上不断的工作,并且试图把所有最新的想法都以修订的形式包括进去。一幅画是逐步完成的,通常一开始只是一张草图,然后在逐步填入细节。黑客的创作也是如此,你不能指望先有一个完美的设计,然后在动手编程,这样是不现实的。你首先要承认设计的不完美,然后快速把项目的轮廓实现,后面再根据反馈一步一步迭代,最终得到一个更好的结果。

黑客的工作都是从原创开始,然后得到一个优美的结果,而科学家是恰恰相反,他是从已有的优美的结果开始,最终得到原创性。

不能说的话

如果你也犯下和别人一样的错误,那么这个错误不太可能来自你自己。为了防止他人复制,古代地图的工匠会故意在地图上画错一个小地方。如果你的地图也在同样的地方犯了错误,说明不太可能是你自己独立创作的。

巴拉巴西在《成功公式》一书中写到,世俗的成功是由社会决定的,也就是说你的成功是由我们决定,你的时尚也是由别人决定,世俗的成功本质上来自于别人对你的认可。 在黑客看来,流行的观点就像流行的衣服一样,本质上都是你自己看不清自己的样子。

哪些话是不能说的?

(1) 正确的话,或许看起来很可能正确的话,会引发人们思考的话。 假如你说 2 + 2 = 5;或者说纽约市民身高 3 米,这些话最多会被当成是笑话或者是你发疯的证据,但是如果你说地球围绕太阳转,性质就不一样了,因为这些话会引发人们开始思考。

(2) 异端邪说,通常人们会把不一定正确但是充满争议性的言论称之为“异端邪说”。会给他们贴上一些标签,”亵渎神明”,“有伤风化”, “破坏国家利益”

不过随着文明的进步,以前时代的标签已经不可避免的失去了杀伤力,比如在古代,被贴上“不守妇道”的标签是要被浸猪笼的,但是现在最多只能用于讽刺。 其实异端邪说早就潜伏在我们的思维的深处,如果我们暂时关闭意识审查,它们将第一时间浮现出来,正所谓打击即成全,禁忌即诱惑。

(3) 将当代观念和古代不同时期的观念之间 diff 一下,你会发现很多古人认为是可以说的话,我们现在认为是不可以说的。 但是如果某个观点在历史上大部分时候都是不被禁止的,只有我们这个社会才把它列为禁止的言论,那很有可能是我们做错了。

中国古代皇帝的名讳就是一种典型的错误禁忌,皇帝把一些词语(自己的名字)当做了自己的专用名词,不允许他人使用,如果你在给小孩起名, 或者写文章中用了那些词,则会被认为是对皇帝的不敬,要被抓去坐牢甚至砍头,这就是所谓的 “文字狱”。

(4) 寻找那些一本正经的卫道者,看看他们到底在捍卫什么。家长试图给孩子营造一个干净,纯洁的成长环境,他们避免在孩子面前说那些色情,暴力相关的词语(尽管他们在孩子不在场的环境下使用那些词语的频率很高)。但这样一来,孩子眼中的看到的世界就是不真实的虚伪的世界。

(5) 道德禁忌,道德禁忌的制造者通常是那些在权利斗争中稍微占上风的一方。首先这一方有能力推行禁忌,同时又软弱到需要通过禁忌来保护自己的利益。 流行的时尚产生于某个有影响力的人物,他突发奇想,然后大众跟随,纷纷效仿。15世纪晚期欧洲流行一种宽头鞋,原因是因为当时发过皇帝查理八世长了六根脚趾头。而流行的道德观念往往不是偶然产生的,而是被可以制造出来的。

历史上一个国家改朝换代之后,统治者为了向民众证明其权利的正统性,一般会请当地有名望的大儒来为期站台(比如朱棣谋反之后请方孝孺来拥护其正统性,后者不肯,被诛灭十族), 宣扬其统治的正统性,同时贬低对手和反叛组织,以展示自己是天命所归。

如果你的想法是不被社会容忍的,你会怎么办?作者提供的一个策略是:守口如瓶,同时又要做到思想自由。 自由的思考比畅所欲言更重要,没有必要逞口舌之快,行匹夫之勇。我们需要在思考和言论之间画一根清晰的界线,思维可以放飞,对世界万物永远保持质疑的态度。 但是如果你对所有人都守口如瓶的话 ,你从此将无法享受讨论带来的好处了。所以,如果可能的话,你最好找一些信得过的知己,只与他们畅所欲言,无所不谈, 这样不仅能够获得新观点,还能获得新朋友。因为能够在一起讨论“异端邪说”并且不会为之气急败坏的人,才是你最因该认识的朋友。

这一点我们也许可以学习曾国藩,在内心的世界他是一个自律清廉,坚持自己崇高的理想,但是在真实世界,他又不是一个愤世嫉俗的人,为了能够平息转乱,推动国家进步,他甚至不惜去收受贿赂,只为跟那些贪官污吏达成协作,所以他能成为一个既能头顶青天,也能脚踏实地的圣人。

如何创造财富

如果你想致富,应该怎么做?作者认为最好的办法就是自己创业,或者加入创业公司。 任何公司的成功历程中,运气都是一个很大的随机因素。 即使你没有钱,你也能拥有财富。 交换媒介的优点是,它使得交易可以进行下去。缺点是,他往往模糊了交易的实质。

人们觉得做生意就是为了挣钱,但是金钱其实只是一种中介,让大家可以更方便地获得自己想要的东西。大多数生意的目的是为了创造财富,做出人们真正需要的东西。 金钱不是财富,而只是我们用来转移财富所有权的东西。

你向下沉沦或者向上奋进都取决于你自己,不能把原因推给外界。 一个大学毕业生总是想“我需要一份工作”,别人也是这么对他说的。好像变成某个组织的成员是一件多么重要的事情。 更直接的表达方式应该是“你需要去做一些人们需要的东西”。即使不加入公司,你也能做到。

公司不过是一群人在一起工作,共同做出某种人们需要的东西。真正重要的是做出人们需要的东西,而不是加入某个公司。 大公司最大的困扰就是无法准确测量每个员工的贡献。要致富你需要两样东西:可测量性和可放大性。 你的职位产生的业绩应该是可测量的,否则你做得更多,也不会得到更多的报酬。此外你还必须有可放大性, 也就是说你做出的决定能够产生巨大的效应有一个办法可以发现是否存在可放大性,那就是看失败的可能性。因为收入和风险是对称的。 如果你有一个令你感到安全的工作,你是不会致富的,因为没有危险,就几乎等于没有可放大性。

打破常规,拒绝平庸

黑客成功的秘诀在于打破常规,这也是大多数美国人的特性,硅谷诞生于美国就是一个很好的例子,硅谷成功的一个秘诀就是对叛逆和失败者的宽容。 大公司是可以可以相互模仿的,但是创业公司不行,如果没有杀手锏级别的创新,就别创业了,模仿者在硅谷是没有出路的。 用作者的话来说就是“别忘了你的对手和你一样,可以使用任何语言编写互联网软件”。

这一点跟黑客的性格极为相似,在黑客眼里,只要失败者才会去采用所谓的“业内最佳实践”的方案。所谓的“业内标准”只不过是一种随大流,变相推脱责任的做法。 因为如果到最后即使效果不好,决策者也会以“业内标准”来否认自己决策失败的事实。

什么是好的设计

研究必须是新的,而设计必须是好的。

一个优秀的黑客不仅应该技术过硬,还应当能够使用技术做出优美的产品。用户不一定知道什么是美,但是他们会选择。 这有点像大法官斯图尔特说的那样:”我不知道什么是色情 图片,但是只要让我看一眼,我就知道那是不是色情图片(I know it, when i see it.)”

一个好的设计应该具备以下特点:

  1. 好设计是简单的设计。在数学中,它表示简短的证明往往是更好的证明。简单就是事物本来的样子,装饰反而意味着更多的工作。
  2. 好设计是永不过时的设计。只要没有错误,每一个数学证明都是永不过时的。以永不过时为目标是帮助自己找到最佳答案的方法,如果你不愿意别人的答案取代你的答案, 你就只好自己做出最佳答案。
  3. 好设计解决主要问题的设计。
  4. 好设计是启发性的设计。英国女作家简·奥斯汀的作品几乎不带有任何描述,她不告诉读者每件东西看上去是什么样子,只是把故事讲得非常生动,让读者自己把一切都想象出来。 同样,绘画作品也分为描述性的绘画和启发性绘画,后者往往比前者更引人入胜。每个人看到《蒙拉丽莎》都有自己的理解。
  5. 好设计是通常有点趣味性的设计。
  6. 好设计是艰苦的设计。
  7. 好设计是看似容易的设计。优秀的运动员比赛时,让人觉得它轻轻松松就获胜了,优秀的设计师也是如此,他们的工作看上去很容易。 一篇好的文章需要做到达意清晰,通俗易懂,所以写长文章容易,写短文章难,因为多了一个反复提炼和删减字句的过程。在大多数领域,看上去容易的事情背后都需要有大量的刻意练习。 正如卖油翁说的那样:”我亦无他,唯手熟尔”
  8. 好设计是模仿大自然的设计。大自然是最好的设计师。大自然在长期的演化过程中已经解决了很多设计问题,不好的设计基本都被淘汰了。所以,如果你的设计与大自然很接近, 那么它基本上不会很差。还有,如果你模仿的是大自然,那么几乎不会有人说你是剽窃。
  9. 好设计是一种再设计。很少有人能够一次就把事情做对。据说计算机科学家高德纳是这些少数人之一,他写的程序几乎几乎没有 Bug。
  10. 好设计是能够复制的设计。通常来说,刚入门的新手会不自觉的模仿别人,逐渐熟练,融会贯通之后才会开始创作原创作品。对于初学者来说,把事情做对比原创更重要。 等到你逐渐对一件事情差生热情的时候,就不会满足于模仿了,你的品味就进入了第二阶段,开始自觉的进行原创。
  11. 好设计几乎成批出现的。人类大量伟大的艺术设计都出现在 15 世纪的欧洲文艺复兴,而那个时候大量的艺术家又扎堆出现在佛罗伦萨。 物理学家大师辈出的时代是 19 世纪,《索尔维会议》照片中的大师,几乎一手构建了现代物理学的大厦。茨威格的《人类群星闪耀时》描述的也是这样现象: 人类的优秀设计,重大发现都是扎堆出现的。
  12. 好设计常常是大胆的设计。在任何一段历史中,人们都会把某些荒谬的东西当做正确的,并且深信不疑,以至于你一旦出言质疑,就有被排挤或者被暴力伤害的危险。 文艺复兴时期的艺术作品在当时都被认为极其大逆不道。

只有对一个非常熟悉,你才可能发现哪些地方可以动手改进。你必须锻炼自己,只有在成为某个领域的专家之后,你才会听到心理有个细微的声音说: “这样解决太糟糕了!一定有更好的选择。” 不要忽视这种声音,要培育它们。优秀的作品的秘诀就是:非常严格的品味,加上实现这种品味的能力

总结

本书的作者是想要公众了解,黑客并不神秘,更不是我们通常想象的那样,是一群整天呆在黑乎乎的房间里攻击别人计算机的技术怪人,他们的眼睛和屏幕上的代码一样闪闪发光。 黑客只是怀有一门特殊手艺,有创造天赋的普通人。他们与画家,建筑师,雕塑家没有什么两样。编程其实也是一种艺术创作,黑客就是艺术家,开发软件与绘画,设计建筑没有本质的区别。 这里的黑客其实已经不是我们通常狭隘理解的计算机黑客了,我把它理解为 “生活黑客”,他们只是一群 破解了生活系统的人

生活黑客具备以下四点精神特质:

  1. 个人主义。我自己决定干什么和怎么干,而不是随大流。
  2. 理性。理性原理,推崇技术,不急不躁不上情绪,想方设法解决问题,从不不抱怨。
  3. 实验。真正的黑客都爱折腾,他们不断刺激和试探系统的边界,探索背后的规则。
  4. 系统。黑客把一些事物,包括自己的身体,都看成是系统。系统是模块化的,你可以把各个部分拆分再重组。系统是按照算法运行的,你可以找到这个算法。 系统是可以优化的,而且是可以破解的。

正所谓:君子生非异也,善假于物也 黑客是对工具的使用能够到达极致的人,但是我觉得你首先得是个“君子”更重要一些, 因为如果你身怀利器,你就需要知道,善恶只有一线之隔。所以,我觉得如果想要成为一个真正的黑客, 你至少要做到雨果在《悲惨世界》里面所写的那样“无论顺境,逆境,或者失足 或者犯错误,你首先得成为一个正直的人”