我的用来鉴别所谓编程语言专家的方法
jopen 10年前
本文的思想是在与默罕默德谈话中受到的启发得来。[译注:此默罕默德非彼默罕默德。]
在思索“孰是神”的过程中,希腊人发现,与其回答“孰是神”,回答“孰非神”更容易。由此发明了反证法或逆推法。我常用此法来辨别专家真伪。
例如:
“专家”这个词常言过其实。人们时常高估某人在某领域的水平,对于这种认知偏差,心理学界有大量的研究著作。怎样才能知道一个人是不是专家,比方说编程专家?反证法是也。你无法证明某个人是专家,但某种程度上,你可以判断此人不是专家。
我最常问的一个问题是:”对于这个编程语言,它有没有让你讨厌或不爽的地方?” 根据回答判断如下:
-
真正的专家不会被这类问题难倒,更不会感到惊讶。他/她很可能对此类问题深思熟虑过。
-
专家们通常自有主张。但是我们要看的,并不是有没有主张,而是看此人是否固执己见。什么意思?意思是此人的主张是否有理有据,或者是否有数据支持。此人是否承认自己的主张是有前提条件的,是否接受新思路或新数据且改变先前的主张。
-
编程语言固有缺点,但这并不代表这门语言不好。
两个实例:
C++
-
认为C++的异常处理不好——谷歌代码规范明令禁止使用异常。
-
认为C++引用语法有问题——我个人不爽的是,无法通过函数本身来判断传递参数是不是引用类型。显式引用好过隐式引用。
Python.
-
Python的封装机制有问题——这需要另辟专文探讨。
-
Python太慢——这也需要另辟专文探讨。
很明显,我们需要给这第二个回答加上问号,给这个“专家”加上引号。
[英文原文:My favorite question to the programming language expert ]
来自: 外刊IT评论 http://www.vaikan.com/