最近在《極客時間》上購買了 Winter 老師的重學前端這門課程,從新對本身的前端知識作一次查漏和補缺。(Winter 老師是誰?能夠查看這裏)在課程的開篇,Winter 老師提出了一種學習的方法:創建知識體系 以及 追根溯源。前端
創建知識體系相信你們都有本身的理解。特別是在前端這個知識點又多有分散的圈子裏面更是如此。一幅知識體系的導圖會不會讓人在學習中迷失方向,固然這麼龐大還在不斷擴張的導圖也會勸退很多人。git
2015-2016 年的知識體系(引用自:WEB前端知識體系腦圖 ) github
而追根溯源的方法我的感受則更爲重要。所謂追根溯源,便是尋找一個技術的源頭、發明的背景、解決的問題以及發展的歷史。畢竟計算機是一門解決實際問題的學科,當中用到的知識和解決問題的方法都是有據可循的。若是能經過追根溯源瞭解一個技術被髮明的緣由以及演變的歷史,對咱們理解和掌握這個技術都會有巨大的幫助。面試
以前在和小夥伴的交流中,小夥伴也有提出過這一學習方法。因而我本身也在複習對象和原型鏈的時候刻意嘗試了一下並寫了兩篇筆記。算法
發現這樣作確實對本身的理解有幫助,在反推了一下幾種模式的演變以及解決的問題以後,發現這幾種模式也更容易記住了(只要記住一兩種剩下的就能夠推出來)。在加入新公司以後,有幸作過一次 JavaScript 基礎的技術分享,查了一下 JavaScript 這門語言發明的緣由以及 ECMAScript 的變化過程,對以前不注意的坑又有了一個新的認識。可能這就是「知其因此然」的力量吧。編程
追根溯源的學習方法,雖然在學習的過程當中會多花費一些精力在查找資料和本身動手推演的過程,可是一旦把一個知識點從源頭「串」起來的話,那麼這個知識點上的大多數問題都再也不會是問題了,而與之相關的知識點也能舉一反三。瀏覽器
這一點在以前幫人面試前端的時候也有一些體會。一些年輕的面試者由於「生於」 MVVM 的時代,對於操做 DOM 進行前端開發的「石器時代」並不瞭解。天然也就不熟悉最基本的 DOM 操做了。一樣地,還有前端模塊化的變遷。若是沒有了解過引用 script
標籤須要講究順序的時代,可能對模塊化、做用域隔離等的理解就未必深入。而這些若是是從 JQuery 時代過來的前端開發者或者是瞭解過這段歷史的開發者的話,應該會理解起來很是方便(前提是有不斷的思考和學習)。數據結構
固然,對「源頭」不熟悉並不會影響咱們平常開發。但只要想在前端方面深刻,那麼 DOM 操做、瀏覽器原理是天然逃不掉的。那麼屆時,就會對咱們自身的提升帶來阻礙。由於不管咱們如今的框架有多麼便利、打包工具備多麼的方便,咱們真正跑在瀏覽器上的仍然是「石器時代」的那些東西。框架
前端是如此,那麼推演到編程這門學科上,天然即是數據結構與算法甚至是更底層的原理了。「想要技術上獲得提升,就必需要了解計算機原理」這樣的話相信只要是開發者就必定聽過,我想這背後所說的就是要去追根溯源,把知識點「串」起來。若是咱們能夠以本身的方式,推演一遍的話,相信大部分的知識點確定就能確實掌握了。正如老子在《道德經》中有說,「有道無術,術尚可求。有術無道,止於術。」模塊化