# 编程软件越来越容易用，你编起程来却越来越不谨慎

- 作者：方嘉文
- 发布时间：2018-08-02 10:05
- 原文：https://www.ifanr.com/dasheng/1077949

![](https://s3.ifanr.com/wp-content/uploads/2018/08/bgi.jpg)

有些书，读过可以提升学识。还有一种书，即便不看，搁在书架都能“让人精神升华”。

对于程序员来说，后者中的极品，当数斯坦福教授 Donald Knuth 的《  
计算机程序设计艺术（The Art of Computer Programming）》*。*本书“教徒”[比尔·盖茨](https://www.technologyreview.com/s/400456/rewriting-the-bible-in-0s-and-1s/)曾言：

> 如果你觉得自己是一名优秀的程序员，那就去读《The Art of Computer Programming》吧。
> 
> 对我来说，读完这本书不仅花了好几个月，而且还要求我有极高的自律性。如果你能读完这本书，不妨给我发个简历。

![](https://s3.ifanr.com/wp-content/uploads/2018/07/bill-gates-summer-books.jpg)▲ 也许比你老师还常叫你读书的盖茨，图片来自[《TIME》](http://time.com/5282851/bill-gates-summer-reading-recommendations/)



工程师兼创业家 Carl Tashian 就是被这个挑战吸引到的人……之一。

> 对于我来说，下购买这套书的订单，庄严程度堪比获得重要的职业成就。在它到来前，我为它在书架上腾出了专属的空间。

[Tashian](https://medium.freecodecamp.org/the-art-of-computer-programming-by-donald-knuth-82e275c8764f) 在文章中写道。

![](https://s3.ifanr.com/wp-content/uploads/2018/07/taocpb.jpg)

▲ 让智慧之光照亮爱范儿读者，图自[斯坦福](https://www-cs-faculty.stanford.edu/~knuth/taocp.html)



虽然他联合创立了 Yerdle、Zipcar、OurGoods 等公司，还是 Code for America、Singularity U 等项目的导师，但 Tashian 还是成功地完成了“从下订单购买到放弃”的整个流程，爱范儿（微信号 ifanr）简单地汉化了他的心路历程。

![](https://s3.ifanr.com/wp-content/uploads/2018/07/tas.001.jpeg)

最终，这套书只能成为他书架上的一道信仰之光。不过，Tashian 在苦苦挣扎的过程中还是获得了新的领悟。

这一整套书，满满地装载了作者 Knuth 对一台 60 年代计算机 IBM 650 的爱。要知道，在那时候迷恋计算机，就跟现在沉迷应用数学一个等级。IBM 650 除了用十进制（现在都用二进制）外，还不配备屏幕，“人就是那时的操作系统。”

> 譬如说，你想生成斐波纳契数。你必须先写好机器级别的操作代码。然后手工组装你的程序，并用打孔机依照程序需求打出一副卡片。

如果想进一步优化程序，那又是另一片新天地。（其实是编辑看不懂了）

![](https://s3.ifanr.com/wp-content/uploads/2018/07/ilu.jpg)

▲ 使用 IBM 650 的 Knuth，[由 Siobhán K Cronin 绘制](https://medium.freecodecamp.org/the-art-of-computer-programming-by-donald-knuth-82e275c8764f)



Tashian 认为，IBM 650 采用的编程方式，决定了那个年代程序的功能表现：“我觉得，在 Knuth 时代写代码也许就跟走钢丝一样令人紧张，因为小错误都会带来严重后果。”

![](https://s3.ifanr.com/wp-content/uploads/2018/07/dek-14may10-1.jpeg)

▲ Donald Knuth，图自 [Business Insider](https://www.businessinsider.in/bill-gates-once-said-definitely-send-me-a-resume-if-you-finish-this-fiendishly-difficult-book/articleshow/58795297.cms)



随着科技发展，编程工具变得越来越便利。但这种便利也带来了一个弊端：

> 现在的软件开发好玩多了。也正因如此，我们经常会在仔细思考前就动手开写，这带来了不少问题。伟大的软件，要求我们做大量思考，而便利，让我们失去严谨性。

Tashian 总结道。在他看来，Knuth 和那时期的程序员必须得比计算机还聪明，他们得和技术的限制进行搏击，每一个举动和决策都是深思熟虑后的结果。但现代人，却连通读 Knuth 撰写的书，也耐心不来，挺不过去。

当今的技术更加柔和，连规则，都是操作者自己制定的。对此，Tashian 说道：“我觉得，所有在为自己选择目标开发环境限制程度的人，也都同时在为我们未来创新选择发展环境。”
