系統性學習與碎片化學習

4-27在小密圈接到第一次付費提問,喜獲8塊。慶祝一下。css

這個話題也是我在小密圈裏和那位同窗的交流時產生的。他說他「學習的知識也不繫統化」,「學習的知識也比較混亂」。「不繫統」暫時沒有好辦法,但比較混亂必定是個問題,可是幾句話說不清楚,因此構思了半天,準備寫一篇文章來回應。html


TL;DR: 中心思想:前端

咱們之前熟悉的,以學校培訓爲主要形式,所謂「系統性學習法」,很難適應新時期互聯網開發的需求。咱們必須掌握碎片化學習法,即在快速創建起基礎知識體系後,利用碎片時間,有目的有針對性的吸收專業知識,將其拼接到知識體系之上。使本身可以快速成長,在須要的時候還能及時切換學習方向。面試


系統性學習

咱們最熟悉的學習方法,是「系統性地學習」。從六、7歲上小學開始,通過初高中,一直到大學,幾乎都是「系統性地學習」。有人替咱們把知識點總結概括整理成教材,按照從淺入深,先易後難的順序編排好;保證其中邏輯關係的按部就班,來龍去脈;而後規定多長時間學多少內容爲合適,多長時間爲一個里程碑要進行一次怎樣的考試。因而只要智商正常不要偷懶,跟着老師循序漸進一二三四五地學,基本最後都能學會。至少,都能經過考試。segmentfault

然而這套流程裏面有一些隱含前提:瀏覽器

  1. 教材和大綱適應生產需求服務器

  2. 考覈考試反應生產需求框架

  3. 市場願意等待學員慢慢學習,學成歸來佈局

在傳統行業傳統理念裏,這樣的模式不無不可。然而面對軟件開發,尤爲是前端開發,這樣作就不合適了。近些年,前端的市場需求大大增長,帶動大量從業人員涌入,也促使你們努力從其餘語言和技術中吸收養分,或者千方百計用現有手段解決眼下的問題。因而,前端技術取得飛速發展,版本號和 API 的升級換代速度之快,連寫書的人都追趕不上,更別提教材了。學習

這種趨勢雖然不會持續過久,但另外一個趨勢隨之而來:你們已經不甘於只作瀏覽器相關開發(本職),而是經過各類轉譯方案,向服務器端移動端開拓新邊疆。其它語言的開發者也是如此。因此,咱們必須認清這個現實:做爲一名開發者,在能夠預見的未來,期望像學校那樣,有教材有教學計劃,有每日做業按期考試,這樣的系統性學習可能在也有不會有了。即便有,市場也等不到你學成歸來,那時候,早有掌握新的學習方法,掌握新的工做技能的人佔據要位。

碎片化學習

咱們必須學會碎片化學習。

碎片化學習毫不是東一腳西一腳,學到什麼是什麼,而是像拼拼圖同樣,經過碎片化學習收集知識技能要點,最終拼出本身的知識框架。

碎片化學習也要講究方法,好比我之前寫的 談學習:讀源碼面試經:GitHub 都有提到碎片化學習的誤區,並較之以正確的方法。那麼,完整的正確的碎片化學習方法是怎樣的呢?

人類認識世界的過程

咱們回想一下人類認識世界的過程,很明顯,那是一個循環往復的過程:

  1. 看到現象:日升日落,斗轉星移

  2. 獲得初級模型:咱們生活在四頭大象馱着的一塊四方形棋盤式的大陸上,大象下面是巨型海龜,在宇宙中遨遊

  3. 模型沒法解釋現象:航船從地平線出現,是先露出桅杆,而後纔是船體

  4. 模型升級:地球是圓的

  5. 模型沒法解釋現象:星軌不是純圓以地球爲圓心

  6. 模型升級:日心說

  7. (如此反覆)

重複這個過程,也能夠幫咱們創建現代開發的知識體系。

碎片化學習的要素

結合個人經驗,它應該分爲五個部分:

  1. 儘快創建起基礎的知識體系

  2. 經過碎片化的學習收集知識,將其填補到知識體系之上

  3. 讓知識體系慢慢成長

  4. 經過真實項目的實際操練,尋找本身知識體系的不足之處,學習補足

  5. 關注本行業內的高人名家,幫助本身肯定方向

接下來逐一解釋。

首先,應該建構起基礎的知識體系

碎片化學習仍然須要完整系統的知識體系。只不過這裏的知識體系是由咱們本身創建起來的,只包含基礎概念,我稱它爲知識體系v2.0;相對於傳統系統性學習建構的、意圖在結束學習後馬上解決全部專業問題的知識體系v1.0,它要簡單得多:只由這個知識體系的不可變的基礎概念構成。

不用擔憂它小,不完整,咱們接下來就是不斷豐富不斷擴展它。

碎片化收集知識,將其填補在知識體系之上

離開校園以後,咱們很難找到大塊的時間集中專門學習,只能把學習環境搬到地鐵上、公交站、電梯間,利用各類碎片化的時間,見縫插針進行學習。這個時候,想啃掉一本幾百頁的大部頭變得很是困難。可是利用這些時間,一次只記住一個屬性或者一個選擇器的用法,就還算簡單。

