这是一本关于计算机世界的科普读物。
非常推荐刚接触计算机的朋友花上三五小时将全书通读一遍,没有技术细节,没有公式证明,它会告诉作者挑选出的九大算法出现的缘由和发展的过程。这些不关乎实现细节的思想概括,更能体现算法在整个领域中的存在的原因。它们不再是冷冰冰的算法过程,这是阅读大多数的书籍、教材所难以获得的。
至于我的推荐原因,如下全文。
【课程学习之弊】
大二大三的那两年,在学校上过了网络、操作系统、数据库、算法设计等诸多计算机领域的基础必修课程。由于生性愚钝加之令人头大的砖头书的体系化、理论化,对于知识的掌握顶多处于知其然却不知其所以然的程度。在这种情况下,学习就退化为了填鸭式的记忆。比如我记得RSA的公钥加密流程,却无法理解为何要套用这么一大堆的数学方法来得到如此神奇的效果,比如,我知道数据库有一套日志机制,却不知道它是如何与其他的组件共同构建起一个系统的……没有来龙去脉,就没有对技术发展的感知,没有对技术本质的理解和认识。
经过了四年多的摸爬滚打,到现在对这些基础知识的认识自然远好于当年上课的理解水平,不是因为我在反复的学习课程内容,而是从实践中获得了新的认识。
【从生活出发】
大多数人的思维习惯,倾向于从已知的事物中衍生对新事物的认识,这是一种类推。而高校的大多数教材和教授方式较少考虑到这一点,一种简单粗暴的直入主题的方式被大量的使用,排斥了知识的前因后果,技术的来龙去脉,剩下的只是新体系本身。这增加了学习曲线的入门坡度。
理论是灰色的,生活之树常青
《改变未来的九大算法》是对歌德这句话的良好实践。
比如在阐述公钥加密机制时,作者从生活中的寄信讲起,一步步类比到计算机的通信上,并用染料配色的方式举例了迪菲赫尔曼机制。生动形象的描述了算法的原理和来由。
【抛开细节实现】
过往的教材一旦陷入对某些实现细节的阐释,就失去了对全局上下文的把握。就像镜头对焦到了一个点上,造成了周边景物的模糊化效果。
《改变未来的九大算法》全书很少涉及到技术的实现细节,这正是它的优势所在。比如数据库的一致性章节,从一个银行转账的实例讲起,通过所面临的一系列问题的解决方案的描述,让人对数据库的整体实现有了全局的把握。在理解的前提下,更深入的学习也变得更有动力和方向。
奈何自己已经过了朦朦胧胧的那几年,在此将本书强烈推荐给初涉计算机领域的朋友们。当然,其他人粗读一遍,也是对自己知识体系的一次小梳理啦;)。
欢迎访问排版过的文章:http://biaobiaoqi.me/blog/2013/10/03/nine-algorithms-that-changed-the-future/