编程真的能改变人的思维方式吗?

于我一个秃子而言。

编程能提升人的抽象思维能力。代码中常常需要各种抽象,结构上的、行为上的、同类问题的、同类业务的。以至于善于抽象的程序员遇到任何问题都更倾向于探寻事物本质,寻找根本解决方法,企图一劳永逸。这样看来,说程序员是哲学家范畴似乎也没啥毛病。

惯性的抽象思维让程序员的生活更加简单。程序员的衣柜里都是清一色的格子衫;他们总是选择周五的晚上看一部电影,然后在周六睡个懒觉,以便能支撑他们在周日的户外扫街(996 例外)。 这样的描述有些偏激,但反映出程序员有自己的一套生活模式,这得益于他们对自己生活的抽象—衣服===格子。因此生活中遇到的同类问题,程序员往往会按同样的套路出牌,这大概也是为什么他们稍显“呆板”的原因,你找他们推荐电脑,他们总是告诉你 mac;你找他们去逛街,他们总是直奔格子专柜。这样对他们来说的确能简化生活。

抽象思维让程序员在社交上形格势禁。不同于技术问题或生活问题。社交中的问题要复杂得多,毕竟人就是一个最复杂的存在。光是想与人坦诚的沟通就非常难了,如果按照程序员的“套路”,用既定的话术或模式去试图从另一个人那里获取信息,他们往往会碰壁。杰克·韦尔奇在《赢》中揭示“当你探索坦诚的含义时,你实际上是在设法了解人类的本质。数百年来,无数的心理学家和社会学家都在研究,为什么人们所说的与他们真正所指的存在区别;而哲学家思考同样的问题已经有数千年的时间了。最终,你会认识到人们之所以不说出自己的想法,是因为这会给自己带来更多的便利。”所以你看,与计算机的信息交换和与人的信息交换是两种复杂度截然不同的命题,用算法的术语来看前者复杂度是O(1),你给计算机一个输入它给你一个输出;而后者复杂度是O(2^n),你给人一个输入,她不光不一定会给你一个输出甚至会引发新的爆炸问题 。所以人们常说程序员情商低,不好沟通是有一定道理的,他们可能太执着于用统一的方式解决人的问题了,人最应该具体问题具体对待了,过度抽象反而适得其反。基于这点,你所见到的“情商低”的程序员可能往往技术不错,事实上业界确实有许多技术大佬他们不善社交,譬如林纳斯 。其实人的问题也是可以抽象的,不过那是心理学家、社会学家和哲学家的命题。程序员不应该执着于此,还是区分好工作、生活和社交,做个有情趣的程序员最好。

总而言之,抽象思维只是编程带给我诸多裨益中的一项。每天令我心存狂喜不觉无聊的是我知道世界上存在着只有编程才能以其特殊的手段给予我的感受。