专栏名称: 图灵教育
是好书,把我们联系在一起
目录
相关文章推荐
英文悦读  ·  为什么要说who ... ·  1 周前  
英文悦读  ·  听力应该怎么练才有效? ·  3 天前  
BetterRead  ·  应对AI挑战最简单的方法 ·  2 天前  
清晨朗读会  ·  渊源直播 ·  5 天前  
清晨朗读会  ·  清晨朗读3180:When Your ... ·  5 天前  
51好读  ›  专栏  ›  图灵教育

20年前的思维,今天还很前沿,超牛的书!

图灵教育  · 公众号  ·  · 2024-12-19 16:20

正文

一本好书的魅力在于“常读常新”。它不仅凝结了作者几十年的智慧与经验,更是需要反复品味才能真正理解与掌握。即使是同样的文字,在不同的时光与心境下阅读,常常能激发出全新的思考与感悟。《黑客与画家》正是这样一本值得反复阅读的经典之作。

老彼得·勃鲁盖尔的《巴别塔》

Paul Graham 的《黑客与画家》是一本充满个人洞见的作品。如果你对 Paul Graham 这个名字不熟悉,可以参考维基百科对他的描述:
“他以其在 Lisp 编程语言上的工作、早期创立的初创公司 Viaweb(后更名为 Yahoo! Store)、创立知名创业加速器及种子基金 Y Combinator、他的博客以及 Hacker News 而闻名。”
这本书出版于 2004 年,距今已二十年之久。然而,其中关于计算机编程和创新思维的见解依然发人深省。在这里,我想谈谈书中对编程的一些核心思考,这些观点不仅深刻,还影响了许多技术实践。(当然,如果你不是程序员,你对编程没有任何兴趣,可以直接跳到后半部分阅读。)

编程可以像绘画一样有趣

编程与绘画之间的类比是书中的核心思想之一,正如他在 书中同名章节「黑客与画家」中 详细探讨的那样。两者的相似之处在于它们的创造性本质,而非科学性:
“黑客与画家的共同之处,在于他们都是创作者。与作曲家、建筑师、作家一样,黑客和画家都是试图创作出优秀的作品。他们本质上都不是在做研究,虽然在创作过程中,他们可能会发现一些新技术(那样当然更好)。 ”
Paul 在这里将编程描述为一种艺术创作,而不是传统意义上的工程实践。这一观点启发我们重新思考编程教育和技术开发的方式。科学或数学的正式训练固然重要,但并非成为优秀程序员的唯一途径。借鉴艺术创作的经验,比如注重直觉和试验性思维,可以大幅改善编程工具和方法。
此外,Paul 提出了一个具有挑战性的观点:技术的真正价值不在于精确性,而在于其创造性如何改变世界。这种对技术的审视也为后来众多创新者提供了灵感。

编程,其实是一场探索之旅

很多人误以为优秀的程序员应该一开始就知道如何解决问题,并像数学家心算那样直接完成代码。你是否也曾因为需要多次尝试才能解决一个问题而感到挫败?
Paul 反对这种误解。他指出,编程的过程本质上是探索性的,这与他在书中讨论动态语言的章节内容紧密相关:
“你应该在编写程序的过程中逐步解决问题,就像作家、画家和建筑师在创作过程中一样。”
这一点揭示了编程的真正工作方式。程序员并非一开始就拥有所有答案,而是通过反复试验找到解决问题的最佳方法。这种观点对编程工具的设计提出了新的要求:
“编程语言应该是灵活的,是帮助我们思考的工具,而不是仅仅用于表达已经完成的想法。它应该像铅笔,而不是钢笔。”
Paul 特别强调,动态类型的语言特性能够帮助程序员更自由地构思和实验。这一观点在书中「设计与研究」章节得到进一步阐释,他认为灵活性是推动创新的关键。在他看来,编程工具的灵活性和适应性比绝对的规范性更加重要。
尽管动态类型语言近些年来面临静态类型语言的竞争,其核心价值仍然体现在许多领域。例如,Python 的广泛使用表明,在探索性任务中,灵活性依然是开发者的重要需求。

什么样的编程语言最理想?

“一种好的编程语言应该像油画一样,能够让你轻松地改变主意。”
Paul 指出,油画的独特魅力在于它允许艺术家在原型的基础上不断修改和完善,直到完成最终作品。
“油画之所以令人兴奋,是因为你可以用它在原型的基础上完成最终作品。”
他认为,这种特性同样适用于理想的编程语言设计。然而,编程语言需要兼顾快速原型开发和生产级别的可靠性,这使得实现这种特性变得困难。
Paul 强调,评估编程语言不能只看最终代码的简洁性,更重要的是从原型到成品的整个开发过程是否顺畅。他在书中进一步探讨了这一点,提出好的语言设计必须兼顾探索与生产:
“一种语言的评判标准,不仅在于它写出的最终程序是否简洁,还在于通往最终程序的路径是否流畅。”
这一观点具有深远的意义:程序开发是一段旅程,而不是一个静态的终点。语言的设计需要为程序员提供改进和演化的空间,从而推动创新。

最后,Paul 留给我们的思考

《黑客与画家》不仅仅是一本关于编程的书,更是一份对创造力本质的思考。Paul 通过绘画的隐喻,将编程从传统的工程学框架中解放出来,赋予它更多的人文意义和艺术价值。
书中强调的几点启示包括:
  • 编程是一种创造性的艺术 :它不应该局限于科学和工程的视角,而应该更多地向艺术和设计借鉴方法。
  • 探索是编程的核心 :程序员应该接受试错的过程,并利用灵活的工具支持这种探索。
  • 语言设计需要关注过程 :好的编程语言不仅要关注结果,还需要优化开发的路径。
从这些思想中,我感受到 Paul 对技术的思考始终以人性为核心。他所描绘的编程不仅是一种技能,更是一种让世界变得更好的方式。

硅谷创业教父Paul Graham畅销20年的思想经典



如果你不是程序员,你对编程没有任何兴趣。
槽边往事和菜头 在 2020 年重读经典《黑客与画家》的感悟 中有给到大家建议:
“《黑客与画家》这本书的大受欢迎,






请到「今天看啥」查看全文