我读大学是在 2009 - 2013 年,那个时候被认为最好的学 CS 的方法是读经典的书,比如 TCP / IP 、「算法导论」、「Unix 环境高级编程」等等。但是这些书有些写自 1980s - 1990s 甚至更早,而且大部分都很干,很难读,缺乏趣味性。我基本没有完整看过这些书,都是浅尝辄止。

10 年过去后,技术圈有了更多好书出现。他们大多数讲得深入浅出、插图精美,趣味性远强于经典著作,同时又简单易懂,学起来轻松不费力。我觉得现在的 CS 学生没有必要看这些大部头了入门了。下面推荐一些我觉得好的:

算法

Algorithms by Jeff Erickson

algorithm-jeff

当你有这些精美的插图来解释算法,甚至连习题都是这么精心准备时,有什么理由去看干巴巴的伪代码和公式呢?

algorithm-jeff-1

algorithm-jeff-2

这本书的一个优点(或者说缺点),是它不带有具体编程实现,只有伪代码。意味着你可以边学边用你熟悉的编程语言进行实现。

Algorithms 4th Edition

algorithm-princeton

这本来自普林斯顿大学的算法书,制作非常精良,不仅图片精致好看,同时也带了 Java 代码实现。

algorithm-princeton

操作系统

Operating Systems: Three Easy Pieces

ostep

围绕 virtualization、concurrency 以及 persistence 来讲述操作系统中的基本原理。这本书讲得非常生动,每节内容前都用教授和学生的对话带出问题,再具体分析问题、讲述概念。这个过程经常会穿插可以实际运行验证的代码。最终会有回顾和作业巩固你的知识。

北美近年来的教科书,似乎开始慢慢改变以前动不动就大而全的习惯,越来越易懂易学了。

其他

High Performance Browser Networking

hpbn-cover

浏览下它讲 TLS 的这一章,你大概就知道为什么我会推荐它。

Designing Data-Intensive Applications

data-intensive-cover

这本书可以说是 2018 年到现在 O’Reilly 最火的一本书了。真正做到了 dig deeper than buzzwords,带你走一遍常见的数据系统,对比各自优劣和适用场景。

Fluent Python

fluent-python

我最喜爱的 Python 书。看看我在这里写的 笔记,你可以看出我花了多少时间在这上面。Time well spent.

Read More >>

Python 中的 iterable, iterator 以及 generator,一直是非常亲密但是难以区分的概念。nvie 有一个很好的 帖子 阐述了它们之间的关系,但是内容偏向于概括和总结,对于新手来说仍然难以理解。Fluent Python 的第 14 章也有非常好的演绎,但是我认为它对「为什么要有这种语言特性」缺乏阐释。我试图从演变的角度,总结这些概念的来源和演化,以得到一个符合逻辑和容易理解的版本。

Read More >>

YouTube 是我日常吸收信息的一个非常重要的渠道。YouTube 上有太多其他传统渠道看不到的好内容。比如关于电影解析一类的话题,搜中文内容时往往只能搜到「X 分钟看完 XXX 的故事」「XXX 的彩蛋解析」,无趣加千篇一律;但是在 YouTube 搜英文内容时却能看到更有深度的内容,比如讲电影的叙事方式、运镜、剧本和具体表演相关的内容。

YouTube 和 podcast 在取代普通畅销书在我心目中的地位(其实也没看过几本书 =.=)。YouTube 的内容面广,而且视频是更高级的内容呈现手段,比看一本干巴巴的书来得有趣。Podcast 往往是围绕一个话题展开的对话,这种形式更符合人最常见的吸收信息的过程,而且对话中会有提问、有分析、有感想、有观点的碰撞,同时还有语气、情绪等信息,这是书本中经常难以体会到的。当然,好的书的内容也会比相对快餐的 YouTube 视频来得更系统全面。

本来这期想讲的两个 YouTube 频道,但是不够时间写,先写一个是带我入 YouTube 坑的频道。

Read More >>

Goodbye 2018, Hello 2019.

Read More >>

开启一个新系列,每期分享 2 个我认为的好内容。

Read More >>