《黑客与画家》读书笔记

Paul Graham,《黑客与画家》的作者,在阅读这一本书时,我没有像以前一样,跳过书籍的前言部分直接进入正文,而是饶有兴致地阅读起了作者的生平介绍。

Paul Graham,从小热爱编程,大学期间主修哲学,研究生专攻计算机,之后投身于绘画行业,迫于生计重操程序员旧业,在20世纪90年代互联网掀起浪潮之际,成功创业,后来将创业项目卖给了雅虎,并成为雅虎的员工,因不满足大公司的官僚制度,又建立了创业指导的公司,成为了硅谷的创业教父。

放到现在,很难想象一个程序员能够有如此丰富精彩的十几年,能够涉足哲学、绘画、艺术、创业这些跨度相当大的领域,而也正是这十几年的经历,使得《黑客与画家》不仅仅是一本面向程序员的经验之作,更是一本面向普通读者的读物。《黑客与画家》不仅讲述了自己的生平,而且包含了作者对中学校园现象、社会财富问题的哲学思辨,此外,还花了相当的笔墨,发掘绘画与编程的共通之处,探讨好的设计应该是怎样的。在最后的几章中,着重推荐了 Lisp 这一编程语言的优越。

因此,本篇读书笔记分三个方面来记录《黑客与画家》

  • 哲学:Paul Graham 对校园欺凌现象的深刻讨论,对社会财富问题的探究
  • 绘画与编程:绘画艺术对 Paul Graham 产生了深刻的影响,导致了作者在今后的程序员生涯中将艺术与编程结合
  • 创业: 最为互联网时代最早一批的创业成功者,Paul Graham 分享了许多创业的经验,并且之后的雅虎员工生涯让他意识到,创业公司的工作才更适合他......

哲学

为什么书呆子不受欢迎

难怪聪明的小孩读中学时往往是不快乐的。他们有其他的兴趣,没有多余的精力用来使自己更受欢迎。你在其他地方有所得,就会在这个地方有所失。不受欢迎使得书呆子成为全校攻击的目标。令人惊奇的是,这种噩梦般的情景并非出自任何有预谋的恶意,而仅仅因为这个特殊的环境。

作者在这一章中,深刻地讨论了欺凌“书呆子”这一校园现象。聪明的小孩在中学时将精力投入到课程学业中,并不像其他小孩想方设法地让自己变得更受欢迎,然而却招来了其他小孩的欺凌,并且阐述了在成年人的视角中,他们对这一现象毫不知情(文中提到的老师)或是仅仅认为这是激素在作祟罢了。

作者拿自己作为实例,论述了这一现象的背后原因,并不是同学们对“书呆子”的恶意,而是这个糟糕的校园环境:校园就像监狱一样,老师只是在保证学生们生命安全的前提下,教授一些知识,却全然没有深入到校园里,在这样的监狱环境下,心智不成熟的中学生们形成了一个圈子,找那些“书呆子”发泄,而且那些对“书呆子”本没有恶意的同学,因为害怕不合群,也离“书呆子”们远远的,监狱式的校园环境和病态的欺凌氛围,使得“书呆子”们的中学时代相当煎熬。

我认为,真实世界的关键并非在于它是由成年人组成的,而在于它的庞大规模使得你做的每件事都能产生真正意义上的效果。当你所做的事情能产生真实的效果,那就不仅仅是好玩而已了,发现正确的答案就开始变得重要了。

然而,是金子在哪里都会发光,“书呆子”们正式步入社会后,便会逐步展露光芒。这是真实的社会,不是中学生们自己建立的小社会,它需要由能够产生真实价值的人驱动,因此一帮“书呆子”会聚集在一起,形成没有欺凌的小圈子,并为社会的正常运作提供相当大的帮助。

如何创造财富

金钱不是财富,而只是我们用来转移财富所有权的东西,大多数情况下,世界上可供交换的财富不是一个恒定不变的量,人类历史上的财富一直在不停地增长和毁灭。

