在语言X中如何实现Y,像这种具体的知识(know-how)可快速提高你的工作效率。但是一旦语言发生变化,这种知识就无法再使用。世界瞬息万变,这意味着限定了应用范围的具体知识将慢慢失去价值。因此,我们不仅要学习具体的知识,更要有意识地去学习哪些应用范围广泛的抽象的概念。
当然,学习了抽象的元知识,如果不将其与你具体的经验相结合,也无法在实际应用中发挥其作用。喜欢樱花的人即使剪下花开的树枝带回家,终将看的也仅仅是枝枯花败的场景而已。要想樱花年年盛开,离开根部和枝干是不行的。
我们所学的知识到底有没有真正的“根基”,可以通过考察是否具体地举例或者具体地实现来确认。没有真正根基的知识是无法顺藤摸瓜、触类旁通的,所谓学习到的知识也只能向鹦鹉学舌般的重复讲讲而已。想要因地制宜地或用知识更是缘木求鱼,根本没有可能了。
以上是《代码之髓》一书73页第四篇专栏,明确阐述了具体知识和抽象知识的差别。这使我想起了在日常的程序学习中,有的人注意学习具体知识技术而忽视了抽象知识的区别。而笔者自己则是只学习了没有根基的抽象知识而洋洋自得,这一点非常不可取。