前言

我因为爱好而踏入了编程殿堂。Visual Basic 6 for Dummies教会了我基础知识,接着我不断阅读,学到的知识也越来越多,但对算法却始终没搞明白。至今我还记得购买第一本算法书后的情景:我琢磨着目录,心想终于要把这些主题搞明白了。但那本书深奥难懂,看了几周后我就放弃了。直到遇到一位优秀的算法教授后,我才认识到这些概念是多么地简单而优雅。

几年前,我撰写了第一篇图解式博文。我是视觉型学习者,对图解式写作风格钟爱有加。从那时候起,我撰写了多篇介绍函数式编程、Git、机器学习和并发的图解式博文。顺便说一句,刚开始我的写作水平很一般。诠释技术概念很难,设计出好的示例需要时间,阐释难以理解的概念也需要时间,因此很容易对难讲的内容一带而过。我本以为自己已经做得相当好了,直到有一篇博文大受欢迎,有位同事却跑过来跟我说:“我读了你的博文,但还是没搞懂。”看来在写作方面我要学习的还有很多。

在撰写这些博文期间,Manning出版社找到我,问我想不想编写一本图解式图书。事实证明,Manning出版社的编辑对如何诠释技术概念很在行,他们教会了我如何做。我编写本书的目的就是要把难懂的技术主题说清楚,让这本算法书易于理解。与撰写第一篇博文时相比,我的写作水平有了长足进步,但愿你也认为本书内容丰富、易于理解。