新手如何自學一個領域?這裏有一份全指南

原創 Lachel算法

L先生說編程

 

之前寫過很多跟學習相關的文章,但大都是集中於某個點,欠缺系統性。網絡

 

今天,我想經過這篇詳細的文章,把「學習」這個問題,簡單梳理一下。框架

 

固然,這是一個巨大的話題,不免掛一漏萬。之後有機會,再慢慢補充,造成一整個關於學習的系列。編程語言

 

但願可以幫到你。分佈式

 

 

 

1. 框架學習

 

很多讀者朋友問過我「剛剛入門一個領域,什麼都不懂,怎麼學?」個人回答永遠都是同樣的:網站

必定要先從搭框架開始。spa

什麼叫搭框架呢?簡而言之,就是給你的大腦一個鋪墊,讓它準備好,告訴它:在將來的日子裏,咱們將會大量吸取這個領域的知識,請作好理解和儲存它們的準備。操作系統

 

舉個例子:當你撰寫一份策劃方案、報告時,你第一步是否是先有一個總體構思,列一個大綱:我先寫什麼,而後寫什麼,最後寫什麼 —— 接下去纔開始動手?

 

學習也是同樣的。若是缺乏了框架,你全部獲取的知識,就只是碎片信息而已。它們會孤零零地漂浮在記憶裏,難以穩固存在,也難以被你所調用、組織、整合。

 

那麼,如何搭建框架,令咱們的學習更加體系化呢?

 

我建議的方法,是去搜尋這個領域相關的經典教材,大約3-5本。而後讀一遍 —— 無需一字不漏地精讀,這太花時間了。大體翻一遍、通讀一遍,就能夠。

 

在這個過程當中,你須要思考和回答這三個問題:

  • What:這個領域研究的對象是什麼?有哪些主要流派和分支?有哪些經常使用的術語?
  • Why:這個領域存在的意義是什麼?爲了解決什麼問題?如今進展到哪裏?
  • How:這個領域的主要方法是什麼?有哪些被普遍認可和應用的基本成果?

 

舉個例子。不少讀者問「如何入門心理學」,我總會推薦幾本大部頭,像《心理學與生活》《社會心理學》《認知心理學》。不少人看到就會開始打退堂鼓:

「好幾百頁,何時才能看完,至少得看一年吧……」

 

其實你須要一頁頁把它們讀完嗎?固然不須要,也沒有必要。你先讀一下前兩章,對它們的起源有一個初步瞭解,再大體翻一下其餘章節,瞭解心理學有哪些分支、分別研究什麼、目前有了哪些主要成果;再着重看裏面加粗的、或是章末拎出來的術語,大體理解它們的意思。就能夠了。

 

再好比,學習哲學,你沒有必要一頁頁去翻完《大問題》《西方哲學導論》,你要作的是:總體通讀一遍,瞭解哲學的起源是人對天然的懷疑,主要關注的問題是本體論、認識論和倫理學,大致上能夠劃分爲古希臘哲學、經院哲學、近代哲學、現代哲學,每一個階段都有什麼特色 —— 好比近代哲學受文藝復興和啓蒙運動影響,思辨的核心從宗教轉變爲人文,開始引入成熟的邏輯學、科學,開始變得多元化,等等 —— 就能夠了。

 

這個階段,你要作的是什麼呢?是博觀約取,在內心創建起一幅圖景。不要把本身侷限在「做者的脈絡」裏面,而是要以你內心的圖景爲主,缺什麼就補什麼。

 

這在心理學上面,就叫作「圖式」(Schema)。它是咱們認知和理解事物的基礎。

 

好比:你翻完了一本書,知道哲學研究的一個問題是認識論。但你不清楚什麼叫認識論。那就再翻到相關的部分多看幾遍,或是把書裏全部提到認識論的內容整合起來。沒必要細究每一個概念是什麼意思、每一個結論是怎麼推出來的,知道它大概指什麼便可。

 

這階段的首要任務,是把這幅圖景補全。一旦成功創建圖景,它在你將來的學習裏,會起到舉足輕重的做用。

 

 

2. 概念

 

搭建完框架以後,你要作的,就是去把它精細化、補充完善。

 

