花时间认真阅读雪峰这本书后,我学到很多,领悟不少。算法与人生都是艺术,算法相当于计算机程序的灵魂,而人生则更深邃。成功的设计需要逻辑思维、经验和认知等,其中创意尤其不可或缺。读了雪峰这本书,你对此一定会有更深的感受。
计算机科学和生活的关系之密切,体现为计算思维为我们解决生活中的种种问题提供了思考途径与解决方法,同时计算思维也从生活的智慧中借鉴了很多有益的思想和启示。所以,算法与人生可以互相借鉴。在这本书中,雪峰用他丰富的研究经验和对生活的深刻理解,将算法与生活联系起来,让我们既可以用生活中的知识和经验理解算法,也可以用算法解释人生。
一方面,我们会感觉到,积累的生活经验越多,我们想学习计算机知识就越容易。平时我在给学生上课或进行指导时,喜欢用课题背后人与物在生活中的故事引出进而发展出的知识和技术。学生听了这些故事,便会了解相关知识的创意与演化,或者技术发明的背景和动机,从而加深相应的理解,而在雪峰的书中,有很多这样的故事。
另一方面,算法的奇妙之处在于其可以帮助我们认识与解决生活中的问题。雪峰的书给我们很多这样的启示,也会使我们产生更多联想,比如机器学习和生活的关联。人工神经网络其实也是一种算法,它从信息处理角度对人脑神经元网络进行抽象处理。人工神经网络的运算模型对生活的提示也反映在方方面面。其一,在神经网络训练中,为节点间的连接赋予权重并改变加权连接,可以改变网络的输出。在生活中,如果我们要对某件事有更强的掌控力,就要对其给予更高的权重。其二,与反向传播神经网络训练算法类似,即我们要想改变或养成一个新习惯,就要改变环境,消除或加强对习惯行为的提示,以抑制或刺激大脑中的反馈回路。其三,就像我们登上山峰后,想要以最快的速度回到山脚下的目的地,深度学习中的梯度下降法会告诉我们,在事先无法看清所有路径时,如何持续评估并找出哪条路连着最陡的下坡,使我们在最短时间内到达山底。同理,如果在生活中无法预测事情是否会顺利发展,我们可以不断观察前进的方向,以最小的代价达到自己的目标。
无论是体验生活,还是追求知识,都需要我们运用好奇心与观察力,产生领悟,需要练习、反思和总结。雪峰就是通过这样的观察和领悟,用算法和人生之间的关联,帮我们加强对两者的理解。全书分为三大部分:思维篇、方法篇和学习篇。思维篇告诉我们怎样看待一件事,从而更好地提升认识,做出更好的选择。方法篇告诉我们如何看待问题以及怎样抓住问题的本质,并分享了常用的问题解决模式。学习篇则分享了读书、学习和表述的方法。
平时我很喜欢看科普读物,期待从中获得启迪和灵感。尽管市面上有不少这样的读物,但像雪峰这本书一样聚焦于计算机算法领域的书并不多,因此本书非常值得一读。我逐章逐段地阅读了全书,获益匪浅。希望各位有心的读者也会有同样的感受。
曹建农
香港理工大学教授