践行是检验道理懂得的唯一标准

什么是知行合一?到底怎样才算真正懂了一个道理?

明代有个哲学家叫王阳明,他提出一种理论叫“知行合一”。知行合一,什么意思呢?所谓“知”简单讲就是理论,而“行”就是实践

什么是知行合一?

那什么又是“合一”呢?有时候认识一个东西,不妨从它的反面去考虑。我曾经在知乎上看到有人说,所谓“知行合一”,可以这样理解:“知道做不到,等于不知道”。

这也是文章的标题所暗示的。

也就是说,“知必然要表现为行,不行不能算真知”,王阳明认为:“良知,无不行,而自觉的行,也就是知。

代码质量,一个具体例子

我们举一些具体的例子。作为一个程序员,我们就举编程的例子吧。

就编程来说,我们可能都知道或者至少听别人唠叨过这些关于代码质量的道理,比如:“规范很重要”,“一个统一的编程风格很重要”,“命名很重要”,“注释很重要”,“文档很重要”等等。

从某种意义上说,这几乎已经成为编程界的“政治正确”,一种陈词滥调。

如果你问一个多年的编程从业人员,是否知道以上道理,他多半会告诉你,他是知道的。如果你问一个新手,他就未必知道了。不过不知道也很正常,因为它很大程度上取决于经验。那是老鸟总结出来的,踩过很多坑痛过之后才悟到的。

不过还有一种情况,那就是新手们其实也是知道这些道理的。这也不奇怪。前面说了,这已经成为了某种“政治正确”。尽管他自己可能没有太多的经验,可是他还是有很多机会从老师们,前辈们的口中听到这些;很多软件工程理论的书上是这么讲的,很多的编程大师也喋喋不休在说;当他去网上去浏览那些大牛中牛以及小牛们的博客时,他也时不时地能看到这些唠叨,所以,你能说他们不知道吗?

那么是否就能说他们懂得了这些道理了呢?如果按照“知行合一”的标准,显然你不能这么快的得出结论。这就是我们外交部也经常说的“听其言,观其行”。

光是他说他懂得了,这是不够的,我们还要看他做得怎么样。如果你看看他写的代码,规范是没有的,风格是多变的,命名是随意的,文档是缺失的,那么按“知行合一”的标准,就不难得出结论,他其实是不懂的。

经常你能听到这样的说法:“懂得很多道理,却依然过不好这一生”。现在我们只想强调,道理不是说你知道了就懂了,也不是你觉得你懂了你就懂了。没有转化为行动的道理你其实是不懂的,你只是以为自己懂了而已,但你的行动与实践则彻底地出卖了你