讀書 | IT人如何直擊本質洞察底層邏輯?

【好書共讀作者/Edison Zhou


作爲IT技術人,我們不僅要精進技術,也要在技術之外修煉自己的軟能力。本質思考,是一種直擊事物本質的能力,是思考“思考的方法”,是一切思考的原動力。我們不用擔心這個能力在其他企業用不上,因爲它是你的“底層操作系統”。

1爲何學習直擊本質?

無論做什麼工作,思考能力都是必不可少的。換句話說,思考能力,往往會影響一個人的其他能力,甚至會影響我們的人生高度。

金庸小說《倚天屠龍記》中,張無忌學習乾坤大挪移的時候,學到第五層就只用了幾個時辰,而一般人需要幾十年甚至一輩子,前任教主陽頂天練到第四層後便走火入魔最後掛了。經典電影《教父》中有一句我們可能都聽說過的臺詞:“花半秒鐘就看透事物本質的人,和花一輩子都看不清事物本質的人,註定是截然不同的命運。”

那麼,爲何張無忌可以快速掌握乾坤大挪移,又爲何有的人可以半秒鐘看透本質?

因爲,他們都有“九陽神功”護體,“九陽神功”其實就是他們的內功心法,一種本質思考的底層能力,換句話說,就是他們的底層操作系統

《企業IT架構轉型之道》作者鍾華老師在《數字化轉型的道與術》中寫道:“有道無術,術尚可求。有術無道,止於術。”。本質思考能力,其實就是道(內功心法),掌握了道,即使目前沒有術(獨孤九劍)也沒關係。那麼,對於程序員來說,在技術層面什麼是道什麼又是術呢?我個人認爲,程序設計和軟件設計其實就是道,屬於內功,而各種前後端流行框架的花式應用和組合則屬於術。

因此,對於任何行業的人,學習瞭解事物的本質,鍛鍊直擊事物本質的能力,都是有必要的。特別是我們IT技術人,往往喜歡認爲所有的問題都是技術問題,試圖用技術問題解決所有問題。《軟件設計之美》作者鄭曄老師也說道,任何試圖用技術去解決其業務需求關注點的問題,只能是越陷越深。這時候,我們不妨將技術先放在一邊,試圖去思考業務需求的本質,探究其根本屬性,問題根源和底層邏輯到底是什麼,或許可以幫助我們技術人更好地用技術服務業務,最終交付業務價值。

2本質思考

什麼是本質?所謂本質,其實說的是三件事:

(1)事物的根本屬性

即一個事物之所以成爲它的根本原因,回答這個事物是什麼的問題。

思考事物的根本屬性有三種表現形式:給出清晰的定義、做出準確的簡單類比 和 打出精妙的比方。

(2)問題的根源

即導致問題發生的根本原因,幫助我們解決問題、解釋問題和預測問題。

(3)現象背後的底層邏輯

即隱藏在各種現象背後不變的規律,幫助我們舉一反三和融會貫通,找到同類問題的普遍根源。

底層邏輯一般具有四個特點:抽象、簡潔、動力來源 和 通用性。

那什麼又是本質思考?

艾菲在《直擊本質》一書中下了一個定義:“透過複雜現象,看清事物的根本屬性,看透問題根源,看懂現象背後底層邏輯的思考能力”。

圖片來自劉潤《商業洞察力30講》

那麼,我們要如何達到看透本質的思考能力呢?

答案就是:“大膽假設、小心求證”的溯因推理法。所謂溯因推理,就是從現象B推出原因A,而本質思考是從現象和問題出發,找到導致其發生的根源和底層邏輯。因此,溯因推理 和 本質思考 是相似的。

這種溯因推理法的思考方式,也有一個目前比較時髦的名字:“第一性原理”,已經被衆多大廠的大佬們廣爲採用和推崇,比如特斯拉的CEO埃隆馬斯克就是其中的一個代表性人物。

“大膽假設、小心求證”是道,那麼具體如何落地?艾菲在《直擊本質》書中給出了一些方法,即我們所說的術,如下圖所示:

在上圖所示的這些方法裏邊,結構性分析法和系統性分析法是相對較爲複雜的分析方法,結構型分析法主要應對靜態的分析,而系統性分析法則主要應對動態的分析。

所謂系統,就是由要素和連接關係構成,實現某種目的的模型。我們會通過一些系統的循環圖來分析其結構,看到這個系統是如何運作的,其中的增強迴路、調節迴路是怎麼樣的,是否具有延時效應等等。當我們能夠看清楚整個系統的結構與運行模式時,問題的根源就會說落實出,而問題的解決辦法也會逐漸清晰。