在搭框架的過程裏,你必定會碰到許多術語和概念,停留在「似懂非懂」的程度,頗有可能存在誤差。那麼,是時候把它們攻克掉了。

 

這個階段,你要採起的方法,就不只僅侷限在經典教材裏面了,而是普遍地搜索。

 

好比,學習哲學,你看到一個術語,叫「質料」,翻了一下,發現來自亞里士多德,但書裏由於篇幅緣由沒有詳述。那麼,你就要本身去搜索這個術語,想辦法把它弄通、弄透。

 

好比,你能夠去找亞里士多德的哲學導論、解讀,翻到相關的部分,去嘗試着理解它準確的內涵。能夠找書,能夠在網上搜索,能夠看公開課……不拘泥於一切形式。

 

你要作的是:快速定位到你存在疑惑的概念,用盡量多的信息去攻克它。

 

在這個過程當中,你多半又會碰到新的概念,那麼,不妨繼續順藤摸瓜,循着「質料」出發,把相關的概念都歸入進來,一塊兒理解清楚。

 

不少朋友常見的困惑是:我怎麼控制這個「度」呢?怎麼避免本身不斷延伸、跳轉,陷入新的「概念海洋」裏面?

 

個人建議就是:時時刻刻在內心自問一遍:「我是否可以用本身的話把這個概念解釋清楚?」若是能夠,而且不涉及新的概念,那就說明是時候停下來了。

 

好比:循着「質料」,你可能會看到「質料-形式」,跳到「四因說」……到這裏就能夠了。再繼續深刻,就已經跟「質料」沒有太大關係了。

 

要時刻記住,本身出發的目的是什麼。以目的爲導向,給本身劃定「邊界」。

 

一旦你認爲本身足夠理解了一個概念,就將它放回到框架裏,試着用本身的話去解釋它,看是否通順、合理。若是是,那很好,繼續尋找下一個概念,以此類推。

 

慢慢的,當這些概念都弄通透了,你的整個框架,也就更加準確了。

 

 

3. 網絡

到了這一步,你就算是正式開始入門了。

通過框架搭建和概念澄清,你會發現,以前看不懂的東西,彷佛可以大體理解了;以前想固然的地方,原來是本身的理解不夠準確;以前以爲模糊的問題,也彷佛有了一些思路了。

 

那麼,這個階段,就能夠帶着下面這個問題,去閱讀、聽課、學習了。

 

什麼問題呢?始終帶着「聯繫」的思想,時時刻刻思考:我學到了一個什麼知識點?它能夠跟別的什麼知識點聯繫起來?如何構建這種聯繫?

 

這纔是學習的核心:知識的本質永遠不是信息自己,而是信息之間的聯繫。

 

正是這種聯繫,涌現出了超越單個信息點總和的「系統性」。

 

如何思考「聯繫」呢?我本身經常使用的方式,是把每一個知識點看做一個「知識元」,它有三個突觸,分別是 what、why 和 how。

  • What:話題,結構,類別
  • Why:原理,緣由,起源
  • How:應用,解釋,結果

 

舉個例子。你讀到笛卡爾的「我思故我在」,你發現,他是在解釋「自我」—— 那麼,就能夠把它跟「自我」聯繫起來。

 

過了一段時間,你也許會讀到丹尼爾·丹內特的「多重草稿模型」,你會發現,他從腦科學的角度,提出了一種全新的「自我」觀念。那麼,一樣把它跟「自我」聯繫起來。

 

這時,你會發現,圍繞着「自我」,「我思故我在」和「多重草稿模型」產生了某種聯繫。什麼聯繫呢?顯然,後者是在反駁前者,提出了一種非實體的、分佈式的「自我」。那麼,你就能夠把這二者,創建起一種新的聯繫。

 

進一步,你還能夠去思考:爲何他們的觀點會有這樣的差別呢?若是你把笛卡爾放回以前創建的「框架」裏,不難從宗教和本體論去找到他思想的根基:他的身心二元論,本質上是一種對宗教和科學的調和 —— 那麼,你又能夠從 why 出發,去延伸下去。

 

一樣,關於丹尼爾·丹內特的理論,從 why 出發,又能夠延伸到腦科學、認知科學……

 

