2020年程序员/工程师必看的三本编程书籍( 二 )

前几天 , 同事问我如果用平时通勤的时间来充电 , 应该看什么书 。 我回忆了一下对我影响最大的三本编程书 。

《Structure and Interpretation of Computer Programs》

第一本是《 Structure and Interpertation of Computer Programs》 , 简称为 SICP , 这本书有在线版本:https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book.html 。 这是曾经 MIT 计算机系本科生的教材 , 用 Lisp 的一种极简的方言 Scheme 语言作为初学者编程语言 —— 而不是常用的 Java、Python、C —— 是不是很反智?实际上 , 这正是这本书的精髓 。

大部分程序员如果被问到一个问题:如何把一串整数顺序颠倒过来 , 大家会考虑用一个数组存储这些整数 , 用两根指针分别从数组两段向对面扫描 , 依次交换两根指针指向的整数 , 直到两根指针相遇 。 其实类似的问题 , 这样的解决思路 , 在美国公司的面试里也经常碰到 。 它让程序员充分利用内存是 randomly accessible 的特点 , 来选择高效率的数据结构 , 设计高效的算法 。

推荐阅读