自去年 8 月以來,Roam Research 是我唯一使用的筆記軟體,使用 Roam Research 之後自己摸索出一套較為舒適的知識管理與任務管理模式,並使用 Roam Research 產出了幾篇文章,以及管理自己日常工作的內容。我發現使用這套方法之後,無論任務管理還是知識研究,它們都開始變得極其高效且逐漸有趣了起來。
可惜的是,我在網上搜了一圈發現社區內沒有高質量的 Roam Research 的使用講解文章,可能因為它在國內的使用門檻有些過高了(只有 Web 版 + 要求翻牆 + 高昂的訂閱價格),導致其在國內並不熱門。
那本文就介紹一下我自己使用 Roam Research 的場景和使用經驗,希望能帶給大家一些啟發。需要在開篇明確是,工具只是工具而已,重要的是使用方法和行為模式,因此最後讀者們無論是否使用 Roam Research 都不重要,關鍵的是如何將這套模式吸納到自己的工具包中。也因此本文雖題為「Roam Research 最佳實踐」,但內容上更多的是結合 Roam Research 來介紹知識管理與任務管理的方法,甚至在某些步驟中我也會順便介紹一些可替代的工具。
讓我們開始吧!
1. 知識管理#
1.1 新知識的形成:新舊知識的聯結#
學習的本質是創造新的節點,或者更精確點說,是創造出新的聯繫。比如對於以下這句話:
Flutter 是一個高性能的跨端前端開發框架,因為它提供了自繪引擎來抹平多端差異,並提供了高性能的 Channel 來實現跨端通信。
如果你不是前端開發,對 Flutter 沒有了解,不知道自繪引擎的原理,不明白跨端開發,不清楚 Channel 是什麼,也不知道這句話中潛在對比的對象是什麼技術方案,甚至不知道「高性能」的指標是什麼,那麼上面這句話對你而言就沒有任何意義 —— 雖然你每個字都認識,但是它對你而言卻不能構成新的知識。
因此,學習的核心是找到並建立起新節點與舊知識的聯繫,這也是費曼學習法的要點 —— 能用自己的知識體系去復述新知識,這才是對新知識的完全的理解,若固有知識體系無法完全解釋新知識,就需要對知識框架做調整,這就是學習和成長的過程。
1.2 知識間的鉤子:標籤#
一種比較容易關聯起新舊知識的方法是為兩者都添加一個共同的 “第三元素”—— 標籤,這是幾乎所有筆記軟體都有的一種基礎能力,標籤的介入一方面收納了知識,另一方面使得標籤內的所有知識有了間接的聯繫。
此外,標籤打破了文件目錄傳統的樹狀結構,本身知識就應該是網狀的,不應該是樹形的非此即彼。
而 Roam Research 則高度抽象靈活,它只有兩個概念:Page 和 Block——Page 可以作為其他 Page 的 block 的一部分,而某個 Block 的一部分也可以隨時變成 Page。除此之外,它們之間可以交叉互相引用,是非常靈活的。
如上圖所示,Page 是整個「斯賓諾莎」頁面,而頁面裡面的所有內容(開頭有個點)就是 Block。
靈活意味著使用起來沒有壓力,但也會令使用者產生困惑,比如剛才我們說到的標籤,它沒有。但其實任何一個 Page 和 Block 只要前面加上了「#」,那它就是標籤。我們可以建一個題為「標籤」的 Page,然後把我們所有的標籤都收納到這裡。這也符合我們的認知 —— 因為標籤本身也是一種知識。
上圖就是我目前用到的標籤,而點進「哲學」Page,可以看到裡面又有很多收納好的頁面,已經按照某種結構進行了組織。其中 “經驗論” 和 “唯理論” 又做了一層引用,因此可以看到這兩者有特殊標記。(引用的作用與好處我們在後文的「知識產出」章節中再展開說,此處不詳細說)
1.3 如何做閱讀筆記?#
到目前為止,我們介紹的內容並沒有展示出 Roam Research 的優勢,包括本節即將介紹的「如何做閱讀筆記」,其實和 Roam Research 也沒有多大關係,因為閱讀方法是通用的,工具大家可以自行選用(但 Roam Research 會有一些方便之處)。
話歸正題,如何做閱讀筆記這個話題經久不衰,但我想很多筆記都是按照書本的章節目錄來做的 —— 第一章講了啥,甚至這一段講了啥,都如實原句記錄下來。這樣並不是不對,只是對於「學習」這個目的而言,它的效率會有些低 —— 因為這個筆記記錄的是作者的思想,你了解的到也僅僅這是作者想給你看到的東西而已。而自己是否真的理解了?對於這些內容是否可以嵌入到自己知識體系裡?都是需要打上問號的。如果是否定的答案,那學習的目的就沒有達成。
首先,應該帶著問題去閱讀—— 我已經知道了什麼?我還不知道什麼?我還想知道什麼?帶著這些問題去閱讀會更高效,因為問題驅動會讓我們對閱讀攝取的信息會更加敏感,它是一種主動學習的狀態,其效率永遠大於被動學習。而如果沒有帶著問題去閱讀,就缺少了主體和背景的區分,則會很難記住事物。
比如《故事》被譽為編劇聖經,是一部比較厚的書,我會先通讀一遍,如果想學習了解「人物弧光」,那會再帶著這個目的深入閱讀。
再比如《Effective Objective-C》介紹 OC 的編程技巧,我會結合目前正在做的項目,邊閱讀邊反思其有沒有編碼上的不足之處。
其次,需要對獲取的信息進行加工處理,最好不要一句不動地複製原文 —— 因為筆記應該是對知識的提煉和濃縮,只有加工之後的信息才能嵌入到自己的知識體系裡,變成自己可以掌握的新知識。而反復加工提煉,這也是康納爾筆記法所強調的內容。
** 最後,對於學完的知識我們需要使用它。** 學習完新知識之後,它就變成了舊知識,下次攝入新知識的時候再把它拿出來進行加工,如此可以不斷不斷地強化理解,不斷不斷地優化、重構、擴充自己的知識框架,使得知識儲備充實起來。
比如想學習什麼是「認識論」,就可以帶著這個問題去閱讀哲學書,然後將幾個關鍵問題列出來,再自己進行解答。
在解答的過程中,我們會擴展學習「經驗論」和「唯理論」,而「認識論」其中的某些問題的回答又會引用到「經驗論」和「唯理論」的概念,這個時候就可以將解答直接嵌入進來,如此就形成了簡單的知識網絡。
同時,也可以發現上圖中最底下會自動鏈接上「斯賓諾莎」的部分內容,這是 Roam Research 自動鏈接上的,對我們做研究和知識產出會有幫助,我們講解知識產出會詳細介紹 Roam Research 的靈魂 —— 雙向鏈接。
在那之前,我們先看看筆記中標記的使用。
1.4 標記使用#
Roam Research 天然支持 Markdown 語法,並且可以自定義 CSS 和自己寫一些有意思的 JS 插件。
簡單列一下幾個 Markdown 標籤我的使用場景:
- 大標題:文章標題,或者是知識卡片的標題
- 標題:單獨成為一個 Block,需要是一個名詞,名詞性短語,方便引用。如果是一個粒度足夠細的概念,也要單獨成一個 block,以方便引用。
- 粗體:段落裡重點內容會用綠色的粗體標註。
- 荧光筆:用的比較少,標註關鍵概念。
- 斜體:由於我個人不會用到斜體,所以我將斜體的樣式改成了紅色,用來標註問題。
- TODO:標記需要後續補充的內容
Roam Research 支持模板,這裡我單獨列出了標籤 Block 和來源 Block,方便鏈接和溯源。以下是用模板創建的一個筆記框架,並記錄了部分筆記,如下圖所示:
此外,Roam Research 提供了 Daily 板塊,可以將臨碎的知識內容記錄直接記錄進來,後續整理。如下圖所示,是某天的臨時筆記,需要整理的內容已用 TODO 標出,方便後續進行任務管理(任務管理章節再細談)。
1.5 知識產出#
我們所有的學習筆記其實目的都是為了產出,產出未必是形成完整的文章,階段性靈感或內化成自己特有的收穫也是可以的。那在這個階段中 Roam Research 的自動塊級雙向鏈接就起到了至關重要的作用。
我們在 1.1 中說過,學習的本質是建立起新舊知識的聯繫。具體而言,是神經元的特性所致:
- 先後激活,就會建立連接:比如現有 A,再有 B,心裡默念 A 再默念 B,如此 AB 之間就有了連接。
- 雙向激活,可以強化連接:在剛才連接的基礎上先默念 B 再默念 A,形成雙向激活,認識到 AB 可以成對出現,如此便強化了連接。
- 第三者干擾,將會弱化原本的連接:但因為引入的新的節點,知識網絡也便擴充了,認知視野也更廣闊了。
只要在 Roam Research 中使用了引用,它就會自動建立雙向鏈接,當這種鏈接豐富了之後,我們可以發現更多知識之間的隱藏關係。
如下圖所示,是我筆記圖譜中的局部網絡,當我點擊「設計」之後,與它關聯的 Page 就會高亮顯示,我們會發現其中的「Hook 模型」和「心理學」也有聯繫,那我們在深入研究「設計心理學」這個交叉學科領域時,那對這些隱藏鏈接的發掘就對我們非常重要。這也是在 Roam Research 中使用標籤的額外收穫 —— 通過增加鉤子,來建立知識之間的隱藏聯繫。
那發掘關係之後,我們如何深入研究某個知識呢?舉個例子,我想深入研究「康德」,那只要建立「康德」這個 Page,Roam Research 就會在這個 Page 下方顯示上所有的有關「康德」的強鏈接和弱鏈接。即它幫我們確定了「康德」這個新知識,在我們知識框架中具體位置。
上圖所示,我以前讀過的書 —— 比如《存在主義》、《存在主義是一種人道主義》、《當下的啟蒙》;我以前寫過的文章《人生為何》;我在筆記中添加過的標記…… 等等這些,「康德」都將它們關聯上了。其中,對於添加過的標記,就是強鏈接,我們可以點開後面的引用計數,來看其中引用的具體原文:
可以說我什麼額外的工作都沒有去做,Roam Research 就根據我已有的知識生成了「康德」這個新的知識。之後,我們需要對於生成的知識做整合和加工,將其記錄在 Page 中,以此擴展我們的知識內容,加深對「康德」的理解和掌握。在未來不斷地學習中,如果對於康德有新的認識和理解,我們也可以反復修改這個 Page,長久維護,增加知識的廣度和深度。
2. 任務管理#
第二章中,我們來看看如何在 Roam Research 中做任務管理。其實 Roam Research 的主打能力還是知識管理,奈何其功能太過靈活,因此也是可以做任務管理的。
2.1 每日任務與復盤#
我們之前說過,Roam Research 提供了 Daily 視圖,為自動創建每日筆記。同樣的,我們可以對任意 TODO Block mark 上日期,那麼在對應的日期上就能看到我們以往對當天的安排。
而每日的任務,我們可以從其他的項目中直接引用進來,這樣我們就可以根據日程來管理項目,同時由不會肢解項目流程的完整性。
在任務下我們可以記錄任務實現的方案和遇到的問題,如此一來,沉澱下來的每日的 Daily 內容我們就可以直接復盤。
2.2 篩選任務#
Roam Research 還提供了 Query 查詢腳本,比如我們可以寫一個 Query 腳本來過濾出該項目倉庫中所有未解決的 issue。
對於項目中的任務,我們直接使用模板將任務和代碼倉庫中的 issue 進行管理。
2.3 長期計劃管理#
對於長期計劃,我們也可以新建一個 Page 進行管理,例如這個是我的「閱讀」Page,記錄了我閱讀的書籍,點擊對應的書籍中就可以看到對應的筆記。
2.4 替代方案#
任務管理的核心是「任務 —— 規劃 —— 復盤」,這一套流程還是有蠻多替代方案的,這裡安利一下 NotePlan 3,它也是每日筆記,也可以建立項目頁面,從而實現在每一天的日程中具體管理項目。
當然 OmniFocus、iOS 的提醒事項、甚至紙筆,只要方法對了,也都是可以做到高效的任務管理。
對於知識管理部分,如果沒有條件使用 Roam Research,那麼 Obsidian、Notion 、Craft 也是不錯的免費替代方案。最後,工具僅僅只是工具而已,希望本文提到的閱讀法和知識關聯法能夠對大家的知識管理有些幫助。