我經常使用的碎片化學習方法包括:

  1. 在微博上 Twitter 上關注一些技術達人,技術營銷號,及時瞭解技術發展動態

  2. 關注一些經常使用項目的官方博客,必看更新日誌

  3. 時不時去一些技術論壇翻看一下

  4. 遇到不肯定的地方,馬上去翻官方文檔;文檔沒法直接說清楚的地方,本身寫成博客記下來

碎片化學習的知識點必定要拼到知識體系上纔算數,不管是「讀源碼」仍是「上 GitHub 看別人的項目」,都很難把別人知識拼到本身的拼圖上,因此,天然就是不科學不推薦的學習方式。

知識體系也要碎片化

系統性學習的知識體系,好比咱們上學時候學語數外政史地物化生,都很龐大。其中概念的關聯也很緊密。這創建在前人大量投入教育領域規劃總結的基礎之上。咱們開發領域沒有人作這樣的事情,也沒有那麼完整的時間讓咱們去盡善盡美,因此這個時候咱們就必須把知識體系也碎片化,每一個知識體系只包含完整語言的一部份內容,而後讓它慢慢成長。

經過真實項目的操練,查缺補漏

這一點很重要!

只是跟着別人學,很容易產成「學到」的感受,即:「哦,原來是這樣。」不得不說有很多同窗都停留在這個層次,尤爲是的面試的時候,不少同窗都會在本身簡歷裏堆砌關鍵詞,可是稍微往深處一問就卡殼了,這多半是由於沒有實操過,沒有真實的經歷踩坑與爬坑。

實操的方式有兩種,一是在公司的正式項目中使用。這一方面須要本身付出,先摸索個大概;另外一方面也要爭取領導和同事們的支持。不過一旦推動起來,會給本身帶來巨大的提高。固然,在公司裏推動新技術新想法未必須要那麼激進,直接一上就是完整的框架,推翻以前的重作。徹底能夠一點一滴,從小處入手,按部就班。

另一種就是作業餘項目。不過這個項目必定要是完整、目的明確的項目,作出來後有人用,你纔會去改進它,纔會發現繞不開的坑,填上以後纔會得到提高。若是隻是弄個小倉庫,把範例 Hello world 丟進去能跑起來,是徹底不做數的。想不出來作什麼,仿一個別人的項目也是能夠的;作出來至少本身要用,用的不爽改一改,慢慢的,就能感覺到進步了。

關注前輩高人,尋找前進方向

有些同窗只依賴公司業務成長,公司只作某些事情,他就只會作某些事情,一段時間後,以爲學不到東西,就跳槽,而後目標薪資隨便漲個30%就能夠(原帖找不到了)……這樣天然是不科學的。因此頗有必要關注一些前輩高人,以他們爲目標修訂本身的方向。

PS:最近面試了很多人,你們廣泛比較關注阮一峯,這裏提醒你們一下阮先生的文章必定要批判的看,必定。

碎片化學習實例:CSS

這裏咱們拿 CSS 來舉個例子:

a {
  color: red;
}

它的基礎知識體系很是簡單:

  1. 選擇器 + 屬性名 + 屬性值

  2. 能夠 <html> 標籤賦予新的樣式

初期咱們知道它能夠修改元素呈現的樣式,而後知道它由三個基礎元素組成,而後咱們就能夠圍繞選擇器、屬性、屬性可選值來進行碎片化學習。這個時候咱們可能認爲 CSS 只能改改字體樣式、改改邊框、弄弄佈局尺寸,不要緊,這很正常。

一段時間以後,咱們忽然發現有人用純 CSS 作出來很是炫酷的組件和效果,原來 CSS 還能夠這樣用!很好,咱們把它歸入咱們的知識體系。如此,慢慢的,知識體系就從小小的幼芽,茁壯成長,開枝散葉,直到能應付大部分工做。

在工做的時候,咱們要主動把新學到的知識應用到做品中。好比之前佈局只會 float,可是通過學習,咱們瞭解到 flexbox 更適合作橫向佈局,而且幾乎全部瀏覽器都支持,那麼咱們就能夠開始應用它。

工做一段時間,咱們感受 CSS 已經沒什麼可貴倒咱們的了,就能夠看看張鑫旭的博客,瞭解一下這個行業最捨得伏下身體研究的人在琢磨什麼,有哪些能夠借鑑的。


總結

一不當心扯了不少。回顧一下,我認爲至少在開發領域,離開校園加入工做以後,再想系統的學習已經不太可能了,一方面幾乎沒有真正可靠的服務,另外一方面市場也等不及。因此咱們必須掌握碎片化學習的方法:先創建一個基礎的知識體系,而後經過碎片化學習講知識點填補在這個體系之上,讓它生根發芽,開枝散葉,直到覆蓋大部分必須的場景;接着還要想辦法進行實戰演練,保證本身是真的學到了;最後,經過關注行業達人,尋求新的方向。


同步發於個人博客

相關文章
相關標籤/搜索