像這樣,把浩瀚、繁多的概念節點組合起來,就可以組成一張網絡。一張覆蓋了種種學科、領域,從底層和表層,鉅細靡遺的龐大網絡。

 

這就是你的知識體系。

 

 

4. 主題

 

在上面的例子中,若是咱們把目光,聚焦到「自我」這個概念上,會怎麼樣呢?

 

你也許會想到「我思故我在」,想到「多重草稿」,想到休謨的「自我不過是一連串印象的集合」……這些被你嵌入知識網絡中的節點,會所有顯現出來,映入你的視野。

 

那麼,你不妨去思考一下:圍繞着這個主題,這些不一樣的人、不一樣的觀點,可以如何整合起來?

 

他們的發展脈絡是什麼樣的?彼此之間是什麼樣的關係?爲什麼會產生這些差別點和共同點?

 

這就是「主題」—— 聚焦到咱們龐大知識網絡中的某個細節,去拎出一個「局部網絡」。

 

像我在 大腦的漏洞:你是如何走向狹隘和頑固的? 中所寫的內容,「事實 → 結論 → 觀念 → 信念」這麼一個過程,就是我知識網絡中,圍繞着「偏見」這個主題,所構成的局部網絡。

 

有哪本書直接提到這個過程嗎?有哪本書提出過「過分簡化」「孤立記憶」這兩個詞彙嗎?其實沒有。

 

它們並非心理學中的固有知識。而是我圍繞着「偏見」這個核心,把全部會致使偏見的過程,進行提煉、總結、概括,再賦予它一個名字,所得出的成果。

 

一樣,「證明誤差」和「信息繭房」,是同一個領域的知識嗎?其實不是。前者屬於心理學,後者屬於傳播學。但沒有關係。在「偏見」這個主題下面,它們就是互相補充的。

 

這就是「主題」的力量。圍繞一個主題,你能夠把一個複雜的、抽象的過程提煉出來,變成一個新的節點;你一樣能夠把不一樣領域的知識點放到一塊兒,按照它們內在的類似點和共性,去總結出一個新的、更高層次的結論。

 

打一個比方。若是說知識網絡就像一棟房子,那麼「主題」,就是你在這棟房子裏面,能夠進行的種種活動:聚會,工做,吃飯,看電影,等等。

 

這些種種主題,就構成了咱們對世界的認知。

 

 

5. 遷移

 

終於說到了遷移。

 

若是說前四點,都屬於「知識的積累」;那麼到這裏,就正式進入了「知識的應用」。

 

什麼叫遷移?它的意思其實就是:把舊的、已知的規律、模式,遷移到新的問題、情境上面。

 

這個階段,最重要的是什麼呢?是理解和拆解外部情境的能力。

 

好比這個問題:博物館着火了,你應該救一幅名畫仍是救一隻貓?—— 當你看到這個問題時,就應該透過表象去思考它的實質:

 

這個問題的實質是什麼呢?是一個兩難選擇。

兩難之處在哪裏?一端是價值(名畫),一端是道德(生命)。

 

那麼,你或許就會發現:它的本質是什麼呢?其實就是被說濫的「電車難題」的變體而已。

 

再進一步,當咱們面臨道德和價值的兩難抉擇時,應該如何思考呢?咱們不妨求助於倫理學。

 

倫理學有兩個觀點,分別是目的論和義務論。前者着眼於事物的「效用」和「價值」,後者着眼於行爲的動機和行爲自己,只要出發點是善的,行爲就是善的。

 

那麼很顯然,把倫理學的知識遷移過來,咱們就會知道:這類兩難問題並不存在答案。但透過這類問題,咱們能夠作的是,反思本身的立場和觀念。

 

好比,你是一位功利主義者,那麼不妨想想:你真的能接受一條生命在你面前消失嗎?你是一位義務論者,那麼不妨想想,你的行爲真的是發自心裏的嗎?是否會受到外界的影響和干預?

 

固然,若是你用別的知識去遷移,那得出的可能又會是別的結論。

 

這就是一種遷移。具體來講,就是三步:

1)在前四步積累知識時,爲知識預留出「接口」(參考第四點的 how 突觸)

