我曾做过的那些事
2021年2月
在大学之前,我课余时间主要做的两件事是写作和编程。我不是写论文,而是写当时初学写作的人该写的东西,可能现在也仍是如此:短篇小说。我的小说写得很糟,几乎没有情节,只有一堆情绪强烈的人物,我以为这就意味着作品很“深刻”。
我第一次尝试写程序是在IBM 1401上,这是我们学区当时用于所谓“数据处理”的计算机。那时我上九年级,大概13或14岁。我们学区的这台1401机房就在我们初中的地下室,我和朋友Rich Draves争取到可以使用它的许可。那地方就像是一个迷你邦德反派的巢穴,到处是外星科技般的机器——CPU、磁盘驱动器、打印机、打卡机——架在高高的地板上,头顶是明亮的荧光灯。
我们用的语言是早期版本的Fortran。程序要打在穿孔卡片上,然后按顺序放入卡片阅读机,按下按钮,程序才会被加载进内存并运行。结果通常是从一台震耳欲聋的打印机上打印出点什么来。
我对1401感到困惑,不知道能用它做什么。现在回头看,其实我那时也确实没什么可以做的。这台机器唯一的程序输入方式是来自打孔卡上的数据,而我手头并没有这样的数据。唯一的选择就是写些不需要输入的程序,比如计算圆周率的近似值,但我数学又不够好,做不出有趣的东西。所以我不记得我写过哪些程序也就不足为奇了,因为它们肯定没什么实际用途。我印象最深的反而是某次程序没能终止,我才意识到程序可能永远不会结束。在一台没有分时系统的机器上,这不仅是技术上的错误,还是社会层面的失误——数据中心管理员的脸色已经说明了一切。
微型计算机的出现彻底改变了一切。现在你可以把电脑放在桌子上,坐在它前面,在程序运行时它会对你的按键做出反应,而不是只能读完一摞打孔卡片再停下来。[1]
我第一个有微机的朋友是自己装的,那是Heathkit出品的套件机。我至今记得看着他坐在电脑前,直接在机器上敲代码时那种震撼与嫉妒。
电脑在当时价格昂贵,我花了好几年才说服我父亲给我买了一台TRS-80,大概是在1980年。那时的金标准是Apple II,但TRS-80也够用了。从这时起,我才真正开始编程。我写了些简单的游戏、预测模型火箭能飞多高的程序,还有一个文字处理器,我父亲曾用它写过至少一本书。内存只能容纳两页文本,所以他每次写完两页就打印出来,但这已经比打字机强多了。
虽然我喜欢编程,但我并没打算在大学学它。我原计划是学哲学,听起来更“高深”。在我那天真的高中生心目中,哲学是探究“终极真理”的学问,相比之下其他领域研究的东西不过是些专业知识罢了。可到了大学我才发现,其他学科已经占据了大部分思想空间,留给这些“终极真理”的余地寥寥。哲学剩下的多是一些边缘问题,其他领域可以心安理得地忽略它们。
当时我说不出这番话,但我知道的是,我一门接一门地上哲学课,却觉得越来越无聊。于是我决定转向人工智能。
1980年代中期,AI正风靡一时。我决定投身其中有两个特别的原因:一是Heinlein的小说《月亮是个严厉的老师》(The Moon is a Harsh Mistress),书中有个智能计算机叫Mike;二是PBS的一部纪录片,展示了Terry Winograd(SHRDLU 程序的作者,早期自然语言AI先驱)使用SHRDLU(早期AI程序)。我没再重读《月亮是个严厉的老师》,不知道它是否经得起时间考验,但当年读它时我完全沉浸其中。我觉得我们马上就能拥有像Mike那样的AI了,而看到Winograd用SHRDLU时,我更觉得不过是几年的事情。只要教SHRDLU多认识点词就行了。
那时康奈尔大学还没有AI课程,连研究生课都没有,所以我只能自学。这意味着要学Lisp,因为当时Lisp被视为AI的语言。那时常用的编程语言都很原始,程序员的观念也同样原始。康奈尔默认语言是类似Pascal的PL/I,其他地方也差不多。学了Lisp之后,我对程序的概念瞬间扩展了,直到好几年后我才开始摸到新的边界。这才像是我理想中的大学体验,虽然不是在课堂上发生的,但这无所谓。接下来的几年,我一帆风顺,知道自己要干什么了。
我的本科论文是反向工程SHRDLU。天啊,我真是爱死了这个程序。代码写得赏心悦目,更令人兴奋的是我坚信——在1985年这并不罕见——它正在迈上智能的低坡。
我读的是康奈尔一个不需要选专业的项目。可以上任何课,最后自由选择学位名称。我当然选了“人工智能”。但等拿到实体毕业证时,我大失所望:AI三个字外面打了引号,看起来像是在嘲讽。当时我很在意这点,但现在回想却觉得很准确——我很快就会明白为什么。
我申请了三所研究生院:MIT和耶鲁是当时AI名校,哈佛我之所以申请是因为Rich Draves在那儿,另外Bill Woods也在那里,他发明了我在SHRDLU克隆中使用的那种解析器。最终只有哈佛录取了我,所以我就去了那里。
我不记得是哪一刻意识到的,或许根本没有明确时刻,但在研究生第一年我逐渐意识到:当时所谓的AI是个骗局。我指的是那种AI:程序听到“狗坐在椅子上”这样的句子,然后将其翻译为某种形式的结构,再加入到已知信息的列表中。
实际上,这类程序展示的是自然语言的一个子集本质上是形式语言。但只是个很小的子集。显然,它们与真正理解自然语言之间有着无法跨越的鸿沟。关键根本不在于多教SHRDLU几个词。整个这套构建在显式数据结构上的AI方式注定是失败的。虽然它的破绽为人们提供了写论文的机会(研究各种“创可贴”式的修补办法),但它永远不会带我们实现Mike那样的AI。
我开始想办法从梦想破灭的废墟中挖掘点有用的东西,发现Lisp还值得继续。我知道Lisp本身就很有意思,不只是因为它与AI绑定。于是我决定专注Lisp,甚至想写一本关于Lisp黑客的书。想到自己开始写书时对Lisp黑客了解之少,真有点后怕。但写书是学习某件事最好的方式。那本书叫《On Lisp》,虽然直到1993年才出版,但我在读研时就写了大半。
计算机科学是一门由理论和系统两部分组成的尴尬联盟。理论派负责证明,系统派负责构建。我喜欢构建东西。虽然我也很尊重理论——甚至隐隐觉得它更高尚——但动手做事明显更让人兴奋。
系统工作的难点在于它无法持久。你今天写的程序,无论多好,最多也就活二十年。可能会被人作为脚注提起,但没人会真用它。到了那时,它甚至显得非常孱弱。只有那些了解历史的人才知道它当年有多厉害。
实验室有些多余的Xerox Dandelion电脑,谁想玩可以拿去用。我一度也想拿一台,但以现在的标准看它们太慢了,没什么意义。结果没人要,它们就被清理了。这就是系统工作的结局。
我想要的不仅是构建东西,而是构建能传之久远的东西。
在这种不满足的状态下,我于1988年前往卡内基·梅隆大学探望正在读研究生的Rich Draves。有一天我去了卡内基研究所,那是我小时候常去的地方。站在一幅画前,我突然意识到一件看似显而易见、但对我而言却颇为震撼的事情:那就是真正可以创作出一些能永久存在的东西。画作不会过时。一些最优秀的画作已有数百年历史。
而且,这是一种可以谋生的职业。虽然肯定不如写软件那么容易,但我想,如果真的足够勤奋,又非常节俭,应该能挣到糊口的钱。作为一名艺术家,还可以完全独立。不需要老板,甚至不需要申请研究经费。
我一直都喜欢欣赏画作。我自己能画吗?我完全不知道。我以前从没想过自己也能画。我理性上知道画是人画出来的——它不会凭空出现——但那时候创作者在我心中就像是另一个物种。他们要么活在很久以前,要么是些出现在《生活》杂志专访中的神秘天才。真正能够“创作艺术”(把“做”这个动词用在“艺术”这个名词前)对我来说几乎是种奇迹。
那年秋天我开始在哈佛选修艺术课程。研究生可以在任何院系上课,而我的导师Tom Cheatham非常随和。如果他知道我在上这些奇怪的课,也从未说过一句话。
于是我一边读着计算机科学博士,一边打算成为一名艺术家,同时又真心热爱Lisp黑客工作,正在埋头写《On Lisp》。换句话说,就像很多研究生一样,我正拼命做着与我的论文无关的多个项目。
我不知道该如何摆脱这种状态。我不想辍学,但除此之外我也看不到出路。我还记得,当我朋友Robert Morris因为1988年写下“互联网蠕虫”而被康奈尔开除时,我竟然羡慕他找到了这样一个壮烈的离开研究生院的方法。
然后在1990年4月的一天,墙上出现了一道裂缝。我在学校碰到Cheatham教授,他问我是不是已经做得差不多,可以在6月毕业了。我一字论文都还没写过,但我人生中最快的一次思考随即展开:我决定冒一次险,在剩下的五周里写出一篇论文,尽量复用《On Lisp》中的内容。我几乎毫不犹豫地回答道:“是的,我想可以。我几天后会交你一份草稿。”
我选择的论文主题是continuation(续延)的应用。现在回想,我其实该写macro(宏)和内嵌语言的。这方面还几乎无人涉足,有整片天地可探索。但当时我唯一的目标是从研究生院脱身,那篇赶工完成的论文勉强够格。
与此同时,我正在申请艺术学院。我申请了两所:美国的RISD(罗德岛设计学院)和意大利佛罗伦萨的Accademia di Belli Arti(意大利美术学院)。后者是最古老的艺术学院,我天真地以为它一定很优秀。RISD录取了我,而Accademia却没有回音,于是我搬去了普罗维登斯(Providence)。
我申请的是RISD的BFA项目(艺术学士),这意味着我要再上一次大学。听起来或许很奇怪,但我那时才25岁,而且艺术学院里的学生年龄本来就差异很大。RISD把我算作转学二年级生,但要求我那个夏天完成“基础课程”学习。这些基础课程包括素描、色彩、设计等基本技能,人人必修。
夏末我收到了一个大惊喜:一封来自Accademia的信。原来他们把录取信寄到了英国的剑桥,而不是马萨诸塞州的剑桥,结果耽误了。信里邀请我秋天去佛罗伦萨参加入学考试,离现在只剩几周时间。我的房东人很好,让我把行李寄存在她阁楼里。我还有点从研究生时做顾问攒下的钱,节省些话应该能撑一年。现在我只需要学会意大利语。
只有stranieri(外国人)需要参加这个入学考试。事后看来,这可能是为了排挤外国人,因为太多stranieri想来佛罗伦萨学艺术了,如果不设限,本国学生就要被挤掉。我从RISD的基础课程里学到了不少绘画技巧,但我仍不知道自己是怎么通过那场笔试的。我记得我写了一篇关于塞尚(Cézanne)的作文,把知识密度尽可能拉满,以弥补我有限的词汇量。[2]
我才讲到25岁,但已经出现了很多显而易见的模式。我又一次抱着学高尚学科的期望走进一所名校,却又一次感到失望。Accademia绘画系的师生人都很好,但他们之间早已达成默契:学生不强求老师教东西,老师也不强求学生学东西。与此同时,大家还维持着19世纪画室的外在仪式感。我们真的有那种靠劈柴生火的小火炉,就像19世纪画作中那样,而模特则尽量坐得离火炉近一点以取暖。但除了我,几乎没人画她。其他学生大多在聊天,偶尔会试着模仿他们在美国艺术杂志上看到的作品。
我们的模特就住在我家附近。她靠当模特和替古董商做赝品为生。她会从书里临摹一幅不太知名的老画,然后那古董商再对这幅画“虐待”一番,使它看起来像是旧作。[3]
在Accademia学习期间,我晚上会在卧室里画静物。这些画都非常小,因为房间也小,我用的画布是别人剩下的边角料,只能买得起这个。画静物和画人不同,顾名思义,静物不会动。而人最多只能坐15分钟,而且坐得也不老实。所以传统人物画的方式是,先学会画一个“通用人”,再根据具体模特进行调整。而静物可以一笔一笔像像素一样临摹你眼前看到的物体。当然你不能止步于此,否则就只是“照片级真实”了。一幅好的静物画之所以有趣,是因为它“经过了一颗头脑的过滤”。你需要强调一些视觉线索,比如:某个地方颜色突然变化,是因为那是物体的边缘。通过细腻地强调这些线索,你可以画出比照片更真实的画——不只是修辞意义上的“更真实”,而是从信息论意义上说也更真实。[4]
我喜欢画静物,是因为我对眼前的景象充满好奇。在日常生活中,我们并不会有意识地关注自己看到了什么。大部分视觉处理是由低层次的脑部机制完成的,它们只会告诉你“那是个水滴”而不会告诉你最亮点和最暗点在哪,告诉你“那是个灌木”但不会交代每片叶子的形状和位置。这是大脑的特性,不是缺陷。日常生活中,如果你注意到每一片树叶,反而会分神。但当你需要把某物画下来时,你就必须观察得更仔细。只要你用心画,哪怕是大家习以为常的东西,过了几天之后你仍会发现新细节,就像写一篇关于平凡话题的文章那样,总能挖出你从未想过的点。
当然,绘画还有其他方式。我也不能100%确定这就是最好的方式。但我觉得它值得一试。
我们的老师Ulivi教授人很好。他看得出我很努力,于是给了我高分,记在我们每位学生都有的一本类似护照的册子上。但Accademia除了教我意大利语之外,其实没教我什么绘画。我的钱也快用完了,于是第一年结束后我就回了美国。
我想回RISD继续学,但我那时已经破产,而RISD学费很贵,所以我决定先工作一年,等来年秋天再回去。我找到了一个叫Interleaf的公司,他们开发文档制作软件。你问:是不是像微软Word?答:完全一样。那正是我第一次学到:低端软件总是会吞噬高端软件。[5] 不过Interleaf当时还没死,还能撑几年。
Interleaf当时做了一件相当大胆的事:受Emacs启发,他们加入了一门脚本语言,甚至把这门语言设计成了Lisp方言。现在他们想找个Lisp黑客来写点东西。这是我最接近“正常工作”的一次,我也在此向我的老板和同事道歉,因为我是个糟糕的员工。他们的Lisp就像一层极薄的糖衣,涂在一大块C语言蛋糕上。而我既不懂C,也不想学,所以对整个系统的理解极其有限。再加上我非常不负责任。那还是编程工作需要每天按点打卡的时候。这对我来说太不自然了。如今世界已经开始向我当时的想法靠拢,但那时我因为此事和公司产生了很多摩擦。到了工作后期,我大部分时间都在偷偷写《On Lisp》,因为我已经签了出版合同。
这份工作的好处在于,我拿到了对艺术生而言“巨额”的报酬。在佛罗伦萨,除去房租,我每天的生活预算是7美元。而现在我每小时就能挣到4倍以上的钱,哪怕只是坐在会议室里。靠着节省开支,我不仅攒够了回RISD的钱,还还清了大学贷款。
我在Interleaf也学到了一些有用的东西,虽然大多是“反面教材”。比如:科技公司最好由产品型人才领导而非销售出身(尽管销售是一门真正的技艺,擅长的人确实很强);代码若由太多人修改就容易出bug;便宜却压抑的办公环境不是好买卖;计划内会议不如走廊里的即兴对话;大客户的钱很危险;标准工作时间和编程效率之间几乎没有重合;标准办公室也不是编程的最佳场所。
但我学到的最重要一课,也后来应用在Viaweb和YC中的,是“低端会吞掉高端”:做“入门级”产品是好事,即便听起来不够“体面”。因为如果你不做,就会有人来做,然后把你挤到天花板上。反过来说,凡是看起来“体面”的事物,反而需要警惕。
离职回RISD前,我安排继续为Interleaf做自由职业顾问,做他们客户项目的开发。靠这个我维持了接下来几年的生活。后来我回去做某个项目时,有人告诉我有个叫HTML的新玩意,据说是SGML的衍生格式。在Interleaf,标记语言爱好者是职业病一样的存在,我根本没理会他。但这个HTML,后来却成了我生活中极重要的一部分。
1992年秋天,我搬回普罗维登斯,继续在RISD上课。之前的基础课程只是入门,Accademia则是一场(非常文明的)笑话。现在,我终于可以看看真正的艺术学院是什么样了。但遗憾的是,它和Accademia其实差不多。管理更规范,收费更昂贵,但我逐渐明白:艺术学院与艺术的关系,远不像医学院与医学那样密切。至少绘画系不是。我的邻居是纺织系的,那边似乎要求很严。插画系和建筑系应该也差不到哪里去。但绘画是“后严肃”的。学生们要“表达自我”,对更有心机的学生来说,这意味着要搞出一种“个人标识风格”。
这种“签名风格”在视觉艺术中等同于表演行业的“噱头”:能让人一眼就知道这是你做的作品。比如你看到一幅像漫画的画,你就知道是Roy Lichtenstein画的。那么如果你在某个对冲基金经理的公寓里看到这样的画作,就知道他为此花了几百万。当然,并非所有艺术家都是为了钱才发展出签名风格,但买家之所以愿意花大钱,多半就是因为这点。[6]
当然也有很多认真踏实的学生:那些高中时就“会画画”的孩子,来到了这个号称全美最好的艺术学院,想继续精进画技。他们常常感到困惑和沮丧,但还是坚持着,因为他们就是做这个的。我不是那种高中就会画画的学生,但在RISD,我明显更靠近这群人,而不是“标识风格追求者”那一派。
我在RISD上了一门色彩课,收获很大,但除此之外,基本上还是自学绘画。而这个,我可以免费做。所以1993年我选择退学。我在普罗维登斯待了一阵,然后我的大学朋友Nancy Parmet帮了我一个大忙:她母亲名下的一栋房子有个租金管制的公寓要空出来了。她问我是否愿意租?租金不比我现在的住处贵多少,而纽约又是传说中艺术家的集聚地。我当然愿意![7]
《阿斯特利克斯》(Asterix)漫画开头总是放大一个罗马高卢角落的村庄——唯一不受罗马控制的地方。你也可以对纽约地图做同样的事:放大上东区的某个角落,会发现一个当时不属于富人区的地带,叫约克维尔(Yorkville),那就是我的新家。从技术上讲,我成了一名“纽约艺术家”:住在纽约,画画为生。
我对钱还是很焦虑,因为我感觉Interleaf快要完了。自由职业的Lisp开发者很少,我也不想学别的语言——在当时那通常意味着得写C++。所以我用一贯精准的“财富嗅觉”做了决定:再写一本关于Lisp的书。这次是通俗读物,可以当作教材那种。我想象自己靠版税节衣缩食、专心画画。(这本书的封面插画就是我当时画的一幅静物,书名叫《ANSI Common Lisp》。)
对我来说,纽约最棒的一点是Idelle和Julian Weber在这儿。Idelle Weber是一位画家,是最早一批“照相写实主义者”之一。我在哈佛上过她的绘画课。我从没见过比她更受学生爱戴的老师。很多学生毕业后还一直和她保持联系,包括我。搬到纽约后,我成了她的“事实助理”。
她喜欢画大画布的正方形画作,边长四五英尺。1994年末某一天,我正在为她绷一幅大画布,收音机里播着关于某个著名基金经理的新闻。他并不比我大多少,却已经富得流油。突然一个念头蹦进我脑海:为什么我不去致富?这样我就可以随心所欲地做任何事了。
与此同时,我也越来越常听到一个新名词:“万维网”。我去剑桥拜访Robert Morris时,他向我展示了这个东西。他当时在哈佛读研究生。看着它,我感觉这玩意未来肯定会火。我亲眼见过图形界面对微机普及的巨大影响,网景(Netscape)浏览器会对互联网产生同样效果。
如果我想致富,这就是那辆即将出站的列车。而这一点我判断没错。错的是我最初的创业点子。我想做的是——把艺术画廊搬到线上。在看了那么多YC的创业申请之后,我不能说这是“史上最差创业点子”,但它绝对名列前茅。艺术画廊根本不想上网,到现在都不想。这不是他们卖画的方式。我写了一套软件,帮画廊生成网页,Robert写了图像缩放程序和HTTP服务端程序。然后我们开始去找画廊“谈合作”。说“难谈”都是委婉。甚至连“免费送”都没人要。只有极少数画廊愿意让我们为他们免费搭建网站,但都没有付费。
后来陆续出现了一些在线商店,我突然意识到,除了结算按钮之外,这些网站和我们给画廊做的网站一模一样。这个听起来很高级的玩意——“网上商店”——其实我们已经会做了。
于是1995年夏天,我把《ANSI Common Lisp》的排版稿交给出版社后,我们开始写一个构建在线商店的软件。一开始,这被设想为常规桌面软件,也就是Windows应用。听起来很吓人,因为我们谁也不会写Windows程序,也不想学。我们活在Unix世界。但我们决定至少先用Unix写个原型商店生成器。Robert写了购物车模块,我用Lisp写了一个新的商店站点生成器。
我们在Robert剑桥的公寓里工作。他室友经常不在,我就睡在室友房间。房间里没床架也没床单,只有一张床垫。有一天早上,我躺在那张床垫上,突然灵光一闪,猛地坐起身(像一个大写的L)——我们何不把软件放到服务器上跑,让用户通过点击网页来控制?这样我们就不用写任何客户端程序了。我们可以在同一个服务器上生成和托管网站。用户只需要一个浏览器。
这种软件现在叫“Web应用”,但在当时,这种想法连“能否实现”都是未知数。为了验证,我们尝试构建一个浏览器可控版本的商店生成器。几天后,8月12日,我们做出了第一个可用版本。界面糟糕透顶,但它证明:用户可以只靠浏览器、无需安装任何客户端,也不必用命令行,就能搭建一个完整的网上商店。
现在我们知道,自己真的找对方向了。我脑中浮现出新一代软件的画面:再也不需要版本控制、平台移植、各种杂七杂八的兼容问题。在Interleaf,光“发布工程组”就和开发组一样大。如今我们只需在服务器上更新软件即可。
我们成立了新公司,取名Viaweb,意即“通过Web运行的”。Idelle的丈夫Julian给了我们1万美元种子资金,换取公司10%的股份。他还帮我们处理法律事务和商业建议。十年后,这个“创投换股”模式成了Y Combinator的模板。我们知道创始人需要这种帮助,因为我们自己就曾需要。
那时候我净资产是负的,因为我银行账户里那点钱还不够还我欠政府的税款。(我有没有为Interleaf的顾问收入预留应缴税金?没有,我当然没有。)所以虽然Robert还有他的研究生津贴,我却必须靠这笔种子资金生活下去。
我们本来希望9月就发布产品,但随着软件越做越复杂,目标也变得更高了。最终我们真的做出了一个所见即所得(WYSIWYG)的站点生成器。在创建页面时,用户看到的就是之后生成的静态页面的样子——区别在于,页面上的链接不是跳到静态页面,而是连接到服务器上的闭包函数哈希表中。
我学过艺术,这在这里帮了大忙。因为一个在线商店生成器的主要目标,就是让用户看起来“像模像样”,而这背后的关键就是“高完成度”。如果你能把页面布局、字体、配色都处理好,就能让一个卧室卖货的小商贩,看起来比大公司还专业。
(你可能好奇,为什么我的个人网站看起来那么老派?那是因为我现在还在用当年那套软件。它今天看着土,但在1996年,可是最时髦的。)
到了9月,Robert崩了。“我们已经干了一个月,”他说,“还没做完!”这话现在听起来挺好笑,因为他后来又干了快3年。但我当时觉得,是时候招募更多程序员了。我问Robert,他在读研的同学里有没有特别厉害的。他推荐了Trevor Blackwell。我开始有点意外,因为我对Trevor最深的印象是他用记事卡片管理生活的一套系统——他随身携带一叠卡片,把一切归纳成条目。但Robert是对的,正如往常一样。Trevor果然是个骇人听闻的高效黑客。
和Robert、Trevor一起工作真的很有趣。他们是我认识的最具独立思维的两个人,而且风格完全不同。如果你能看到Robert的大脑内部,它可能像是新英格兰殖民时期的清教堂;而Trevor的脑子里,可能是奥地利洛可可风格最极致的宫殿。
1996年1月,我们正式上线,带着6家商店。我们原本担心发布得太晚,结果反倒差点发布得太早。那时媒体上到处都在谈电子商务,但现实中,真正想开网店的人其实寥寥无几。[8]
我们的软件分三部分:我写的编辑器,用户用它搭建站点;Robert写的购物车;Trevor写的订单和统计管理系统。以当时标准来看,这个编辑器是非常优秀的通用建站工具。我写的代码很紧凑,而且只需要与Robert和Trevor的模块集成,写起来非常爽。如果我只需做这款软件,那三年肯定是我人生中最轻松的时期。不幸的是,我还得做许多我不擅长的事,结果那三年变成了我最焦虑的三年。
90年代后期,做电商软件的初创公司多如牛毛。我们立志做“Word”,而不是“Interleaf”。也就是说,要易用且便宜。穷人的优势就是会制造真正便宜的产品,我们就是典范。我们收小商店每月100美元,大商店300美元。这个低价成了巨大卖点,也是竞争对手的长期痛点。但我们设定这个价格并不是因为多有远见——我们根本不知道企业愿意为产品花多少钱。300美元一个月,在我们看来已经是大钱了。
我们很多成功的做法,其实都是误打误撞。比如,我们干了现在所谓的“做不具规模的事”(don’t scale)。那时候我们会说是“太弱了,不得不拼命拉用户”。最常见的方法是,直接帮他们建店。这看起来挺丢人——毕竟我们软件的核心卖点就是“让用户自己建店”。但为了获取用户,我们愿意做任何事。
在这个过程中,我们了解了比自己想象中更多的零售知识。比如说,如果只能展示一张男士衬衫的小图(按现在标准,图片都很小),那最好放特写领口的图,而不是整件衬衫。我记得这事,是因为那次我不得不重新扫描30张男衬衫的图片。前一版的图还挺美的……
虽然这听起来“很不对”,但其实正是我们该做的事。替用户建站让我们理解了零售,也了解了用我们软件的真实体验。我一开始对“商业”感到又迷惑又排斥,以为我们得请个“懂商业的人”来管这些。但一旦我们真正有了用户,我立刻改观了,就像有了孩子之后我才真正理解“做父亲”一样。用户要什么,我就给什么。也许有朝一日,用户太多,我就无法再帮他们逐个扫描图片了。但在那之前,没有比这更重要的事。
还有一个我当时没意识到的道理:初创公司最重要的指标是增长率。我们的增长率其实不错:1996年底有大约70家商店,1997年底有约500家。我那时错误地以为,绝对用户数才最重要。虽然从“挣钱”角度看,这说得通——如果用户不够多,公司可能活不下去。但从长期来看,增长率最终会决定绝对用户数。如果我们是YC的初创公司,我会对自己说:“别那么焦虑,你们做得很好。年增长7倍。别再雇太多人了,很快就能盈利,到那时你们就能掌握命运。”
可惜我雇了很多人,部分是因为投资人希望如此,部分是因为互联网泡沫时期大家都这么干。那时,一个只有几个人的公司,会被视为“业余”。所以我们直到1998年夏天被Yahoo收购时才刚好盈亏平衡。换句话说,公司存在期间,我们始终依赖投资人。而我们和投资人对初创公司的理解都很初级,结果公司运营一团糟,即使按“创业公司标准”也是如此。
Yahoo收购我们那天,我如释重负。原则上,Viaweb的股份很有价值——我们是一家盈利且高速成长的企业。但我并不觉得这股权真有价值。我不懂企业估值,却对每几个月就面临一次“濒死危机”记忆犹新。而我生活方式一直像研究生,从没因为创业变富过。所以Yahoo收购我们那一刻,真的像“麻雀变凤凰”。我们要搬去加州了,我买了人生第一辆车:一辆黄色的1998年款大众GTI。我记得当时我觉得,它的真皮座椅已经是我拥有过的最奢侈之物。
从1998年夏到1999年夏,是我人生最无生产力的一年。当时我并未意识到,其实我早已被Viaweb几年的压力和付出彻底榨干了。我刚到加州时,还试图保持原来的作息——每天编程到凌晨3点。但Yahoo那种“早衰”的企业文化和圣克拉拉那种死气沉沉的格子间办公环境很快拖垮了我。几个月后,我感觉就像回到了Interleaf。
Yahoo给了我们很多股票期权。当时我以为Yahoo估值太高,这些期权迟早一文不值。结果一年后股价涨了5倍。我撑到第一批期权归属完毕,然后在1999年夏辞职。过去4年我几乎没画画,都快忘了我当初是为什么做这一切的。我一直告诉自己,“我做这一切,是为了致富后可以专心画画”,现在我终于有钱了,是时候兑现承诺了。
我说要辞职那天,我的Yahoo老板和我长谈。他问我接下来的打算,我详细讲了我想画什么样的画。当时我还挺感动的,觉得他真关心我。现在我明白他其实是以为我在撒谎。那时候,我的期权每个月就值200万美元。如果我不顾这些辞职,肯定是为了去做另一个创业项目——而且可能会带走一部分人。这可是互联网泡沫顶峰,而Yahoo是泡沫的核心。我老板当时是个亿万富翁。他一定觉得我这是“疯狂但不无可能”的雄心。
但我真的是为了画画才辞职,我也马上就开始了。没有时间可浪费。我已经花了4年致富。现在每当我遇到卖掉公司准备离开的创始人,我的建议都是:先去度个假。我当时就该这样,哪怕只是躺平一两个月,但我根本没想到。
于是我开始画画,但我却感到毫无精力,也没有雄心。部分原因是我在加州几乎没什么朋友。我还雪上加霜地买了一套位于圣克鲁斯山的房子,虽然景色优美,却与世隔绝。我勉强坚持了几个月,最后在万般无奈中,我搬回了纽约。除非你了解租金管制,否则你可能会惊讶地发现:我那间公寓还在——就像我旧生活的“密封坟墓”一样。Idelle 还在纽约,那里也还有些人在画画,尽管我不认识他们。
回到纽约后,我继续过着从前的生活,只不过这次我是有钱人了。这种感觉确实有点怪。我保持了过去所有的生活习惯,只不过现在那些原本打不开的门都向我敞开了。现在,只要我走累了举手打车,就会有车停下(除非下雨)。走过一家迷人的小餐馆,如果我想进去吃饭,也可以随便点餐。这种自由感确实让人兴奋。我的绘画也开始好转。我尝试了一种新的静物画法:先按传统方法画一幅画,然后给它拍照并放大打印在画布上,再以相同的物品(希望还没腐烂)为对象,基于打印画再画一幅画。
与此同时,我开始找房子买。现在我终于可以选择住在哪个街区了。我问自己,也问了不少房产中介:“纽约的‘剑桥’在哪?”借助于偶尔返回真正的剑桥参观,我逐渐意识到——纽约没有“剑桥”。嗯,好吧。
大约在2000年春天,我又有了一个想法。我们做Viaweb的经验清楚表明,Web应用就是未来。那为什么不做一个“做Web应用的Web应用”呢?为什么不让人们通过浏览器在我们服务器上写代码,然后我们再帮他们托管所写的应用?[9] 服务器上可以运行各种服务,这些服务只需通过API调用就能使用:打电话、收发图像、处理信用卡付款等等。
我对这个点子兴奋得几乎无法思考别的事情。我非常清楚这就是未来。虽然我并不特别想再创一次业,但这点子如果想实现,必然需要做成公司,所以我决定搬回剑桥去做它。我希望能说服 Robert 一起干,但这里出现了障碍:他那时已经是 MIT 的博士后。虽然我上次拉他一起干活他确实赚了很多,但也耗费了他大量时间。所以他虽然承认这个点子靠谱,但还是坚定地拒绝加入。
哼,那我自己干。我找来了Dan Giffin(他曾在Viaweb工作)和两个想要找暑期工的本科生,我们一起开始尝试构建这个现在看来大概要拆成二十家公司和好几个开源项目才能完成的庞大系统。用于定义应用的语言当然会是一种Lisp方言。但我也没天真到把原生态Lisp直接甩给大众用户——我们打算像 Dylan 那样,把括号隐藏起来。
那时“像Viaweb那样的公司”有了新名字,叫“应用服务提供商”(Application Service Provider,ASP)。这个词没红多久就被“SaaS”(软件即服务)取代了,但也算火过一阵,所以我给这个新公司起名Aspra,致敬ASP。
我开始写应用构建器,Dan 负责网络基础设施,两个本科生开发第一个服务模块(图像和电话)。但大约到了那个夏天的一半,我意识到自己真的不想再运营一家公司——尤其是一家看起来注定要变得很大的公司。我当初创办Viaweb是因为我缺钱。现在我不缺钱了,我干嘛还要再来一次?如果要实现这套架构必须办公司,那就算了吧。我干脆只构建一个开源项目可以涵盖的子集。
出乎意料的是,我在这上面花的时间并没有白费。后来我们创办Y Combinator,常常遇到在做这套新架构某一部分的初创公司,而我恰好思考过、甚至尝试写过其中的一些组件,这对我帮助极大。
我决定构建的开源子集就是一个新的 Lisp 方言,这次我连括号都不打算隐藏。很多 Lisp 黑客都有开发自己 Lisp 的梦想,部分原因是 Lisp 这个语言家族天生鼓励“方言”,部分原因是我们脑中都有一个“柏拉图式的理想 Lisp”,而现存所有方言都无法达到那个境界。我当然也不例外。所以,在那个夏天末尾,我和Dan搬到我在剑桥买的新房子,开始开发这个新的 Lisp 方言,我叫它 Arc。
接下来春天,奇迹发生了。我受邀在一个 Lisp 会议上做演讲,于是我讲了我们如何在 Viaweb 中使用 Lisp。之后我把这个演讲的PostScript文件放到了我网站 paulgraham.com 上(这个站我早在Viaweb时代就搭了,但从未真正使用)。一天内页面就被访问了3万次。发生了什么?我查看引用链接,发现有人把它发到了 Slashdot。[10]
哇,我心想,原来有读者!我在网上写的东西,真的可以让人读到。这在现在也许很平常,但当时是个惊喜。在印刷时代,通往读者的通道极为狭窄,还被名叫“编辑”的猛兽把守着。你要想让自己的文字被读到,只能出书,或者发表在报纸、杂志上。现在,任何人都能出版任何东西。
其实这在1993年起就已经技术上可行,但当时知道这一点的人还很少。我自己就是那基础设施的建设者之一,也是写作者,结果竟然花了8年才意识到它的意义。即使意识到了,也又花了好几年才明白其中的深远影响。这意味着,会诞生新一代的随笔。[11]
印刷时代,发表随笔的“渠道”几乎为零。除了少数在纽约混得开的“官方思想家”,其他人只能在自己专业领域写一点东西。很多随笔从未诞生,只因根本没有渠道让它们被发表。而现在,这一切变了,而我打算写这些随笔。[12]
我做过很多不同的事,但若要说我在做什么这件事上真正“开窍”的转折点,那应该是我开始在网上发布随笔的时候。从那之后,不管我还做什么,我都知道我会一直写随笔。
我知道,最开始网上随笔会是一个边缘媒介。社会上更倾向于将它们视为GeoCities网站上疯子写的长篇“咆哮文”,而不是像《纽约客》那种温文尔雅、排版精美的随笔。但到了那时,我已经学会将这种“不够体面”视为激励,而非阻力。
我人生中最明显的模式之一就是:去做那些“不体面”的工作对我而言非常有效。静物画一直是绘画中最不体面的题材。Viaweb和Y Combinator刚开始时都显得很“丢人”。即使现在,当陌生人问我在写什么,我说是在写一篇要发在自己网站上的随笔,他们还是会露出一脸迷茫。连Lisp也是——虽然它在学术上像拉丁语那样高贵,却在人们眼中一点都不“潮”。
并不是说“不体面”的工作就是好工作。但如果你明知某件事目前不被看好,却仍被它所吸引,那往往说明那里有真正值得探索的东西,也说明你的动机是纯粹的。对于有雄心的人而言,“不纯的动机”是最大危险。如果真有什么能带你误入歧途,那就是“想让别人刮目相看”的欲望。所以虽然不体面的事不保证你走在正确道路上,但至少可以确保你没走在“最常见的歧路”上。
接下来几年,我写了很多随笔,题材各异。O’Reilly 出版社把它们结集成书,书名叫《黑客与画家》(Hackers & Painters),取自其中一篇文章的标题。我也搞了搞垃圾邮件过滤器,还继续画了一些画。我每周四都会为一帮朋友做饭,这让我学会了如何为多人做饭。我还在剑桥买下了另一栋楼——原本是糖果工厂,后来据说当过色情片片场——用作办公室。
2003年10月的某晚,我家举行了一场盛大的聚会。这个点子出自我那位“星期四晚宴团”里的朋友Maria Daniels:由三个不同的人共同做东,各自邀请自己的朋友参加同一个派对。这样,每位宾客将有三分之二的在场者是陌生人,但他们很可能志趣相投。那晚,我见到了一个我不认识、但后来非常喜欢的人:Jessica Livingston。
Jessica当时在波士顿一家投行做市场总监。这家投行自认为了解创业公司,但在接下来一年里,她通过认识我的一些创业圈朋友,逐渐意识到现实和他们想象的完全不同——那些故事又丰富又精彩。于是她决定写一本关于创业者访谈的书。
后来因为那家投行陷入财务困境,她不得不裁掉一半团队,于是开始找新工作。2005年初,她去波士顿一家风投公司面试市场职位。对方迟迟不作决定,这段时间我不断和她聊起我对风投行业的种种不满:他们应该多做小额投资而不是大额押注;应该投年轻、有技术背景的创始人而不是MBA;应该允许创始人担任CEO;诸如此类。
我写随笔时有个常用技巧:先做一个演讲。必须站在台前让别人不白浪费时间地听你说话,是激发灵感的极佳方式。哈佛计算机协会(Harvard Computer Society)请我去讲座,我决定给他们讲讲“如何创办一家初创公司”。或许他们能避开我们曾经踩过的坑。
我在演讲中提到,最好的种子投资人是成功创业者——因为他们不仅出钱,还能提供建议。说到这儿,我发现台下人都在盯着我看。我吓坏了,担心邮箱被商业计划书淹没(要是我那时知道后来的情形就好了),连忙说:“但别找我投!”然后继续演讲。但讲完后我意识到,我真的该停止拖延了。Yahoo收购我们都已经7年了,我还从没做过一次天使投资。
与此同时,我也在和Robert与Trevor密谋,想找些项目一起做。我很怀念和他们一起工作的感觉,总觉得我们该能再合伙干点什么。
2005年3月11日那天,我和Jessica晚饭后一起走在Garden街和Walker街的拐角——这三条线索在此汇合。去他的风投公司吧,既然他们那么慢决定,我们干脆自己开一家投资公司,真真正正地把我们想法都实现。我来出资,Jessica辞职来干,我们再拉上Robert和Trevor当合伙人。[13]
再次地,正是我们的“无知”帮了我们。我们根本不知道怎么做天使投资。而且在2005年的波士顿,也没有像Ron Conway那样的前辈可学。所以我们只是照自己认为合理的方式来做,其中有些方法后来被认为很新颖。
Y Combinator的成功,包含多个组件,我们不是一开始就全都想明白了。我们最早确定的是要做一家“天使投资公司”。那时,这两个词根本不会连在一起用。当时的投资世界分成两类:VC公司(风投),是正规的公司,做百万级投资;天使投资人,是个人兼职投小项目。而且,这两类人对初创团队在早期的帮助都非常有限。我们深知创始人早期有多么无助——因为我们曾那样无助。比如说,当年Julian帮我们注册公司时,在我们眼里简直像魔法。我们能写很复杂的软件,却不知道如何注册公司、制定章程、分配股份——那完全是天书。我们计划不仅投资,还要像Julian帮我们那样,从头帮创始人处理这些。
YC一开始并不是个基金,它成本低到我们可以自己掏钱来运作。这一行读者可能看过去了,但职业投资人肯定会说:“哇,那你们就拿走了所有回报。”但这其实也不是我们多聪明——我们根本不知道VC基金是怎么运作的。我们从没想过要筹资,如果真想了,也不知道从哪儿开始。[14]
YC最独特的机制是“批次制”:每年两次,一次投一批公司,然后用三个月全力辅导他们。这个模式我们不是潜意识中发现的,而是明知自己不懂投资、所以故意设计来“快速练手”的方案。我们需要投资经验——那最好的办法就是一次投一堆创业公司?我们知道本科生夏天通常会在科技公司实习,那为何不设计一个“暑期创业计划”?他们也会像我们一样“半真半假”地投入:我们是“伪投资人”,他们是“伪创始人”。所以我们可能赚不到什么钱,但可以练习投资技巧,对他们来说,肯定也比去微软有趣得多。
我们用我在剑桥的那栋楼作为总部。每周一起在那吃晚饭——选周二,因为我已经在周四为“晚宴团”做饭了——晚饭后再请嘉宾来做创业讲座。
我们知道学生那时正考虑暑期实习,所以几天内,我们就设计好了一个叫“暑期创始人计划”(Summer Founders Program,SFP)的项目。我把公告贴在了网站上,邀请学生报名。我从未想过“写随笔”会带来投资圈所谓的“项目流”(deal flow),但它居然成了完美的项目来源。[15]
我们收到了225份申请,结果发现其中不少人已经毕业,或者刚好当年春天要毕业。SFP一下子比我们原想的要“正式”得多了。
我们请了其中大约20组来线下面试,最后选了8组来投。他们都非常优秀。那第一批就包括了reddit、Justin Kan和Emmett Shear(后来的Twitch创始人)、Aaron Swartz(他当时已经写了RSS协议,几年后因开放获取运动而成为牺牲者),还有Sam Altman(后来成了YC的第二任总裁)。我并不觉得这是纯运气。要有胆量放弃微软或高盛的暑期实习,而去做一个听起来很奇怪的SFP计划,本身就已经是一种选拔。
投资条款参考了我们当年和Julian的协议($10k换10%)以及Robert告诉我MIT研究生暑期实习的薪资($6k)。我们每位创始人投$6k,通常两人一组就是$12k,换取6%的股份。这很合理,甚至比我们自己当年那条款还划算一倍。而且那年夏天特别热,Jessica还给每个创始人送了空调。[16]
不久我意识到:我们无意中发现了“可扩展的创业投资方式”。一次投一批公司不仅对我们更高效——可以集中处理问题,对创始人而言也更好。它解决了创业中最棘手的问题之一:孤独感。现在你有了一群伙伴,他们了解你面对的问题,甚至能告诉你他们是怎么解决的。
YC发展过程中,我们还发现了其他规模化带来的好处。校友们组成了一个紧密的社区,大家乐于互帮互助,尤其对现役的“在孵公司”更是如此——因为他们记得自己当年也是这么起步的。我们还发现,这些初创公司彼此开始成了对方的客户。我们当时还半开玩笑地叫它“YC GDP”(国内生产总值),但随着YC不断壮大,这玩笑变得越来越像真的。现在许多初创公司早期用户几乎都来自他们所在的YC批次。
我原本并没打算把YC当成全职工作。我想三件事一起做:写代码、写随笔、做YC。随着YC不断发展,我自己也越来越兴奋,它开始占据我超过1/3的注意力。但在最初几年,我仍然有精力做别的事。
到了2008年,Jessica出版了她那本关于创业者访谈的书《创始人的工作》(Founders at Work)。那本书让我意识到:我真正擅长的,其实是分析早期创业公司。那之后,我开始专注于写YC公司初创阶段的核心问题。可以说,从那一刻起,我变成了YC的“研究部”。
2009年,我写了一篇叫《创业=成长》的随笔,它解释了YC模式的核心理念。之后,我写了很多对创始人有指导意义的文章,比如《如何筹资》《做不具规模的事》《制造用户喜爱的产品》。我还写了篇叫《黑客的起点》的文章,用来鼓励更多程序员去创办公司。写这篇文章时,我在想:“如果我现在还20岁,会希望有人告诉我什么?”这个问题成了我日后许多写作的出发点。
我每年还会和所有YC公司一对一见面。这让我对我们投资的初创公司有第一手的认识。我把这些公司看作自己的实验材料。很多人认为,真正的“实验”是创始人做的产品。而我发现,更有趣的实验,是创始人本身。
我注意到,有些创始人具有我们称为“能把事情做成”的品质。他们拥有某种执行力和自驱力,无论遇到什么障碍都能找到出路。这是我在Viaweb时亲身体验过的:如果你有能力解决问题,那创业就像玩某种类型的游戏——总是有新的挑战等你去解。如果你不具备这种能力,那创业则像一场持续的失败。
我还注意到,有些创始人明显比其他人聪明。这可能听起来有点势利,但现实确实如此。聪明不是唯一的成功因素,但它确实是一个强相关指标。聪明的创始人,会更快学会应对新问题,会更容易找对方向。
另外,有些创始人非常勤奋。他们的那种投入程度,让人敬佩。你可以从他们的语气中感受到那种“我不惜一切也要让它成功”的决心。
一旦我意识到这些特质,我就开始试图在更早阶段识别它们。我们面试时的问题,也越来越侧重于寻找这三类信号。我们逐渐放弃“看点子”,转而“看人”。
2010年,我注意到创业公司在YC批次之间也会发展得很快,所以我们决定增加一个冬季批次。我们开始从一年投两个批次,变成一年投四个批次。随着YC的发展,我们也不得不扩大团队。于是我邀请了YC校友Harj Taggar加入我们,后来又找来了我们投过的创始人Aaron Harris和Kat Manalac。
Sam Altman那时也开始频繁出现在我们办公室。他最早只是来指导我们投资的初创公司,但他提出的建议非常有价值,所以我们越来越依赖他。2014年,我决定把YC总裁的位置交给他——我开始意识到,我并不喜欢“管理”这件事。我们四位创始合伙人都不太爱管人。YC本来是个“没有员工”的公司,我们喜欢那样。
把YC交给Sam之后,我回到了自己最擅长的领域:写作。2014年我写的几篇文章,反响非常好:《如何创业》《初创公司的谬误》《如何筹资》等。之后我又写了《如何思考初创公司》。这些文章很多已经被翻译成多国语言,也成了不少创业者的入门读物。
2020年我退出了YC的所有日常事务,只保留了董事会席位。我开始全职写作,同时也帮Jessica带孩子。我们有两个孩子,我非常享受陪伴他们成长的过程。成为父亲也改变了我写作的内容和风格。我写了更多关于教育、人生选择、成长经验的随笔。比如《如何成长》《如何理解自己》等。
我现在的生活节奏比以前慢了很多。我不会再像20多岁那样通宵写代码,或者在凌晨两点给创始人打电话。但我仍然在工作。我的工作,就是观察、思考、写作。我也还在寻找新的想法。我不确定接下来会做什么,也许我还会再创一次业,也许我会继续写一辈子的随笔。
我已经做了很多事,也写了很多文章。但我觉得自己还没有真正写出“代表作”。我现在每天都在尝试,写得更深刻、更有价值。因为我知道,我还没到“作品封顶”的年纪。
我不知道我最终会以什么身份被人记住。可能是“黑客与画家”的作者,可能是YC的创始人,可能是某个未诞生作品的写作者。也许没人会记住我。但我很幸运,这一生做过那么多我想做的事,而且很多事,做得还不错。
我写下这篇文章,是想把我的人生工作轨迹做一个总结。它不是为招聘官写的简历,而是为那些想知道“你一生都在做什么”的朋友写的。现在你知道了,我一直在做我认为最值得做的事。而且,我会继续做下去。
英文版:paulgraham.com/worked.html|中文版:HiJiangChuan.com/paulgraham/198-What-I-Worked-On
更新记录:
- 2025-07-24 HiJiangChuan 初稿翻译,术语待验证;
- 2025-09-01 重新梳理,修正专业词汇的使用;