我的用來鑒別所謂編程語言專家的方法
本文的思想是在與默罕默德談話中受到的啟發(fā)得來。[譯注:此默罕默德非彼默罕默德。]
在思索“孰是神”的過程中,希臘人發(fā)現(xiàn),與其回答“孰是神”,回答“孰非神”更容易。由此發(fā)明了反證法或逆推法。我常用此法來辨別專家真?zhèn)巍?/p>
例如:
“專家”這個(gè)詞常言過其實(shí)。人們時(shí)常高估某人在某領(lǐng)域的水平,對(duì)于這種認(rèn)知偏差,心理學(xué)界有大量的研究著作。怎樣才能知道一個(gè)人是不是專家,比方說編程專家?反證法是也。你無法證明某個(gè)人是專家,但某種程度上,你可以判斷此人不是專家。
我最常問的一個(gè)問題是:”對(duì)于這個(gè)編程語言,它有沒有讓你討厭或不爽的地方?” 根據(jù)回答判斷如下:
- 真正的專家不會(huì)被這類問題難倒,更不會(huì)感到驚訝。他/她很可能對(duì)此類問題深思熟慮過。
- 專家們通常自有主張。但是我們要看的,并不是有沒有主張,而是看此人是否固執(zhí)己見。什么意思?意思是此人的主張是否有理有據(jù),或者是否有數(shù)據(jù)支持。此人是否承認(rèn)自己的主張是有前提條件的,是否接受新思路或新數(shù)據(jù)且改變先前的主張。
- 編程語言固有缺點(diǎn),但這并不代表這門語言不好。
兩個(gè)實(shí)例:
C++
- 認(rèn)為C++的異常處理不好——谷歌代碼規(guī)范明令禁止使用異常。
- 認(rèn)為C++引用語法有問題——我個(gè)人不爽的是,無法通過函數(shù)本身來判斷傳遞參數(shù)是不是引用類型。顯式引用好過隱式引用。
Python.
- Python的封裝機(jī)制有問題——這需要另辟專文探討。
- Python太慢——這也需要另辟專文探討。
很明顯,我們需要給這第二個(gè)回答加上問號(hào),給這個(gè)“專家”加上引號(hào)。
譯文鏈接:http://www.vaikan.com/my-favorite-question-to-the-programming-language-expert/