文不如表,表不如圖

所謂“文不如表,表不如圖”,指的是這樣一回事:在理解複雜事物的原理時,表格優於文字,圖形又優於表格。這是我國著名飛機設計師程不時先生的經驗,也是我的經驗。

程不時先生生於1930年,1947年進入清華大學航空系讀書,畢生投入航空領域,先後主持總體設計了殲教-1、運-10、C919等重要機型。程老先生出生在文化家庭,父母都受過良好的教育:其父程炯深受實業救國思潮影響,就讀於上海同濟大學,之後赴德國勃蘭斯威工業大學深造;母親朱啟疇畢業於湖南省立第一女子師範學校。程老先生的父母從小就注意引導他掌握科學、嚴謹的思維方法。其中有個細節引起了我特別注意。

程老先生小的時候,父親給他的任務並不多:每天做五道算術題,寫一篇日記,畫一幅畫。但是有一點特別的要求,做數學題時,如果題目可以畫圖輔助,就必須畫圖。程老先生小時候不理解,長大了才發現,在理解事物(尤其是機械結構)方面,很多時候圖形比文字強太多了,也因此在學習工作中受益匪淺。程老先生深深記得的一句話是:文不如表,表不如圖。

文不如表,表不如圖。這也恰恰是我的經驗。只不過,我是偶然發現這個道理的。

剛上中學的時候,有一天似乎在《少年科學》(?)上看到一道題:小明去登山,第一天上山,第二天原路下山,兩天出發和到達的時間相同,求證:兩天中必定有一個時刻,小明在相同的位置。

這個題目讓我印象深刻,因為求證的題目,通常要證明的結論是“顯而易見”的。但當時我連“必定有同一個時刻,小明在相同的位置”都不能確定,更不要說證明了。我翻來覆去地想,怎麼想不出來。

等到第二個月,新的雜誌來了,終於可以看到答案了,解法卻讓我目瞪口呆:原來是用圖形來證明。畫一個座標系,縱軸表示小明在路上的位置(距離山下的距離),橫軸表示時間(假設8點出發,18點到達)。然後按照上山、下山的實際情況,在座標系裡可以畫出兩條線。很明顯,兩條線必定有一個交點。這個交點,就是相同時間、相同位置。

文不如表,表不如圖

一圖勝千言

大家經常說“觸類旁通”、“舉一反三”,似乎是很平常。然而根據我的經驗,“通”和“反”其實都是很精妙的,要求相當高。更多的時候,我們普通人是從不同的領域獲得一些啟發,類似“通感”那樣的靈光閃現。我就是這樣,看到這個題目的論證,我忽然想到,橫縱軸的形式,會讓一些問題變簡單。比如歷史!

歷史是讓我很頭疼的功課,許多人說考的就是“死記硬背”,或許是實情。但對我來說,死記硬背相當痛苦,因為毫無邏輯:講課的時候是書上一段一段文字看過去,複習的時候是把其中的重點挑出來背誦。

在我看來這和語文課背課文沒什麼兩樣,甚至更難。課文好歹還是一篇文章,內部有一定的邏輯。歷史課要背的東西則毫無邏輯可言,充其量只能把它編成順口溜,用“歌訣”來加深記憶。即便是這樣,仍然相當乏味。

那麼,如果換個角度來看呢?我嘗試照搬上面的解題思路,建立二維座標系,縱軸是主題(側面),橫軸是時間(朝代),大概像下面這樣。

文不如表,表不如圖

畫了這張表格之後我忽然發現,世界好像不一樣了。縱然歷史課本主要是按一個個朝代講的,然而表格上的知識忽然變得立體起來,像蹦出來的魔方,我可以自由自在地旋轉,隨便從哪個點、找什麼角度切進去,輕輕一拎,都可以牽出相聯繫的一長串知識點,然後還可以上下左右恣意遊走。於是,即便某個知識點記得不清楚了,也可以通過旁邊聯繫的知識點推導出大概。

於是期末複習時,我沒有再像以前那樣一課課背誦,而是做了一張長長的紙,像演習擺沙盤那樣,把課本上的各個知識點放在合適的位置。那感覺就像以前看的漫天星斗,突然有了一整張星象圖,瞬間清晰了。

因為那次歷史考得不太費勁,我覺得這應該是個不錯的辦法,索性把它發揚廣大,推廣到其它我覺得頭痛的問題。比如,哪個朝代更長,哪個更短,誰在誰之前,誰和誰並列…… 這次我乾脆做了一張更形象的圖(當時的圖已經找不到了,現在在網絡上找到了張臺灣課本里類似的圖)。

文不如表,表不如圖

這樣你還會糾結哪個朝代時間更長嗎?

有了這張圖,朝代的關係就躍然紙上:哪個朝代在哪個朝代之前,哪個朝代在哪個朝代之後,哪個朝代和哪個朝代並列,哪個朝代時間長,哪個朝代的時間短…… 如果我們多看看地圖就能把地理記得個大概,那麼多看看這張圖也就可以把歷史記得個大概,再不需要去生硬的背誦。

遺憾的是,雖然這個辦法很有效,我後來卻沒有把它繼續發揚廣大,沒有把世界歷史也裝進來。許多年後我讀《停滯的帝國——兩個世界的撞擊》,看到作者說“中國人的歷史觀很奇怪,一直是按照朝代來的,似乎中國可以獨立於世界,因此也喪失了從世界的角度來看待自我的視角”,印象特別深刻。

課本教給我的歷史知識確實是割裂的:我們都能歷數唐宋元明清,但我們不知道,伽利略做斜塔試驗時我們在幹什麼,哥倫布發現新大陸時我們在做什麼,美國革命時我們在做什麼……;我們也不知道,天寶年間世界上發生了什麼,與湯顯祖同時代的偉大文學作品有沒有,有哪些……

