——氣象學家教給我們,**明天的天氣,有乙個簡單有效的辦法,在2/3的情況下都是正確的;只消說明天的天氣和今天一樣就是了。這樣一來,每個人都算得上氣象問題的專家了——66%的準確率。請想象一下,如果我們也能輕易的**99%的人類行為,那麼會早就多少心理學專家呢——只要一條簡單定律就足夠,這就是溫伯格雙胞胎定律。
——醫療行業最大的秘密之一,就是90%的病都是自己好的——根本不用醫生動手,正是有了這樣乙個了不起的秘密,醫生要做的一切,就是避免傷害病人。乙個成功的醫生還得讓病人相信,為了治好他的病,他可是做了一些事情的——而且這些事情只能出自醫生那個淨是秘傳醫藥知識的聚寶盆。
為什麼人們習慣不思考?
1.有人不願意讓人們思考。在閱讀/複審規格說明書時,我們把這種「催眠詞」看做觸發器。這裡還真有些挺可愛的東西,包括「所有的」,「永遠」,「每乙個」,「可能」,「只有」,「同乙個」,「應該」,「也」,「將要」,「當然」,「所以」,「很明顯」,「顯而易見」等,我們的語言中存在這些催眠詞,從這個事實就可以引出為什麼人們不思考的一些原因。這樣的方式寫作,說話,從而扼殺了思考。
2.沒人在乎你是不是思考。絕大多數場合(當然是程式設計領域之外的場合),思考會給你帶來很大的麻煩,在大多數工作環境中,你要是想的太多,那就會冒丟掉工作的危險,因為工作完全成了慣例,思考被當成是管理層的一種特權。
即使在我們的私生活中,思考也是昂貴的事情,要是你每吃一口食物都得思考一番,每次過馬路都得思考一番,那樣你就沒什麼時間來做其他的事情——比如把省下來的時間用於思考必須思考的問題。
這對程式設計也適用,如果我們確實發現了什麼簡明的規則,遵照它就能百試不爽,避免思考,那麼我們就應該採用這樣的規則,還是那句話,把思考留給必須思考的東西。
3.思考讓人疲倦,因此也可能妨礙其他的思考。
那個不要「goto語句」的規則,實際上卻是另一種節省思考的習慣。當我發覺自己開始要寫乙個goto語句時,我把它當做乙個觸發器,而不是乙個催眠詞。我會對自己說,「溫伯格,從前你在類似情況下不假思索的寫了goto,結果導致了不少多餘的思考。因此現在幹嘛不多想想,這樣也許會在以後必要時節省不少思考呢」。
4.要是我想的太多,沒準就會在這裡發現錯誤,那我又該怎麼辦?
同樣,這也不是乙個徹頭徹尾的笨想法。通過多年的學校生活,我們學會了這個道理「如果老師沒發現,那就不是錯誤」。所以,如果我們知道老師其實沒有時間看我們的作業,那我們又為什麼要自尋煩惱地排除錯誤呢?
但問題是,計算機與學校作業不一樣,這裡的「老師」——也就是計算機——會檢視所有的作業,任何一處錯誤,都會被上百遍,甚至千遍的放大。在學校裡,採取鴕鳥政策,把頭埋進沙子,大多數時候都能蒙混過關——所以人們在編寫電腦程式時,往往也會同樣行事,這也就不奇怪了吧?
總結一下,我能得出人們不思考的4點「顯而易見」的原因:
1.有人不願意讓人們思考。
2.沒人在乎自己是不是思考。
3.過渡思考會讓大腦疲倦,因此可能妨礙其他的事情。
4.在學校裡我們沒學會思考。 「顯而易見地」這張單子不可能有錯誤或不完整的地方,難道你想接受挑戰,提提意見?
我們能更有效的思考嗎?(集中還是強迫)
當你在對付乙個難纏的問題時,有沒有過這樣的情形:過早的放棄了乙個很有希望的方案,只是因為如果採用這樣的方案,在最後出現結果之前你要全力投入得太多? 困在乙個問題上整整兩天,卻被乙個同事的偶爾提議——或者是乙個臨時的打岔、乙個偶然事件——給解救了:如果哪個程式設計師每過這樣的經歷,那他的靈魂一定是僵死得可以。
但還有乙個更能讓人受益的辦法,那就是把某個行業的「秘訣集合」都拿過來,然後做對比考察。比如說,考慮一下我們剛剛討論的這2條:
1.不要太早地放棄一種**。
2.不要讓一種**耽擱太長時間。
也許說到底,醫生拿那麼多錢是有道理的。他們這個行業秘訣中的秘訣,不在於這些「秘訣」本身,而在於知道何時應用哪個秘訣。
如何有效的debug
本文旨在於總結和記錄軟體開發中有效的除錯思路。當測試人員向我報告乙個嚴重的bug時,我應該如何去思考這個bug,如何有效的快速的精確的定位bug所處的 位置,如何最優解的修正 缺陷?在運用經典的科學除錯方法時,基本會經歷如下步驟 1.通過可重複的試驗收集資料 即復現bug,同時抓去log 2.根據相...
如何有效的報告bug
自由軟體開發者simon tatham針對如何有效地報告bug發表了自己的看法,他列舉了一系列拙劣bug報告的例子,並提出了改正建議。simon首先列舉了一系列拙劣bug報告的例子,包括 在報告中說 不好用 所報告內容毫無意義 在報告中使用者沒有提供足夠的資訊 在報告中提供了錯誤資訊 所報告的問題是...
如何有效的設立目標
今天和老婆聊天的時候聊到了最近不怎麼想工作,上班不知道做什麼,沒有激情,我於是想到了昨天看的有關專案範圍管理和計畫管理的一些文章,裡面講到了如何設定目標及分解任務,其實我們目前就是目標不明確,目標太多,很盲目,不知道怎麼下手,於是什麼都不想做。要想改變這樣的狀態,很重要的就是重新規劃我們的目標,關於...