圖片來自劉潤《商業洞察力30講》

比如,當我們去看容器的時候,如果只看表象我們認爲它是一個輕量級虛擬機,容器與容器之間實現了相互隔離的。但當你深入分析之後,容器其實是一個基於進程這個已有概念下的新模型。容器實例的本質仍然是一個Linux進程,只不過它使用“障眼法”(Namespace實現隔離+Cgroups實現限制)爲這個進程設置了一些“邊界”,使之成爲了一種特殊的Linux進程。而容器化的本質如果只看表象我們會認爲它是隻是一種應用打包的方式,當你深入瞭解之後,你會發現容器化技術其實是提供了一個沙盒環境,只不過這個沙盒環境也有點特殊,它就像是一個集裝箱,將應用"裝"了起來。爲什麼是集裝箱,而不是其他箱?因爲,這個集裝箱不管被運輸到哪裏,只要打開就可以直接使用。沒錯,你可能猜到了,它就是容器鏡像,它保證了不同環境之間可以在操作系統級別運行環境的一致。爲什麼可以一致?因爲它只是一個操作系統所包含的文件、配置和目錄,並不包含OS內核,我們可以將其掛載在任何容器的根目錄上。容器鏡像的本質又是什麼?如果看錶象我們認爲它就是一個個的壓縮包,可以隨時通過docker pull從各個鏡像倉庫裏面拉下來。但如果深入分析,你會發現容器鏡像其實是一組聯合掛載的rootfs(根文件系統),這些rootfs位於/var/lib/docker/aufs/mnt目錄下,是爲容器進程提供隔離後執行環境的文件系統。而Docker公司創新地設計了“分層鏡像”的概念,其背後也是對於多個rootfs的連接關係的處理,換句話說,也是建立了一個模型,這個模型是一個由可讀寫層、init層和只讀層構成的多個rootfs的分層架構。

又如,Kubernetes目前已經成爲了容器編排領域的事實標準,那麼Kubernetes的本質又到底是啥?如果我們初一看,Kubernetes就是一個幫助我們實現快速的容器集羣管理和調度的工具。但是,Kubernetes在頂層設計上,並沒有選擇走Swarm或Mesos的老路,而是選擇了創建一個新的模型,而Docker只是這個模型中的一個符合標準規範的要素之一(你可能知道,在K8s v1.20之後不再使用Docker,我們需要使用其他CRI運行時如Containerd或CRI-O了)。這個模型,統一定義了應用與應用之間的關係,緊密協作無間的就放在了Pod裏,需要批量管理的Pod就會放到Deployment裏,需要共享信息卻又不是隨便能看的就會放到Secret裏,而不想被直接訪問還想實現負載均衡的多個Pod就會找Service來幫它們做代理入口...... 此外,這個模型還統一了應用運行的形態,即定義了基於Pod改進後的對象,如Job、CronJob、DaemonSet等。最後,這個模型如何和我們交互呢?它定義了一個“聲明式API”的使用方式,可以讓我們通過yaml等方式和K8s集羣進行交互。可以看到,如果K8s沒有提供一個新的模型,而是走Swarm的老路,它可能不會從三足鼎立的廝殺中突出重圍,而開發者要做的,就是首先要看到這個新的模型並理解它,然後再應用它。

在技術世界裏,需要我們透過表象去觀察本質的地方太多太多......

3思維破局

思考問題的本質是思維的第一次提升,而遷移思考、升維思考和逆向思考則可以讓思維進行第二次的提升。

遷移思考

所謂遷移思考,就是將思維模型和底層邏輯運用到更多的領域,從而解決各種各樣的問題。但是,需要注意的是擴展應用到的這些領域,需要與當前問題屬於“表面不同,本質相似”的關係。

巴菲特的合夥人查理·芒格曾說:“一個人只要掌握80~90個思維模型,就能夠解決90%的問題,而這些模型裏面非常重要的只有幾個。”

升維思考

思考問題的本質可能並不能解決所有的問題,這時就需要我們提升思維高度、增加維度,甚至跳出原來的框架,這就是所謂的升維思考。升維思考的本質是對價值觀、人生觀和世界觀的重新審視,拓展和重塑

在升維思考的多個方法裏,對我最有影響的應該是無邊界思考法了,這就引出了有限遊戲和無線遊戲的概念。這個世上至少有兩種遊戲,一種是有限遊戲,另一種是無限遊戲。有限遊戲以取勝爲目的,而無限遊戲以延續遊戲爲目的。