後來我發現,許多之前歷史得高分的同學,談起歷史來似乎並沒有多少層次的認知;而我的歷史分數雖然不高,但體系相對完整,至少不算太差。唯一可惜的是,如果我當時能把圖做得複雜一點,說不定後來不必花那麼多精力去補課。

不過無論如何,我總算是體會到了:把文字知識改頭換面,用表格、用圖形表示出來,會讓我們學得更容易,印象更深刻。在後來的學習工作中,這條經驗一直讓我受益。

印象比較深的例子是學習正則表達式。瞭解這玩意兒的讀者都知道,它誕生很早,能力很強大,語法比較古怪(畢竟如今的程序語言要人性化多了)。早年接觸正則表達式的時候,搞清楚那些概念確實花了我很多時間。在學習過程中,我設計了一套圖形把它們畫出來。比如下面這樣:

文不如表,表不如圖

誇張點說,因為發明了這套圖形,後來我再也沒有搞混淆過各種類似的結構和功能。如果遇上比較複雜的表達式,一眼看不出結果,我就會按照這種畫法來拆解,最後通常都有清楚的結論,也很容易發現問題。

如果你細心觀察這幅圖會發現,其中還用到了不同顏色:綠色表示必須匹配,紅色表示不可匹配。其實,這也是我自己在圖表製作中摸索的經驗。

工作中有次要做個查詢界面,輸入查詢條件之後,結果會是一張表格。但這只是初篩的結果,真正用的時候還得人工詳細篩選。然而表格很大,詳細篩選看得眼睛都要暈了。但是,我又沒法把表格做成三維的,因為沒有適合三維圖形精細操作的交互方式。那麼,怎麼在二維表格裡表示三維數據呢?

有一天我突發靈感,想到用顏色來表示第三維:明顯不適合繼續篩選的單元格,用紅色標註;明顯適合繼續篩選的單元格,用綠色標註;還有一些不太確定的,則不標顏色。只要注意配色,不要讓顏色衝突太劇烈,識別效率還是相當高的。

文不如表,表不如圖

表格大概是這樣的(數據可忽略)。

由此我也得到了一條經驗:在某些場景下,顏色往往可以在不破壞圖表結構的前提下,額外增加一重維度。在後來的工作中,這條經驗確實很有用。工作中經常要出一些統計報表,我往往會要求,對合格的標綠色,不合格的標紅色,這樣,整體上看工作質量如何,一目瞭然,而工作不合格的人收到報表時天然就會感到無形的壓力。從反應來看,效果很好。

為什麼圖表有這麼強大的能力?我的答案是,第一,它代表了抽象能力。第二,它重建了連接。

軟件行業的人大都知道要做好系統需要有很好的抽象能力。但是,什麼是抽象能力?抽象能力不是為抽象而抽象,從更廣泛的意義上說,它要求我們不受所見所聞的限制,能把眼前的一切去粗取精,抓住真正的重點。

如果你要做的不是簡單的“重點摘抄”再羅列,而是把重點摘出來放到表格或者圖形裡,你的選擇和偏重一定會受到形式的影響,也就能從更多角度來篩選和定位重點。

同時,認知科學告訴我們,一個人的閱讀和思考越多,思維越活躍,隨之增長的並不是簡單機械的記憶,而是為已有素材建立的連接。簡單的文字材料往往並不能表達複雜的結構,也建立不起復雜的連接。

製作表格和圖形的過程並非簡單照搬文字材料,還需要主動設計結構,恰恰是在這個過程中,我們構建了不同的視角,由此在不同知識點之間建立了立體的聯繫,所以知識也更加牢固,理解更加深入。

從這個意義上說,“文不如表、表不如圖”,強調的恰恰就是抽象能力和構建連接的能力。一旦掌握了這種能力,許多問題都會迎刃而解。

比如我寫的《正則指引》,我比較欣慰的一點是,在講解一般人容易搞混淆甚至搞錯的知識點上,沒有看到讀者存在多少疑問。我想,其中的一個重要原因是,寫作的時候我確實花很多心思設計了大量表格和圖形。

這也恰恰是本書和《精通正則表達式》,甚至其它單純使用“文字+代碼”的技術書籍不同的地方。畢竟,當年閱讀《精通正則表達式》時,反覆揣摩一些知識點的痛苦經歷,印象實在是太深了。

比如用這張圖講解匹配位置。

文不如表,表不如圖

再比如用這張圖講解線程安全性。

文不如表,表不如圖

“文不如表,表不如圖”,我也相信這條經驗肯定不只適用於程老先生和我。在工作中我們經常要討論系統設計,討論邊界、責任、協作關係,我經常發現:隨便拿起筆就能在白板上畫清楚的人,哪怕圖畫得醜、字寫得不好看,都不影響認知的清楚。

相反,一上來就擺一大堆文字,或者注重圖形的美觀甚於邏輯結構的人,往往並沒有徹底想清楚。我見過許多花裡胡哨的“思維導圖”,它們更合適的名字或許是“打著思維導圖幌子的文字”,其實對增進理解並沒有什麼幫助。

我衷心希望,為了把事情搞得更清楚,為了讓其他人理解得更容易,有更多的人拿起筆來,多畫一些表格和圖形。

就在我寫完這本書的時候,我發現陝西師範大學出版社已經出版了《時間上的人物》一書,其思路和我的基本一致,只是更細緻,把古今中外所有的事件都標註到時間軸上。如果希望用這種方法學習歷史,不妨參考。


分享到:


相關文章: