《黑客与画家》是保罗·格雷厄姆(Paul Graham)的文集,也是程序员文化入门的经典读物。

我第一次读这本书,是刚入行做程序员的时候。那时候只觉得里面的观点很有趣,但理解不深。最近重读,有了很多新的感悟。

这本书不教你写代码,而是教你理解程序员的思维方式、创业的本质、以及技术和艺术的关系。它能让你明白,编程不只是一份工作,更是一种创造;程序员不只是码农,更是新时代的工匠和艺术家。

今天分享我的读后感,包括书中最有启发的几个观点、对我影响最大的文章,以及这本书为什么值得每个程序员读一读。

一、保罗·格雷厄姆是谁

先简单介绍一下作者。

保罗·格雷厄姆(Paul Graham),程序员、作家、投资人,Y Combinator的创始人。

他的经历很丰富:

  • 哈佛大学计算机博士
  • 创办了Viaweb(后来被雅虎收购,成为Yahoo Store)
  • 创办了Y Combinator,投资了Airbnb、Dropbox、Stripe、Reddit等知名公司
  • 写了很多关于编程、创业、技术的文章,在程序员圈子里影响很大

格雷厄姆的写作风格很特别,深入浅出,用简单的语言讲深刻的道理。他的文章不像学术论文那样晦涩,也不像鸡汤文那样空洞,而是有思想、有洞见、有实例。

《黑客与画家》是他的第一本文集,收录了他最有代表性的几篇文章。虽然写于2000年代初,但里面的观点放到今天依然适用,甚至更加深刻。

二、为什么叫"黑客与画家"

书名"黑客与画家",来自书中的第一篇文章。

格雷厄姆认为,黑客(程序员)和画家有很多相似之处:

  • 都是创造者:画家创造画作,黑客创造软件
  • 都需要技术:画家需要掌握绘画技巧,黑客需要掌握编程技术
  • 都需要审美:画家要懂得美,黑客要懂得好代码的美
  • 都是手艺活:都需要长期练习,熟能生巧
  • 都在创造中获得快乐:创造的过程本身就是一种享受

但社会对两者的态度不同。画家被认为是艺术家,受人尊敬;黑客被认为是技术工人,甚至是"书呆子"。

格雷厄姆说,这是一种误解。黑客和画家一样,都是创造者。好的代码,就像好的画作一样,是有美感的。

这个观点对我影响很大。它让我明白,编程不只是一份谋生的工作,更是一种创造性的活动。写代码的时候,我们不只是在实现功能,也是在创造一件作品。

三、书中最有启发的几个观点

说说书中最让我有启发的几个观点。

1. 书呆子为什么不受欢迎

这是书中的第二篇文章,也是我最喜欢的一篇。

格雷厄姆分析了为什么在学校里,聪明的孩子(书呆子)往往不受欢迎。他的观点是:在学校里,受欢迎需要花时间和精力去经营人际关系,而书呆子把时间花在了学习和思考上,所以没有精力去经营人际关系。

而且,学校的环境是一个封闭的小社会,有自己的规则。在这个小社会里,受欢迎比聪明更重要。但出了学校,到了真实世界,聪明和能力比受欢迎更重要。

格雷厄姆说,书呆子在学校里不受欢迎,不是因为他们不擅长社交,而是因为他们不把社交当作最重要的事。他们有更重要的事要做——学习、思考、创造。

这个观点让我很有共鸣。我上学的时候也是个书呆子,朋友不多,不太合群。那时候觉得是自己的问题,现在看来,只是因为我把时间花在了我认为更重要的事情上。

而且,出了学校之后,书呆子往往混得不错。因为真实世界奖励的是能力和创造,而不是社交技巧。

2. 黑客如何工作

格雷厄姆在这篇文章里讲了黑客的工作方式。

他说,黑客的工作方式和画家很像:

  • 不是先画好蓝图再动手,而是边做边改
  • 不是一次性完成,而是不断迭代
  • 不是按部就班,而是有灵感的时候效率最高
  • 不是孤立工作,而是需要交流和反馈

这和传统的软件工程方法很不一样。传统方法强调需求分析、设计、编码、测试的瀑布流程。但格雷厄姆认为,好的软件是"长"出来的,不是"建"出来的。

他还说,黑客需要有好的工具。就像画家需要好的画笔和颜料,黑客需要好的编程语言和开发环境。

这个观点影响了后来的敏捷开发和快速迭代。现在的互联网公司,都是小步快跑、持续迭代,这和格雷厄姆说的黑客工作方式是一致的。

3. 为什么书呆子不受欢迎(续):受欢迎的本质

格雷厄姆还分析了受欢迎的本质。他说,在学校里,受欢迎的人往往是那些最会经营人际关系的人,而不是最聪明或最有能力的人。

但这种受欢迎是虚假的。它建立在一个封闭的小社会里,出了这个小社会就没用了。

他说,真正的自信,不是来自别人的认可,而是来自自己的能力和创造。当你能创造出有价值的东西时,你就不需要靠别人的认可来证明自己。

这个观点让我明白,不要太在意别人的看法。把时间花在提升自己、创造价值上,比花在经营人际关系上更有意义。

4. 另一条路:创业

格雷厄姆在书里讲了创业的故事。他创办Viaweb的经历,是最早的SaaS(软件即服务)创业之一。

他说,创业的好处是:

  • 你可以做自己想做的产品
  • 你可以按自己的方式工作
  • 你的回报和你的付出成正比
  • 你可以创造出有价值的东西

但创业也很辛苦:

  • 工作时间长,压力大
  • 收入不稳定
  • 需要面对各种问题和挑战
  • 成功率很低

格雷厄姆说,创业不适合所有人。但对于那些想创造、想自由、想掌控自己命运的人来说,创业是一条值得走的路。

这本书里关于创业的观点,后来成为了Y Combinator的核心理念,也影响了整整一代创业者。

5. 编程语言的设计

格雷厄姆是编程语言专家,他对编程语言有很多深刻的见解。

他认为,好的编程语言应该:

  • 简洁:用最少的代码表达最多的意思
  • 灵活:能适应不同的需求
  • 强大:能表达复杂的逻辑
  • 有趣:用起来让人愉快

他特别推崇Lisp语言,认为Lisp是最强大、最优雅的编程语言。他说,Lisp的宏(macro)系统,让程序员能扩展语言本身,这是其他语言做不到的。

虽然Lisp没有成为主流,但它的思想影响了很多现代语言。Python、Ruby、JavaScript等语言,都吸收了Lisp的一些特性。

格雷厄姆关于编程语言的观点,让我明白:编程语言不只是工具,更是一种思维方式。不同的语言,会让你用不同的方式思考问题。

6. 设计与研究

格雷厄姆在这篇文章里比较了设计和研究。

他说,设计是为了解决具体的问题,研究是为了探索未知。但好的设计和好的研究,有一些共同的特点:

  • 好的设计是简单的
  • 好的设计是永恒的
  • 好的设计解决正确的问题
  • 好的设计是不断迭代的
  • 好的设计是有趣的

这些观点,不仅适用于产品设计,也适用于软件设计、建筑设计、甚至人生设计。

四、对我影响最大的文章

对我影响最大的,是这几篇文章:

1. 《黑客与画家》

这篇文章让我重新认识了程序员这个职业。编程不只是写代码,更是一种创造。好的程序员,就像好的画家一样,有技术、有审美、有创造力。

这篇文章让我为自己是一个程序员而自豪。

2. 《书呆子为什么不受欢迎》

这篇文章让我理解了自己的过去。上学时的不合群,不是我的问题,而是我把时间花在了更重要的事情上。

这篇文章也让我对那些"不合群"的孩子多了一份理解和宽容。

3. 《另一条路》

这篇文章讲创业,让我对创业有了初步的认识。虽然我后来没有创业,但这篇文章影响了我的工作态度:要像创业者一样思考,主动创造价值,而不是被动完成任务。

4. 《编程语言的设计》

