有哪些编程书,看完让人大呼过瘾?
图片:Yestone 邑石网正版图库有哪些你看了以后大呼过瘾的编程书?
大学时我对编程语言有过一些困惑:应该学哪个编程语言?到底怎么样才算是掌握了编程语言?5 年前我幸运地看到了垠神在新浪博客的一篇文章——如何掌握程序语言,里面推荐阅读 SICP 的前三章。我读过之后,受益良多。
曾几何时,SICP 是每个 MIT CS 学生大一就要上的基础课的教材,毕竟是世界名校,比我们的课程不知高到哪里去了。然鹅,时过境迁,MIT 的教授们已经停止这门基于 SICP 的课程了,因为一方面他们已经教了太久(十几年了),感觉很烦了,另一方面他们认为软件工程的学生现在把大部分时间花在阅读软件库的说明书上,然后搞清楚怎么调用,SICP 跟这套工作流程已经不怎么相关了。
好了,虽说这门课已经不更新了,SICP 的作者承认他们并不知道应该如何安排更合理的课程,所以我们还是要看看这本书。
另外,基于这本书,伯克利的一位教授搞了个教学网站 - http://composingprograms.com/about.html,用 Python 来教 SICP,有兴趣可以去看看。这个网站的内容也是基于伯克利的 CS 61A,这门课的名字就叫 SICP。实际上 MIT 也已经用 Python 替换了 Scheme,所以我个人更推荐上面这个网站,比起 Scheme,Python 更加适合初学者。不过 SICP 的内容不会过时,Scheme 只是一个表现形式,扫一遍前三章也绝对不亏。非初学者也会有时看时新的感觉。
SICP 帮助读者了解 CS 的核心概念,属于从高空俯瞰世界,刚入门的读者不应该错过。
说完了高空,接下来我想推荐另一本中间高度的书,这本书帮助我从了解如何组织代码的模块,以及实践中业界遇到的问题,以及如何用合适的架构来解决这些问题。
Clean Architecture: A Craftsman's Guide to Software Structure and Design
这本书是 Uncle Bob 最近几年的博文合集,读完以后有种灵台清明的感觉,做 code review 的时候思路清晰了很多。
看过差的架构才明白好的有多么珍贵。架构都是一点点烂掉的,所以防微杜渐很重要,而要防微杜渐,就必须要从一开始就知道正确的架构方向。这本书不长,英文版也只需要不到 10 个小时就能读完,大学里或是工作中的读者应该会喜欢这本书。这本书 2017 年 9 月才出版,时效性远远超过经典的 Martin Fowler 的 Patterns of Enterprise Application Architecture,你如果准备读后者,建议你先读这本小书。
说完了中间高度,还有一本更加细节的书,我实在不能不推荐,因为我看到别人没提到,也许是因为这本书 2017 年三月才出版,还没有中文的。
Martin Kleppmann 的 DDIA:Designing Data-Intensive Applications
这本书的作者阅读量非常广泛,以数据密集型软件的设计为楔子讲了分布式系统的很多东西,从设计思路到一些具体细节,收放自如。从 Netflix 的技术博客,到开源软件的技术来源,再到 OSDI 上各个业界大厂发的论文,让我大饱眼福。一共 12 章节,目前看到了第 9 章。
如果说上一本是讲了高可扩展性、高可维护性的架构,是骨架;那么这本书是讲了分布式、高并发、高性能、高可用的软件,是血肉。细胞的级别讲不出来,绝知此事要躬行。
微软 CTO Kevin Scott 对这本书的评价是『每一位软件工程师的必读书。』
目前这本书在 Goodreads 上有 404 个评价,评分高达 4.68,要知道 SICP 才 4.45.
简单强调一下:国内的朋友不要排斥阅读英文资料,作者都是理工科,写作词汇量基本也就是四级英语,跟咱们高中英语差不多。
转载请注明:微图摘 » 有哪些编程书,看完让人大呼过瘾?