如果你能读完这本书,不妨给我发个简历。
有些书,读过可以提升学识。还有一种书,即便不看,搁在书架都能“让人精神升华”。
对于程序员来说,后者中的极品,当数斯坦福教授 Donald Knuth 的《
计算机程序设计艺术(The Art of Computer Programming)》。本书“教徒”比尔·盖茨曾言:
如果你觉得自己是一名优秀的程序员,那就去读《The Art of Computer Programming》吧。
对我来说,读完这本书不仅花了好几个月,而且还要求我有极高的自律性。如果你能读完这本书,不妨给我发个简历。
▲ 也许比你老师还常叫你读书的盖茨,图片来自《TIME》
工程师兼创业家 Carl Tashian 就是被这个挑战吸引到的人……之一。
对于我来说,下购买这套书的订单,庄严程度堪比获得重要的职业成就。在它到来前,我为它在书架上腾出了专属的空间。
Tashian 在文章中写道。
▲ 让智慧之光照亮爱范儿读者,图自斯坦福
虽然他联合创立了 Yerdle、Zipcar、OurGoods 等公司,还是 Code for America、Singularity U 等项目的导师,但 Tashian 还是成功地完成了“从下订单购买到放弃”的整个流程,爱范儿(微信号 ifanr)简单地汉化了他的心路历程。
最终,这套书只能成为他书架上的一道信仰之光。不过,Tashian 在苦苦挣扎的过程中还是获得了新的领悟。
这一整套书,满满地装载了作者 Knuth 对一台 60 年代计算机 IBM 650 的爱。要知道,在那时候迷恋计算机,就跟现在沉迷应用数学一个等级。IBM 650 除了用十进制(现在都用二进制)外,还不配备屏幕,“人就是那时的操作系统。”
譬如说,你想生成斐波纳契数。你必须先写好机器级别的操作代码。然后手工组装你的程序,并用打孔机依照程序需求打出一副卡片。
如果想进一步优化程序,那又是另一片新天地。(其实是编辑看不懂了)
▲ 使用 IBM 650 的 Knuth,由 Siobhán K Cronin 绘制
Tashian 认为,IBM 650 采用的编程方式,决定了那个年代程序的功能表现:“我觉得,在 Knuth 时代写代码也许就跟走钢丝一样令人紧张,因为小错误都会带来严重后果。”
▲ Donald Knuth,图自 Business Insider
随着科技发展,编程工具变得越来越便利。但这种便利也带来了一个弊端:
现在的软件开发好玩多了。也正因如此,我们经常会在仔细思考前就动手开写,这带来了不少问题。伟大的软件,要求我们做大量思考,而便利,让我们失去严谨性。
Tashian 总结道。在他看来,Knuth 和那时期的程序员必须得比计算机还聪明,他们得和技术的限制进行搏击,每一个举动和决策都是深思熟虑后的结果。但现代人,却连通读 Knuth 撰写的书,也耐心不来,挺不过去。
当今的技术更加柔和,连规则,都是操作者自己制定的。对此,Tashian 说道:“我觉得,所有在为自己选择目标开发环境限制程度的人,也都同时在为我们未来创新选择发展环境。”