其實,我們一出生就生活在一個有限遊戲裏:

  • 小時候的遊戲是“好好學習,努力考第一”,每次遊戲都有排名,都有贏家。每次遊戲,我們和父母都如臨大敵。

  • 大學時的遊戲是“看誰能找到好工作”,投身於考研、雅思託福GRE、筆試和麪試、LeetCode刷題,這個遊戲的結果就是贏家可以去世界500強,去頭部企業拿高薪。

  • 工作後的遊戲是“看誰早晉升、看誰買房多、看誰車子豪、看誰的孩子能成爲別人家的孩子......”

在我們玩遊戲的過程中,大部分人都開始過得大同小異,最終慢慢地就活成了同一種人,即以比別人過得更好取得勝利爲目標,一直要處於社會主流價值觀內的人。不過,同時我們也失去了一些自由,因爲我們將自己的人生限制在了一個小方框裏。

因此,我們需要用無邊界思考方法去打破這種限制,活出無限遊戲的自由。《有限和無限的遊戲》一書的作者詹姆斯·卡斯曾說:“有限遊戲是有劇本的,而無限遊戲則是傳奇性的”,所以,如果我們能夠不斷地擴展邊界和探索邊界,不再執着於輸贏,人生也就會變得不同。

在這個人生的無限遊戲裏,我們可以不斷地去追求對知識的探索、對智慧的追求、對美好的嚮往、對自我的覺知與探索 和 對他人的幫助,我們的人生觀也會從有邊界變得寬廣甚至無邊界,很多問題也會迎刃而解。

逆向思考

在進行了無數次的正向思考之後,我們可能會習慣性地沿着同一個方向繼續。這時,不妨試一試逆向思考。所謂逆向思考,就是對已經司空見慣或已成定論的事或觀點反過來進行思考的一種思維方式。

比如,當我們思考做什麼才正確的時候,我們可能會找不到方向。不妨這時進行逆向思考,先列出那些不該做的事,將它們排除在外,也不失爲一種好方法。小霸王/步步高創始人段永平就是這樣思考的典型案例,他有一個經典的“不爲清單”,即列出一些原則,但是這些原則是指導企業“不要做什麼”而不是“要做什麼”。

又比如,現在主流的編程範式包括:結構化編程、面向對象編程 和 函數式編程,每種編程範式在設計時並沒有說建議我們做哪些事,而是對我們程序員的能力施加了約束,即哪些事情不要做。

  • 結構化編程,限制使用 goto 語句,它是對程序控制權的直接轉移施加了約束。

  • 面向對象編程,限制使用函數指針,它是對程序控制權的間接轉移施加了約束。

  • 函數式編程,限制使用賦值語句,它是對程序中的賦值施加了約束。

與其說這些編程範式是告訴你如何編寫程序,倒不如說它們告訴你不要怎樣做。理解這一點,你纔算是真正理解了這些編程範式。

4學習總結

紙上得來終覺淺,絕知此事要躬行”,學習和打開我們技術人的思維,瞭解事物的本質以及如何進行本質思考後,就需要在日常的工作生活中試着用這些思想和方法去指導我們去挖掘現象背後的東西。畢竟,實踐纔是檢驗真理的唯一標準!

這裏,Edison誠心向各位IT技術人推薦閱讀艾菲的《直擊本質》或劉潤的《商業洞察力》一書,先學習什麼是本質,本質思考/洞察力是什麼能力,如何訓練本質思考/洞察力,或許你就會有一點答案了。如果你還對系統思考方法論有興趣,那也推薦閱讀一下《系統之美》。

讀一本書,不難,堅持讀書,不簡單。

IT技術人,讓我們一起堅持多讀好書。

(1)艾菲,《直擊本質》(推薦指數:★★★★★

(2)劉潤,《商業洞察力》(推薦指數:★★★★★

(3)[美] 德內拉●梅多斯,《系統之美》(推薦指數:★★★★) 

Note:這本書主要講解系統性思考和分析方法論

5思維導圖

如果你不想買書學習本質思考,那麼花2分鐘來瞅一眼核心內容思維導圖吧:

Note:精華腦圖,可以收藏。

公衆號內回覆“直擊本質”可獲得高清腦圖!

年終總結:Edison的2020年終總結

C#刷題:C#刷劍指Offer算法題系列文章目錄

商業知識:IT技術人的底層商業知識兵器庫

.NET大會:2020年中國.NET開發者大會收官


????掃碼關注EdisonTalk

不變的依舊是分享

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章