这一章中,作者首先否定了“大饼理论”,认为财富并不是一尘不变的,而是在净增长的,可能“大饼理论”适用于金钱,但绝不适用于财富;程序员和其他艺术家一样,都是能够轻松地创造财富的人。

往往只有在创业公司里,你才能得到一种宝贵的工作环境,就叫做“不受干扰”。
许多大公司的内部,平均主义泛滥,如果采用自由市场制度那样的机制,你的公司就可以变成一个很有效率的地方,这里的假设是,如果每个员工按照他创造的财富获得报酬,那么整个公司的利润将最大化。

这就是为什么如此之多的最优秀程序员都是自由主义者的原因,我们这个世界,你向下沉沦或者向上奋进都取决于你自己,不能把原因推给外界。

Paul Graham 既在创业公司担任过主力,又在雅虎这种大公司里打过工,他认为如果程序员们能够心无旁骛地在工作,那么创造出来的财富应该至少是现在的10倍,然而在大公司里可能经常有临时会议、填写表格、电话等打断自己的思绪,而且还受限于产品经理等的思维,反而是在创业公司,可以做自己之所想,将自己创造的财富最大化。

关注贫富差距

技术的发展加大了贫富差距,这是不是一个社会问题?好像没有那么严重,技术在加大收入差距的同时,缩小了大部分的其他差距。技术无法使其变得更便宜的唯一东西,就是品牌,这正是为什么我们现在越来越多地听到品牌的原因,富人与穷人之间的生活差异的鸿沟正在缩小,品牌是这种差距的遗留物。


绘画与编程

黑客与画家

Paul Graham 绘画艺术方面的投入,在他今后的从事的编程工作上,给予了莫大的启迪。
这一章中,主要介绍了程序员和画家之间的共通之处。

黑客与画家的共同之处,在于他们都是创作者。与作曲家、建筑师、作家一样,黑客和画家都是试图创作出优秀的作品。他们本质上都不是在做研究,虽然在创作过程中,他们可能会发现一些新技术。

其次,阐述了程序员的编程过程应该与画家的作画过程一致;Paul Graham不满足于守旧的编程实践:先在草稿纸上设计好编程的逻辑与细节,尽管这有助于我们更好的控制写出来的程序。然而绘画过程中,灵感大都来自于作画时,因此程序员不能盼望有一个完美的规格设计,真实情况大都不允许你投入过多的精力到规格设计上,你需要现场修改规格,很多问题会在动手编程时才展露出来。

一幅画是逐步完成的,通常一开始是一张草图,然后再逐步填入细节。但是,它又不单纯是一个填入细节的过程。有时,原先的构想看来是错的,你就必须动手修改。无数古代油画放在X光下检视,就能看出修改痕迹,四肢的位置被移动过,或者脸部的表情经过了调整。绘画的这个创作过程就值得学习,我认为黑客也应该这样工作,你不能盼望先有一个完美的规格设计,然后再动手编程,这样想是不现实的,如果你预先承认规格设计是不完美的,在编程的时候,就可以根据需要当场修改规格,最终会有一个更好的结果。

坚持一丝不苟,就能取得优秀的成果,因为那些看不见的细节累加起来,就变得可见了。所有那些看不见的细节合并在一起,就是得这样东西产生了惊人的效果,仿佛上千个细微的声音都以同一个音调在歌唱。

设计者的品味

把品味说成个人的偏好可以有效地杜绝争论,防止人们争执哪一种品味更好,只要你不断地从事设计工作,你就会做的越来越好,你的品味会出现变化,你会像别人一样有所提高,如果这样的话,那么你以前的品味就不只是与现在不同,而是不如现在的好,因此,所谓的“品味没有好坏之分”的公里也就顿时见鬼去了。

我们从小就被灌输“每个人的审美都不一样,不能以自己的视角苛责别人”,然而作者不认同这一个观点,Paul Graham认为随着时间的推移,那些沉淀下来的作品,着实要比那些在历史的风尘中被抹去的作品优秀得多。

