知識的偏見 - 讀《暗時間》的思考

最近剛剛讀了《暗時間》,這篇來自本書引發的思考:『知識的偏見』

在思考這個問題的時候,先用 10 秒鐘思考一下這個問題:

『如何建一個網站賣化妝品?』

對于這個問題沒有答案,如果你思考,把解決方案保留在你的腦海里。看完本片我們再回來思考這個問題。

『如果你手里有把錘子,所有東西看上去都想釘子』

hack_joking.png

在真實世界里每人都會自己獨特的經歷,不同的經歷會造成對一個問題產生不同的直覺,比如 Developer 和 Sales 基本不可能站在同一個視角思考問題。這種由經歷不同產生偏見我們很好理解:成長經歷不同,對事物的看法會不同。

還有一種 偏見 可以歸為 知識偏見。這類偏見由我們掌握的知識決定的。不同的知識給我們帶來不同的解決問題的工具(錘子),不同工具(錘子)有不同的思路。這種偏見在程序員的世界非常常見。

編程語言

language_preduice.png

每種語言的開發者,對其所掌握的語言都會有一種無法抑制的執著。

比如說這個強大的 《程序員鄙視鏈》

記得 6 年前剛參加工作的時候,公司基于 GWT 使用 Java 寫 SPA。 GWT 是 Google 推出的神奇的工具,它可以使用 Java 代替 Javascript,不但如此,在 GWT 中不用再擔心瀏覽器兼容問題。Google 紅極一時的 Google Wave 便是用 GWT 編寫的。

『使用 Java 代替 Javascript!』

一切聽起來都很美,當我真正的用它的時候,各種限制接踵而至。GWT 中只能使用部分 Java 的功能,比如 java.util.Date 就無法使用。這種限制使得大部分 Java 庫都無法在 GWT 環境下運行。除了 Java 標準庫的限制,Javascript 世界中的庫也無法直接在 GWT 下使用,比如 jQuery 就需要使用 JSNI 引入到 GWT 中。
如果你同時掌握 Java 和 Javascript,如果強迫你用 Java 去寫 Javascript 估計你會有什么感想?我是被 GWT 虐了兩年,現在再也不想回到用 Java 寫前端的世界。

『用合適的語言做合適的事情』

TDD

tdd.png

在寫本文時,筆者還在實踐 TDD。現在已經到了不先寫測試,不會寫代碼的程度。但是對一種編程模式過于執著總是會讓我陷入一種恐慌,閑暇聽聽其他不同的聲音,希望自己不會陷入對 TDD 宗教般的崇拜:

『軟件開發沒有銀彈,方法論同樣也適用』

OOP

OOP.png

聽聽不同的聲音:

如果你對面向對象還保持著封裝,繼承,多態,教條的遵循 SOLID 原則,可能僅對 OOP,可能還需要更多的思考。

『OOP 不是萬能的』

Design Pattern

design pattern.png

四人幫的 Design Pattern 猶如圣經般存在于 OOP 的世界。估計每個采用 OOP 的都被它虐過。尤其是對 Java 程序員,沒用幾種設計模式,可能連找工作都會有點困難。

那 23 個 Design Pattern 背后隱含的思想,其他語言會很好的解決方案。

比如我們可在 Ruby 中使用 Duck Typing 解決 AbstractFactory 問題。同樣屬于編譯型語言的 Objective C 也支持這個特性。
(Objective C 中將方法調用抽象成向對象發消息,只要該對象能夠處理這個消息即可)

比如 Ruby,Javascript,Java 8 中支持的 each 方法,可以非常簡單的解決了 Iterator Pattern 要解決的問題。

當然這種類比還有很多。有一個很搞笑的編程模式:《設計模式驅動開發》

『Design Pattern 是我們重構代碼時的參考,不是我們寫代碼的準則』

講個故事

fan.png

聯合利華新換了一批自動香皂包裝機以后,經常出現香皂盒子是空的情況,而 在裝配線一頭用人工檢查因為效率問題不太可能而且不保險。這不,一個由自 動化、機械、機電一體化等專業博士組成的Solution小組來解決這個問題,沒 多久他們在裝配線的頭上開發了全自動X光透射檢查線,透射檢查所有的裝配 線盡頭等待裝箱單香皂盒,如果有空的就用機械臂取走。

無獨有偶,在中國一鄉鎮企業生產香皂也遇到了類似問題,老板吩咐線上小公務必想出對策解決之,小工拿了一個電風扇放在裝配線的頭上,對著最后的成 品吹,空盒子被吹走了,問題也解決了。

『如果你想釘一顆釘子,所有東西看上去都像是錘子。』

如果我們專注與問題,按照 How,Why,Who did it? 反復思考待解決的問題。可能會更容易的得到合適的解決方案。

使用合適的語言解決合適的事情。

language_thinking.png

使用 DSL 處理特定的領域

dsl.png

寫在最后

我始終覺得視野很重要,每種語言,工具都能帶來不同的思考方式。對同一個問題,不同語言有不同的的思路,了解這些不同的思路可以擴展自己的視野,讓自己不會拘泥于某一中語言所帶來的生態圈中。

2009 我作為 Java 程序員從一個非計算機的專業轉到了計算機領域。在 2012 年,我做了一個很有意思的回顧,自己平均每年都會學習一門新的語言或者新的技術領域:

  • 2009 精通CSS
  • 2010 Groovy
  • 2011 Ruby, node.js
  • 2012 Objective C

由于每個技術領域都能帶來新的思維方法,這也讓我不由自主的保持了一年一門語言或者框架的習慣:

  • 2013 Shell, improve ruby
  • 2014 Lisp ( SICP, Scheme )
  • 2015 Swift,Clojure,Rails

系統的學習CSS,讓我懂得如何布局,如何使用 CSS 靈活的創建 UI。做頁面的時候也偏向于先用 HTML + CSS 構建原型,再完成實現。

接觸 Groovy 是由于 Grails 這個類 Rails 的框架。Groovy 讓我見識到了腳本語言的強大,之后使用 Groovy 作為膠水語言為項目設計了基于 Groovy 描述的工作流引擎。

學習 Ruby 是因為 Rails。非常喜歡 Ruby 社區的氣氛,非常活躍,時刻都能擁抱最新的技術。由于對 Ruby 的熱情,讓我買了第一臺 Macbook, 同時也讓我有幸參加了 ShanghaiOnRails 和 2012 RubyConfChina 聚會。也是由于 Ruby,讓我有機會加入 Thoughtworks,有機會跟 Ruby 社區活躍的開源貢獻者 FredWu 有共事的機會。

學習 iOS 開發,讓產品有機會跟上海的 SMG 廣電集團有了一次合作,也讓我步入了 iOS Developer 的行列。

了解 Lisp 是從讀 《黑客與畫家》開始,2014 在 Thoughtworks 和同事共同搞 SICP Bookclub,這個活動讓我刷新了對編程的認識,也讓我了解到函數式思維的強大。

2015 年初接觸 Clojure,其中有一個 Memorization 的思想對函數運算進行緩存,這個思想激發了靈感。按照 Momorization 思想對項目中的校驗引擎做了優化,性能提升了近 100 倍。

知識猶如我們手中工具,我們可以通過不斷學習來豐富我們的『工具箱』。每當碰見問題的時候,懷著開放的心,從自己的『工具箱』中選出做順手的工具來達成自己的目標,這樣可以避免知識的偏見帶來的副作用。

再回來思考一下本文開頭的問題:『如何建一個網站賣化妝品?』

此時你會有什么想法?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,963評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,348評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,083評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,706評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,442評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,802評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,795評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,983評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,542評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,287評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,486評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,030評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,710評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,116評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,412評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,224評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,462評論 2 378

推薦閱讀更多精彩內容