假设你是计算机科学的专家,如果让你向非计算机专业人士普及算法相关的知识,你准备怎么做?
我不知道你会怎么做,但是至少下面3点需要做到:
1. 懂得透彻
2. 喻得精准
3. 说得清晰
没人愿意看冗长的公式、大堆的术语或者各种原理,这样一开口,便吓退了一多半读者,剩下的继续读是因为他们本来就懂,只不过想看你出了多少错误。
公式掩盖不了深层次的无知。我相信每一个原理背后都有一个朴素的说法,一个美好的愿望,以及一个优美的方案。好的科普读物就应当用故事将这三点串起来,这本书做到了。
这本书的选材及其之上的写作风格,让我震撼。你希望在上算法课的时候有这样一个老师吗?不要说你更喜欢数学公式。进一步,只有对一个概念深刻理解之后才能找到精准的类比,只有理解读者暗熟表达的写作者才能将事情讲得清晰。你不觉得这不仅仅是在写书吗?你也希望有这样的产品、UI界面、老师 ...
将一个复杂的原理“同构”到一个浅显的比喻,我觉得是这本书带给我最大的感悟,让我觉得寻找这种“对等”的同构是解释任何事情的关键。
至于内容,作者挑选了和我们现代计算机技术紧密相关的算法,非常有代表性。最后一个还涉及到了计算理论知识:什么是计算机能够处理的事情。作者在前言和后序中都是说本书希望能带给读者“仰望星空,叹其壮美”的感觉,作为计算机从业者,我感受到了。但如果是普通读者,我不知道,期待他们的评论。
看到有评论说“文笔不怎么样”,很吃惊。因为我觉得没有比“将复杂或专业的事情说得普通人都懂”更好的文笔了。科普毕竟不是文学作品,“文笔”也不能按照文学作品的标准去定义。