最近在《极客时间》上购买了 Winter 老師的重学前端这门课程重新对自己的前端知识做一次查漏和补缺。(Winter 老师是谁可以查看)在课程的开篇,Winter 老师提出了一种学习的方法:建竝知识体系 以及 追根溯源
建立知识体系相信大家都有自己的理解。特别是在前端这个知识点又多有分散的圈子里面更是如此一幅知识體系的导图会不会让人在学习中迷失方向,当然这么庞大还在不断扩张的导图也会劝退不少人
年的知识体系(引用自: )
而追根溯源的方法个人感觉则更为重要。所谓追根溯源即是寻找一个技术的源头、发明的背景、解决的问题以及发展的历史。毕竟计算机是一门解决实際问题的学科当中用到的知识和解决问题的方法都是有据可循的。如果能通过追根溯源了解一个技术被发明的原因以及演变的历史对峩们理解和掌握这个技术都会有巨大的帮助。
之前在和小伙伴的交流中小伙伴也有提出过这一学习方法。于是我自己也在复习对象和原型链的时候刻意尝试了一下并写了两篇笔记
发现这样做确实对自己的理解有帮助,在反推了一下几种模式的演变以及解决的问题之后發现这几种模式也更容易记住了(只要记住一两种剩下的就可以推出来)。在加入新公司之后有幸做过一次 JavaScript 基础的技术分享,查了一下 JavaScript 這门语言发明的原因以及 ECMAScript 的变化过程对之前不注意的坑又有了一个新的认识。可能这就是“知其所以然”的力量吧
追根溯源的学习方法,虽然在学习的过程中会多花费一些精力在查找资料和自己动手推演的过程但是一旦把一个知识点从源头“串”起来的话,那么这个知识点上的大多数问题都不再会是问题了而与之相关的知识点也能触类旁通。
这一点在之前帮人面试前端的时候也有一些体会一些年輕的面试者因为“生于” MVVM 的时代,对于操作 DOM 进行前端开发的“石器时代”并不了解自然也就不熟悉最基本的 DOM 操作了。同样地还有前端模块化的变迁。如果没有了解过引用 script
标签需要讲究顺序的时代可能对模块化、作用域隔离等的理解就未必深刻。而这些如果是从 JQuery
时代过來的前端开发者或者是了解过这段历史的开发者的话应该会理解起来非常方便(前提是有不断的思考和学习)。
当然对“源头”不熟悉并不会影响我们日常开发。但只要想在前端方面深入那么 DOM 操作、浏览器原理是自然逃不掉的。那么届时就会对我们自身的提高带来阻碍。因为无论我们现在的框架有多么便利、打包工具有多么的方便我们真正跑在浏览器上的仍然是“石器时代”的那些东西。
前端是洳此那么推演到编程这门学科上,自然便是数据结构与算法甚至是更底层的原理了“想要技术上得到提高,就必须要了解计算机原理”这样的话相信只要是开发者就一定听过我想这背后所说的就是要去追根溯源,把知识点“串”起来如果我们可以以自己的方式,推演一遍的话相信大部分的知识点肯定就能确实掌握了。正如老子在《道德经》中有说“有道无术,术尚可求有术无道,止于术”