2)遇到新情境、新問題時,經過對問題進行拆解,找出它背後的核心。

3)把問題核心跟「接口」作對比,利用已有的知識,去應用到新問題上面。

 

一樣,假如你在學習編程,那麼,最重要的一步是什麼?就是對你想實現的效果去「拆解」,把它們用計算機可以理解的流程、模式,描述出來,再對應到本身積累的編程知識,去「調用」已有的知識來解決問題。

 

舉個例子。假如我想在一羣人裏作一個「一對一匹配」的小活動,能夠如何來拆解這個問題呢?

 

不妨思考,它最終的目的是什麼?是使到類似的人儘量地匹配上。那如何讓電腦理解「類似」呢?咱們知道,計算機是不理解語言的,它只能理解數字。因此,咱們只能經過數字,來實現「類似」。

 

那麼, 一個簡單的思路就是:咱們事先定義出若干個分類,再讓參與活動的人作一個問卷,依據問卷結果,把他們分配到不一樣的分類裏面(給每一個人貼上一個一、二、3……的標籤),再在同一個分類裏隨機選取。

 

進一步,你會發現,這其實跟推薦系統的算法也是類似的。只不過推薦算法的輸入,換成了各類各樣的用戶行爲數據,以及算法複雜了不少。

 

簡而言之,結合這幾個例子,咱們有哪些進行「遷移」的方法呢?

 

1)類比。能夠去思考,這個問題跟哪些舊的問題、咱們已知的問題類似,能夠進行模仿和類推。

2)黑箱。不妨把這個問題視爲一個黑箱,去思考:它的輸入是什麼,輸出是什麼。

3)抽象。不妨去掉具體情境,試着把它泛化、抽象化,提煉出它的結構和骨架,思考,它本質上是一個什麼樣的問題?

 

 

6. 模型

 

當你進入「遷移」的階段以後,下一步,就是不斷去練習。不斷去尋找和發現新的情境,練習拆解和遷移。

 

在這個過程當中,你也許會慢慢發現:

許多新問題之間,實際上是存在一些共性的。它們雖然不一樣,但均可以用同一套知識模式去遷移解決。

 

這時,你就創造出了一個「模型」。

 

這也是不少人缺少的能力。他們或許知道怎麼遷移,也不缺少練習量,但缺的是,從解決問題的經驗中,進行高層次的總結概括、抽象出「模型」的能力。

 

許多咱們所說的「專家」和「聰明的人」,其實比咱們厲害的,也正是這一點:他們的優點並不在於知識量的儲備 —— 那些都是靜態的。他們的長處,是擁有大量的「模型」積累。

 

你會發現,面對一個新問題,他們老是可以很快把它進行拆解,並調用相關的知識來解決 —— 這就是模型起到的做用。

 

好比,我在第5點舉的例子「救畫仍是救貓」中,用到的措辭是「這類問題」 —— 這其實就是一種「模型」。

 

再好比,我在之前的文章裏,提到過不少次「動力-阻力」模型。這個模型有哪一本書提到過嗎?其實沒有。它徹底是我原創的。

 

可是,經過這個模型,我就能夠把許多相關的知識濃縮起來,去處理一系列跟決策、行爲、習慣、政策……等等相關的問題,更好地思考它們和解決它們。

 

我經常說,要努力去創造本身的方法論。模型就是本身的方法論。你全部的知識,都是這個世界上已有的、已知的,惟有這些經過你的經驗和實踐,所得來的濃縮的「模型」,纔是真正專屬於你本身的財富。

 

你會發現,模型跟主題很是像。它們的區別是什麼呢?主題是對內的,是你圍繞知識網絡中某個節點所展開的一系列「解釋」;而模型是對外的,它是將主題遷移到一系列情境上面的結果。

 

簡而言之,模型的本質,就是主題+情境;主題聚焦於「爲何」,而模型聚焦於「怎麼作」。

 

當你可以打通前五層,而且從模型的角度看待新問題、解決新問題的時候,你就已經進入「專業」的領域了。

 

 

7. 更新

 

最後一層,是更新。

 

學無止境。一個框架搭建起來,一個知識網絡構建起來,它始終是「過去」。但人類的知識是在不斷髮展的。你必須時刻去更新它,去更新舊的節點,更新節點間的聯繫,才能讓你的知識網絡保持生命力。

 

