那些年读过的好书——C程序设计语言

        一直很佩服那些能将自己在工作和学习过程中遇到的问题、产生的想法记录下来的同学们,一直很想成为他们中的一员。思来想去,先从读过的经典书籍中开始,那么第一本书必须是丹尼斯·里奇的传世之作——《C程序设计语言》

        这不是我看的第一本编程语言书,听说这本书的时候对C语言已经过了初学的阶段。当时看过了《C陷阱与缺陷》、《C专家编程》等书,看过了斯坦福大学关于C语言的进阶课程“编程范式”,也用C语言完成了几个小项目,自认为对C语言的理解已经比较深入,此时再看《C程序设计语言》只是兀自浪费时间而已。

        当抱着稍微浏览一下的心态看完第一遍之后,便又迫不及待的读了第二第三遍。这本书让我着迷的地方不在于它对C语言的语法讲的多标准多透彻,而在于本书的例子都是大师随手而写的精华,虽然大部分例子算法上并不复杂,但你很难找到比本书例子更赏心悦目的代码。

        小程序的设计遵从过程式编程经典的自顶向下的设计方法,流程与模块非常清晰。将程序的实现过程用模块列出,就像列出了一篇文章的大纲,纲举则目张,接下来的实现就是水到渠成合情合理的事情。书中例子实现上代码非常紧凑,易读性与代码效率兼顾,让人读的非常舒畅。很多地方也巧妙的利用了语言的某些特性,让人叹为观止。

        且不论技巧性的高低,每一个C语言的学习者和使用者都梦寐以求能写出这种简洁、流畅的代码。感觉整个实现过程毫无生涩之感,一气呵成。又总是那么合适,多一分则嫌太过臃肿,少一分则嫌艰涩难读。值得每一位还没达到如此境界的人反复的体味和模仿。

        在这本书的例子面前,我彻底的感觉自己是一个笨拙的初学者,写代码总是有磕磕绊绊、瞻前顾后的生涩之感。首先在程序的设计上(仅对过程式的小程序而言),就没有能有效的自顶向下细致分解,没有准确的抓住整个过程的“纲”。在实现的过程中也没有如此纯熟,不能结合语言特性有效的缩减代码,使代码更紧凑。也没有很好的注重代码的可读性和可维护性,比如对幻数和标记的处理。

        看来成为一个能写出让自己感觉舒服的代码的程序员也不是一件容易的事情,有时候我们沾沾自喜,但看了大师的代码总会感觉无地自容。C语言尚且如此,相信诸如C++等更加注重设计也更加复杂的语言更是如此。

        如果用一种武功来比喻看完《C程序设计语言》的感觉,我的选择是太极剑——简洁、圆滑、流畅却又锐利无比,貌似简单、信手拈来,但要达到这种境界绝非一日之功。

你可能感兴趣的:(那些年读过的好书——C程序设计语言)