用了一年时间终于将代码大全读完了,在这里做一个简单的总结,并安排下一阶段的扩展阅读计划。
1、选择代码大全作为我程序员职业入门的第一本书,我认为是很正确的。这本书语言生动,擅于用隐喻说明深刻的编程原理,虽然并不是写给新手看的,但作为一个新手,我依然从中学到了很多。
2、这本书有很多一针见血的论述:设计是一个启发式过程;编程的最大难题是解决其复杂性;要深入一种语言编程而不是在一种语言上编程,等等。
3、实践是这本书的核心,它提供了很多Checklist让我可以在工作中去应用其原理。书中有很多学院式的丰富证例和引述,但对我来说最值得学习的是那种扎根于实际开发过程的,在现实主义的约束下追求理想主义的态度,其中的经典,就是模仿柏拉图对话录来讲述注释问题的那一段。
阅读代码大全这边书,我用了一种和以往阅读经验完全不同的方式。我先花了一个月来快速读完了其中文版,在被中文版吸引后,我用了近一年时间来读其英文原版。
我的本意是想一箭双雕,一边学习英文一边学习编程知识,但在这一过程中,我得到了超乎预期的收获。作为一个从小认为自己理解力很强的人,我几乎是第一次享受到了“慢”的乐趣。我重新认识了几个小学老师就教过的道理:
1,一般来说,用10个月读一本书大于用10个月读10本书。
2,读书要做笔记。
3,每天可以只读一点,但要有恒心。
接下来,我要选择新的一本书来做扩展学习。我的选择标准依然是:公认的经典;不直接的应用于当前的工作;不过分依赖具体的语言或框架;适合的难度;可以激发我的兴趣。我初步的选择是计算机程序的构造和解释,这本书是非常经典的教材,虽然使用scheme语言,但这一语言规则简单,只是书中用来阐明编程本质的辅助工具。
我已经花了几天浏览其中文版,非常深刻也非常有趣。但选择它作为下一本阅读材料也有其风险,这本书可能对于我来说过于困难了,其学院式的讲述方式和数学化哲学化的探究过程可能需要大量时间来思考问题、解答习题。可能会出现我越读越晕,最后花了大量时间和精力但没有什么收获的情况。
考虑到我最近会辞职,换新的工作,可能会比较闲。我决定把这一个月的时间投入到这本书上,如果经过尝试,我觉得其深度可以接受,那么接下来的一年我会学习其英文原版。否则,我还需要考察其他的经典书籍。这也是我去做一个“现实的理想主义者”的尝试。