心智模式——API与哲学

在《C陷阱与缺陷》中看到这样一句话:
        “程序设计错误实际上反映的是程序与程序员对该程序的“心智模式”两者的相异之处。”
其中,又对“心智模式”做以下注释:心智模式(mental model)在彼得·圣吉的《第五项修炼——学习型组织的艺术与实务》中也有提到,被解释为“人们深植心中,对于周遭世界如何运作的看法和行为”。Howard Gardner说,人们的心智模式决定了人们如何认识周遭世界。《列子》一书中有个典型的故事,说有个人遗失了一把斧头,她怀疑是邻居孩子偷的,暗中观察他的行为,怎么看怎么像偷斧头的人;后来他在自己家中找到了遗失的斧头,在碰到邻居的孩子时,怎么看也不像会是偷他斧头的人了。

        我对这一段颇有感触。程序很能体现一个人对世界的看法,一个信仰“简单就是美”的人,如果看到乱糟糟的代码,一定会觉得不爽;而一个觉得世界是不可理喻的、充满神秘的、混乱无序的人,那么也许他不适合当程序员。每一个程序都是程序员对现实世界的抽象,不同点仅在于规模和角度。James Gosling用自己的方式来诠释Java API;而Anders用另一种方式来创造C# API。其实每个人都有自己的API,只是那些大师们的更具美感。不同的人喜欢不同的语言,很大程度上是因为那种语言的API更符合他们的审美标准。当然,第一个学会的语言是非常重要的,因为在熟悉了一种API以后再去适应另一种,并不是很容易的事情,因为这不仅仅是学习几个函数,而是接受一种全新的看问题的角度——这一点与哲学的学习惊人的相似。

        在哲学系学习,主要学的是西方名家的思想,从德谟克利特开始,柏拉图,迪卡尔,休谟,黑格尔,马克思……我以前一直存在着这样的疑惑:看这么多别人的思想有什么用处呢?最重要的不是自己的思想么?现在我对这个问题有了能让我自己接受的回答:除了天才以外,一般人只有不断地接触新的思想,才能产生属于自己的灵感。每个人在读康德时的体会都是不同的,读尼采也一样,这种不同的感觉,便已经是自我的体现。到了一定的阶段,对大局观有了更强的把握能力,自然会慢慢形成自己的哲学体系。我想同样,资深的程序员,在解决一个问题的时候,应该不是受限于现有语言所提供的API;而是先在脑中用自己的方法来解决,再寻找一种最适合的语言或者API来实现,如果没有的话,那么就自己写。所以说,在我看来,多接触一些语言,多接触不同的API,是非常有好处的。可惜哲学系的同学对计算机感兴趣的并不多,不然以他们善于接受不同世界观的脑子,接受几个小小API岂不是易如反掌的事儿么? :)

        写程序的乐趣,正如读哲学的乐趣——这时候,世界是什么并不重要,重要的是我如何去看待它,去抽象它。这种掌控世界的感觉让人觉得自己成了世界的中心,也许这也是为什么程序员和哲学家一样,往往比较孤僻高傲吧。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值