《黑客与画家》十周年——Paul Graham 访谈

注:原文是《黑客与画家》这本奇书出版十周年之际,Chris Castiglione 对原书作者 Paul Graham 的采访记录。

2003年,《黑客与画家》这本书问世了。不过黑客技术这个词还很不像现在这样高端洋气,计算机科学、创业公司也是如此。

就在这一年,我开始学习编程。
但我却栽在了计算机科学这门课程上,栽得很彻底:只得了F。
我灰心丧气,几乎决定要放弃计算机这条路。

然后,我读到了《黑客与画家》这本书,翻然醒悟:“作者才是真正的明白人。我学不好计算机科学,问题不是出在我自己身上,而是学校上课的方式本身就不对” [1] 。要作一个软件开发者,我不需要首先事无巨细地把所有计算机知识通通学一遍。我可以从软件开发的过程中学习需要的技能。认识到这一点之后,我从挫败与悲观中解脱出来。

《黑客与画家》让我开始思考软件开发人员的职责到底是什么。我要成为一名艺术家,而不是科学家。

十年后的今天,我已经在教别人学习编程。不过仍然有一些困扰我的问题;

  • 这十年来,计算机科学有没有发生变化?
  • 每个人都应该学习编程吗 [2] ?
  • Paul Graham 关于编程普及化 [3] 的预言实现了吗?
  • 为了得到答案,我找到了这些疑问的始作俑者。下面就是我对 Paul Graham 的采访。

关于‘计算机科学’

从你写《黑客与画家》到现在已经十年了。这篇文章里你设想了在不远的将来,计算机科学将不再只属于少数精英。并且会衍生出很多细分的领域。你觉得我们已经进入这样的时期了吗?

PG:这些似乎确实正在发生。以前,大量的研究局限在计算机科学家的小圈子里,今天的 GitHub 上正上演着类似的互动,而这些参与者根本没觉得自己在从事计算机科学的研究。

所以,我所说的变化其实已经成真了。

至于说细分的领域,可以说无处不在。现在有前端黑客、后端黑客,还有操作系统黑客,一直到硬件黑客。

过去十年里,编程好像是变成了系统维护。一大部分工作用在了安装和整合各种开发工具。以前,开发软件主要靠调用软件包,现在则更像是把别人写好的开源模块的代码整合到一起。

所以,很类似系统管理员的职责。过去,系统管理员负责安装工具,程序员负责写代码。而现在的程序员也都很擅长工具的安装,并且为能够优化这些工具的配置而深感自豪。

关于创业

CC:我想创业,但是我不会编程……怎么办?

PG:营销。早期的创业公司最需要做好两件事:拿出产品,说服用户。如果你的强项不是产品开发,那就要做好产品推广。

说服用户的意思是让他们愿意用你的产品。无论是不是你的强项,要是没有编程技能,你只能去做营销。

CC:非技术背景的创始人能招到好的开发人员吗?

PG:看情况。现在有些创业公司所做的业务本身就没有很强的技术性。比如零售行业,一般都用不到很尖端的技术。所以说,某种程度上而言,就算你没有技术背景,也可以招到能干活的程序员来做产品。但是没有技术背景会增加招聘的难度,因为很难对应聘者做出正确的判断。

我知道一些创始人正是被这个问题困扰:他们不清楚手下的程序员水平到底怎么样,他们自己无从判断。

CC:那么……你怎么判别开发人员的好坏?

PG:没有很好的办法。我们在 Y Combinator 孵化器所资助的那些只有一个创始人,并且创始人不具备技术背景的创业公司里,可能没有一家能解决好这个问题。判别开发人员好不好,这个问题非常难。

你需要一个技术很好的朋友。不过说回来,你又怎么知道你朋友是不是真的技术好呢?(哈哈哈)

要是你有这样一个朋友,那可以保证最先招进来的几个人是技术高手。然后,通过这些人可以完成其他岗位的招聘。实在没办法,只要保证至少有一个人技术过关就可以了。可是这个人又上哪里找呢?

要是你自己对去哪儿找优秀的程序员这件事没经验,那就需要找个经验丰富的人来负责招聘。

CC:通过 One Month Rails 的培训课程,我们发现有几个月的编程经验会对(管理人员)与程序员的沟通有所帮助。你觉得是这样吗?在运作科技公司的时候,懂得一点编程知识会使得管理更有成效吗?

PG:有帮助!有很大帮助。

实际上,如果有创业者面临去读商科学校还是去学编程的选择,我会建议学编程。商科学校能教会你什么呢?是如何去做一家大公司的管理层,如何管理下属,如何做报表……创业公司不需要这些技能。

CC:对想获得 Y Combinator 投资的小公司,你有推荐的编程语言吗?

PG:要是有人用 COBOL 开发产品,我会很担心他们的前途。并且要问一句为什么。(哈哈哈)

除此之外,我对编程语言没有倾向。有些创业公司用 PHP——我有点担心他们。不过,还有其他事情需要担心,编程语言不是最主要的。

CC:你会雇佣那些技术很好,但是大学没毕业的人吗?

PG:会!“我会雇佣比尔·盖茨吗?”,当然会。不过盖茨可不是什么公司都能有幸招到。他是我最想招的人。

上大学总归有好处。但是对于创业公司来说,大学文凭不是必需的。

大学可以开拓视野:可以学到以前闻所未闻的事情。所以说,上大学可以从总体上让人变得更聪明。

不过,那些中途退学的人,和一口气读到 PhD 的人比起来,我看不出任何高下之分。

CC:你的意思是,现在的开发人员已经是“即插即用”?

PG:更深层的原因是,软件开发不像以前那么难。不是说从事软件开发已经今不如昔了,这个现象只是说明整个行业在不断前进……对我来说这个进程有点出乎意料,特别是在明明知道未来不可预测的前提下。

CC:我们听过很多(One Month Rails 的)学员说,“我是 Rails 高手,但我不想成为计算机科学家”。他们不追求计算机科学家这样的名号,不以为耻反以为荣,这是一种自暴自弃吗?

PG:那到底什么样的人才能算计算机科学家呢?既能编得一手好程序,又能搞得定自动化理论。(哈哈哈)

CC:在《黑客与画家》中你写过“画家比黑客更酷”。你现在还这么觉得吗?

PG:现在,当个黑客已经比当时高大上多了。不过聚会上勾搭妹子的时候我还是会说自己是画家。

CC:我们在课堂上把学员定位为“黑客”会怎么样?比说“开发人员”或者“计算机科学家”更好吗?

PG:说“黑客”当然很好。就连白宫有时候都会用“黑”这个词。“黑客”现在不光能用来形容软件领域的活动,而且已经具备了更加广泛的内涵。

无论是狭义的黑客还是广义的黑客,都已经成为了流行词。