如何更新呢?這裏,就是碎片信息的做用了。我會在生活中,去看各類各樣的網站、博客、雜誌,看一些不長的、專一於某個點的文章,並用最新的結論和觀點,去覆蓋和修正個人舊觀點。

 

一樣,在生活中,若是個人舊觀點受到挑戰和質疑,我也會去想辦法「尋找共識」,找到本身觀點的不足和殘缺點(正),把對方的觀點整合起來(反),以達到一個更高層次的「合」。

 

這就是一個不斷更新知識庫、不斷升級大腦操做系統的過程。

 

但不少人在這一層,也特別容易產生一個問題:封閉心態。

 

許多人會把不一樣的觀點,當成是對本身的攻擊,從而下意識地啓動防衛機制,來維護本身的正確、穩定。

 

(具體的機制,我在 大腦的漏洞:你是如何走向狹隘和頑固的? 寫得很清楚了)

 

記住:只有開放的心態,可以讓咱們保持生命力。

 

當你的心裏變得封閉,當你關上了接納和共識的大門時,你纔是真正地變「老」了。

 

 

最後,簡單提幾個你們常見的問題。

 

1)有些人可能會以爲「我好像沒有框架」。實際上,框架是必定存在的。你之因此以爲「沒有框架」,只不過是由於它沒有被你意識到而已。

 

但這樣一來,就很容易形成什麼結果呢?框架不完整,不許確,支離破碎。從而致使,你對新知識的接收和儲存,也是破碎的。

 

因此,把本身的框架「顯式化」,也是一種很是重要的能力。

 

2)這套理論適用於絕大多數的學習。只不過對不一樣領域的學習而言,每一層次的比重會有所不一樣。

 

好比,偏理論型的知識領域(好比哲學、歷史、藝術),框架-概念-網絡-主題的佔比可能會重一些;而偏實踐、技能型的知識領域(好比編程),框架-概念、遷移-模型的比重就會大一些。

 

3)大多數人的問題是什麼呢?被動學習。

 

什麼意思呢?打開一本書,從頭看到尾,忙着去思考「做者講了什麼」「書的結構是什麼」,全盤照收;聽一門課,忙着把課程結構、脈絡梳理出來,而後去記憶和背誦……

 

這樣有用嗎?也許有,但不大。你只是在複製別人的思想而已。學再多,你也只是在複述,很難真正可以「運用」。

 

不要以爲跟着別人走就是捷徑。學習沒有捷徑。

 

4)不少人在前幾層的時候會有困惑:但是,我怎麼知道我搭的框架、理解的概念是否正確?萬一錯了呢?

 

其實沒必要過度擔憂。一方面,框架的搭建、概念的理解並不是源於臆測 —— 你是要查閱資料來攻克它們的。這一點能夠保證不會出現方向性的誤差。

 

另外一方面,這是一個穩健的系統。框架和概念共同組合,彼此做用,若是誤差過大,那麼這個框架必定是有內在矛盾的,也很容易被咱們所發現。

 

最後,無需追求100%的正確,這既沒必要要也不可能。關鍵是,要保持開放的心態,在後面的學習中,時刻去檢查和更新本身的知識。這就能夠了。

 

咱們要追求的,永遠不是「絕對正確」,而是「比過去的本身更好」。

 

 

最後,再回顧一下這張圖。

 

 

 

 

立刻就 2021年了。但願能爲你新的一年,注入一些動力。

 

新的一年,一塊兒加油。: )

如做者所說,學習編程須要先創建本身的知識體系,在學習的過程當中也要結合書籍、課程來學習。而編程尤其注重實戰,但學校的教育少了工程師培養的部分。它只負責授課,並不負責工程師的培養。

那麼,新手如何在學習編程語言的同時,也擁有一些實戰經驗,或是看到項目開發實踐題時有底氣呢?

 

若是你C/C++感興趣,想學編程,小編推薦一個C/C++技術交流羣【點擊進入】!

涉及到了:編程入門、遊戲編程、網絡編程、Windows編程、Linux編程、Qt界面開發、黑客等等......

相關文章
相關標籤/搜索