因此不论在哪个工作上,都有品味的好坏之分,编程工作上亦是如此,程序员们需要先识别出什么样的设计称得上好设计,然后才能设计出高品位的程序。

Paul Graham 从多个角度阐述了设计的准则和规范,无一例外的,好的编程设计和好的绘画设计都许多共通之处:

  • 好设计都是简单的设计,绘画也是类似的,认真观察的、非常有代表性的静物作品往往比表面极尽华美、但是实质上只是无意义重复的巨作更有价值

  • 好设计是启发性的设计,绘画作品也分为描述性绘画和启发性绘画,后者往往比前者更引人入胜,每个人看到《蒙娜丽莎》都有自己的理解;在软件业中,这条原则意味着你应该为用户提供一些基本模块,使得他们可以随心所欲自由组合,就像玩乐高积木那样。

  • 好设计是艰苦的设计,在绘画上,肖像画通常占据最高地位,这不是偶然的,原因不仅是面部肖像比其他题材更能打动人,还因为我们太擅长观察脸,所以肖像画家不得不加倍努力才能达到我们的要求。

  • 好设计是看似容易的设计,达芬奇的有些肖像画只是几根线条,看着它们,你会想只要把这十根八根线条放对位置,你也能画出如此优美的肖像画,说的没错,可是难救难在找出正确的位置,只要位置稍微偏移一点点,整幅作品就会一溃千里。在大多数领域,看上去容易的事情,背后都需要大量的联系。

  • 好设计是一种再设计,刚开始学画的人往往不愿意重画画错的地方,他们觉得能画成现在这样已经很不错了,如果重画某些部分,结果可能还不如现在,这想法很危险,你应该培养对自己的不满,达芬奇为了把一根线画对,经常要画五六次。开源软件因为公开承认自己会有bug,反而使得代码的bug比较少。

  • 士气是设计的关键因素,我的一位美术启蒙老师告诉我:如果你觉得画每样东西很乏味,那么你画出来的东西就会真的很乏味。先做出圆形,再逐步加工做出成品,这种方式有利于鼓舞士气,因为它使得你随时都可以看到工作的成效,如果你正在写的代码一个小时之后就可以看到运行结果,这好比让你看到不远处就是唾手可得的奖励,你因此会受到鼓舞和激励。


创业

Paul Graham 无疑是创业的成功者,一个仅由三人制作的 Viaweb 互联网软件,上市后竟然能有如此之高的市值,彻底解决了他的生计问题;在厌倦了雅虎的程序员工作之后,他又创立了孵育创业计划的项目,为其他创业者们提供创业平台以及启动资金,给予他们资金、技术和想法上的帮助,并在创业项目成熟之际引荐投资人与创业者的见面。经证明,这样的大胆尝试着实为很多创业者提供了舞台,而 Paul Graham也荣膺硅谷创业教父。

另一条路

纵览 Paul Graham 的创业生涯,最出彩的决定莫过于摒弃了传统的桌面应用开发,而采用互联网提供 ASP,嗅到了互联网时代的巨大商机。下面列出作者认为互联网软件优于传统桌面应用的几点理由,放到今天来看,这些理由也仍然成立,不禁让我感慨作者当时是多么富有远见。

使用互联网软件,除了软件本身,大多数用户不需要知道别的事情。所有那些乱七八糟、经常变动的东西,都放在服务器端,由精通此道的专业人员维护。所以,大多数时候你不需要一台全功能的电脑。

互联网软件带来的最大变化之一,就是软件发布方式的改变。对于桌面软件来说,发布新版本是一个很痛苦的过程,整个公司不得不使尽全力,满头大汗地挤出一大段巨型代码,从过程和结果上来看,无异于一次分娩。

互联网软件的另一技术优势在于,你能再现大部分的bug。

互联网软件不仅把开发者与他的代码更紧密地联系在了一起,而且把开发者与他的用户也更紧密联系在了一起。互联网软件能够让你前所未有地了解用户行为。

你可能感兴趣的:(《黑客与画家》读书笔记)