这篇文章让我对编程语言有了更深的理解。我开始学习不同的编程语言,体会不同的编程范式,这大大提升了我的编程能力。

五、这本书的局限

当然,这本书也有一些局限。

1. 写作时间较早

这本书写于2000年代初,有些内容已经过时了。比如里面提到的一些技术和公司,现在已经不存在了。

但核心观点是不过时的。关于创造、关于创业、关于技术和艺术的关系,这些观点放到今天依然适用。

2. 有些观点比较理想化

格雷厄姆的有些观点比较理想化。比如他说黑客应该像画家一样自由创作,但在实际工作中,程序员往往要面对需求变更、项目截止、团队协作等现实问题。

但理想化不是坏事。有理想,才有追求的方向。

3. 主要面向程序员

这本书主要面向程序员和创业者。如果你不是这个圈子的人,可能有些内容不太好理解。

但即使不是程序员,这本书里关于创造、关于学习、关于人生的观点,也很有启发。

六、适合谁读

这本书适合这些人读:

  1. 程序员,尤其是刚入行的程序员
  2. 想创业的人
  3. 对技术文化感兴趣的人
  4. 想理解程序员思维方式的人
  5. 喜欢思考和创造的人

不适合:

  1. 想学习具体编程技术的人(这本书不教写代码)
  2. 不喜欢思考、只想读轻松读物的人
  3. 对技术完全不感兴趣的人

七、阅读建议

如果你想读这本书,给几个建议。

1. 不用按顺序读

这是一本文集,每篇文章独立。可以挑自己感兴趣的先读,不用按顺序。

我建议先读《黑客与画家》《书呆子为什么不受欢迎》《另一条路》这几篇,最有代表性。

2. 慢慢读

这本书虽然不厚,但内容很有深度。每篇文章都值得慢慢读、细细品味。

读的时候,想想自己的经历和工作,会有很多共鸣。

3. 结合格雷厄姆的其他文章

格雷厄姆的个人网站上有更多文章,都很值得读。这本书只是精选了一部分。

如果觉得这本书好,可以去他的网站上读更多。

4. 批判性地读

格雷厄姆的观点很深刻,但也不是全部正确。读的时候要批判性思考,结合自己的经验判断。

八、这本书如何改变了我

读《黑客与画家》,对我有很大的改变。

1. 对编程的理解变了

以前我觉得编程就是写代码实现功能。读完书我明白,编程是一种创造,好的代码是有美感的。

现在写代码的时候,我会追求代码的简洁、优雅、可维护性,而不只是能跑就行。

2. 对工作的态度变了

以前我觉得工作就是完成任务、拿工资。读完书我明白,工作也是创造价值的过程。

现在我会主动思考:我做的东西有没有价值?能不能做得更好?能不能创造更多?

3. 对学习的态度变了

以前我觉得学一门语言就够了。读完书我明白,不同的语言有不同的思维方式,多学几门语言能开阔眼界。

后来我学了Python、Go、Rust等语言,每学一门都有新的收获。

4. 对创业的理解变了

以前我觉得创业离我很远。读完书我明白,创业不只是开公司,更是一种心态:主动创造价值,解决问题,承担风险。

虽然我没有创业,但这种心态影响了我的工作和生活。

九、写在最后

《黑客与画家》是一本改变了我很多观念的书。

它让我明白,程序员不只是"码农",更是创造者。编程不只是一份工作,更是一种艺术。好的代码,就像好的画作一样,能给人带来美的享受。

它也让我明白,书呆子不是缺陷,而是一种特质。那些在学校里不受欢迎的孩子,可能只是把时间花在了更重要的事情上。出了学校,他们的才华会得到认可。

2022年了,程序员这个职业已经很普及了,但很多人对程序员的理解还停留在"修电脑的""写代码的"。希望更多人能读读这本书,理解程序员的文化和思维方式。

也希望每个程序员,都能从这本书里找到共鸣,为自己的职业感到自豪。

最后,用格雷厄姆的一句话结尾:"最好的黑客,和最好的画家一样,都是在创造美。"

愿我们都能在编程中,找到创造的快乐和美的享受。