其实,我已经不记得自己是第几次重读这本《The C Programming Language》了,但每次读都不禁感叹,技术书竟然也可以写得如此精炼,完美,俨然是一副美丽的画卷。能从此书进入浪漫而严谨的黑客世界不能不说是一种荣幸。因此这本书一直我向初学者们推荐的首选书籍。
但凡写过技术文章的人都知道,写这类文章最困难的地方就在于如何在细节严谨性与教学引导性之间找到合适的平衡点。如果没有教学引导性,你就很容易写出一部字典来,对于初学者来说,如果缺乏轻重缓急和一个循序渐进的过程,很可能就会不得其门而入。而如果缺乏足够的、可以立刻上机测试的代码实例细节,就会让他们觉得兴趣黯然,导致学习过程形同嚼蜡。这就需要作者有丰富的教学经验以及带队经验。有了前者,我们就能熟悉教学心理,知道先教什么,后教什么,之间如何承前启后,将人一步一步引入到这么技术的运用中来。而有了实际带队经验我们就会知道新手在具体实践中会遇到那些情况,并且能准确的预料到学生在运行什么代码时会遇到什么问题,而在这种情况下往往是一点就通,不用长篇大论,事倍功半。
然而,只懂如何做一个老师是不够的,计算机语言毕竟是一门科学语言,严谨的细节感是必不可少的。这就要求作者自己得是相关领域中的专家,至少得对这门学科的标准,设计原则了如指掌。唯有这样才能言之有物,而不是靠类似++i+i++这样的东西来哗众取宠,而又在细节上似是而非的东西来滥竽充数,却对真正需要浓墨重彩的结构体,标准库部分语焉不详,敷衍了事。
同时做到以上两个方面并不容易,但这本书不但做到了,而且做得堪称典范。作为C语言和UNIX操作系统的缔造者,本书的作者K&R对于C语言的标准及其运用自然有着无可争辩的权威。而他们从打印Hello World!开始的教学方式几乎成为了所有编程教学的样板。而即便如此,至今也没有几本书能像他们这样,做到如此的有趣、精炼、严谨(这本书的主体部分还不足两百页,想想那些比C简单得多的语言,动不动就是几百页打部头。),令人百看不厌。
?