clean code 是一本备受业界推崇的书,但是,你是否真的应该阅读这本书,以及你能够从书中得到期望的收获,取决你所处的阶段。本文叙述我在阅读这本书期间产生的一些疑惑和思考。
引子
正式上班了,我的 Buddy 推荐我看这本书并写些阅读心得,算是任务的产出。
可事实上,我很抗拒看这本书,不仅因为我在大学的时候就读过这本书,更是因为,我发现它对我的影响很小的,我觉得这是一本几乎无用的书。
两极分化的评价
新人
大四实习的时候,一起实习的其他 15 个小伙伴都在思沃学院的林老师建议下阅读了这本书。从他们那里,得到的评价跟我几乎无差。
“感觉看了跟没看一样!讲的都是一些大白话“
“感觉写的都是一些常识”
也就是说,这本书对他们产生的影响同样很小。
老人
这次我特意上豆瓣看了这书的所有评价,下面是典型的老人的评价:
这是一本真正的好书,不过如果读者没有一定的经验,以及缺乏对编程境界的追求的话,可能认为这本书很一般,甚至认为只是说了一些大白话。
很可笑,我们的想法原来没有错,老人也觉得新人会认为这本书知识说了一些大白话。
一本评价两极分化的书,到底是写给谁看的呢?
读者群
这同样是一篇豆瓣评价:
说实话,我一直在琢磨 Clean Code 这本书的目标人群到底应该是谁。对于在校学生,甚至刚刚工作了一两年的fresh coder,这本书的价值并没有想象的。
原因比较简单:clean code这本书的大部分内容是建立在作者大量编程实践之后的回溯和反思,类似于经验提炼式的总结。如果读者没有一定的实践功底,很容易忽略很多看起来像常识一样的细枝末节,而往往那些细节才是写出 clean code 的关键。从另一个角度上说,看书的时候讲究一个悟字,悟来自于自身的经验与作者讲述内容的碰撞,碰撞后产生深层次的交流和记忆。如果只是填鸭式的说教,那么效果自然不会理想。
从上面两篇豆瓣评价可以看出,事实上,Clean Code 这本书对新人的作用是很小的,跟我的生活经验一致。
疑惑
可是为什么呢?这些老人的评价让我产生了疑惑: 为什么常识在新手看来是无用的大白话,而老人却认为是宝物?
我不禁联想到流行的一句话——听了很多道理,可是仍然过不好这一生!
这个问题,在两篇评价中其实也回答了,是因为新人缺少足够的经验,没有到达可以感受 Clean Code 的阶段。
又一个疑惑
可是,这不就很可笑么。这样一本意在教授程序员写好程序的书,只能给那些已经能把程序写好的人看。
从道理到实践,从知到行,从读 Clean Code 到写 Clean Code,中间到底缺失了什么呢?
是经验!
可是经验不就从实践中来吗?这不就无解了么?