
我进入互联网开发技术已经近4年了,在这4年的开发和实际中,有很多感想。正如大家学习的一样,除了吃饭和睡觉,其他时间基本都在学习或者在学习的路上。市面上能看见的书籍,网课,只要存在的,无一例外我都会去买回来研究。书籍堆的家里装不下,一批卖了又买一批。网盘里存的网课以几千G的容量来计算。有时堆的一个网盘装不下,申请小号来存。兜兜转转几年就过去了,旧的知识学不透,新技术又出来了。
在面对日常事务遇到问题时,感觉自己什么都会,又觉得自己什么也不知道。有时会感觉还不如自己刚毕业那会。为什么会成这样子,真的是因为自己随着年龄的增长越来越笨了?显然不是因为智商的问题,那到底是哪里出了问题?难道是自己不适合做开发?

当人面对人生抉择时,选择不同结果显然不同,就向现在的我一样,一直带着怀疑自己的态度,负重前行,真的是自己不适合吗?其实人生没有什么适合不适合,只要认定了谁都可以做的,前提是自己愿不愿意付出达到预期结果的过程,那到底是哪里出了问题?
偶然的机会报了winter的线上前端训练营,在winter讲需要构建自己的知识体系时。我才恍然大悟,原来这几年的学习中,我忘了最本质的东西,就是我为什么要学,学完以后到底是什么?根本就没有一个整体的架构体系去支撑。抱着既存在就合理的态度学习,显然都只是知识碎片,根本拼凑不成一个完整的生命知识体。学的越多,脑袋垃圾越多,越学越乱,久而久之就会觉得自己什么都会又什么不会。
那怎么才能构建出自己的学习框架,建立自己的知识体系呢?从学习我们前端为例,我们真的要花大量时间去学习枝叶上的那些框架和使用工具吗?还是去学怎么才能构建出自己的工具去解决各种问题?显然我们应该研究的是后者。知其然,就应该知其所以然,于是我开始按照winter的思路来构建自己是学习知识体系。
从构建前端的技术出发,分别是HTML、css、JavaScript及API四部分入手开始分析来构建自己的知识体系脉路。
HTML我们应该从哪里入手呢?我们应该从本身的组成部分开始构建,分别是计算机语言、SGML、XML三个部分入手。
计算机语言一般以语法和词法从这两个脉络开始构建。HTML的SGML基本是DTD和Entity来构建。XML就以Namespace和tag开始。这样子的话就构成了整个HTML的知识脉络框架。如下图所示:

构建javascript的知识体系时可以从Grammar、Semantics、Runtime三部分开始,Grammar又可以分为Lex和Syntax两部分。
其中Lex中有WhiteSpace、LineTerminator、Comment、Token四部分内容。Token中有Identifier、Keywords、Punctuator、NumericLiteral、StringLiteral、RegularExpressionLiteral、Template七个部分知识点。
Syntax中又有Atom、Expression、Structure、Script&Module四个部分的知识脉络。运行时Runtime中会有Type和执行过程两个部分的知识点,其中Type有Number、String、Boolean、Null、Undefined、Object、Symbol、内部类型Reference、Completion Record等。执行过程有Job、Script/Module、Promise、Function、Statement、Expression、Literal、Identifier几部分的内容。从而从这些知识脉络形成整个JavaScript的知识结构,如下图所示:

这样你就形成了JavaScript的整体知识体系,从而知道JavaScript语言的全貌学习重点。
针对css的知识体系框架可以从语法/词法、@规则、普通规则、机制四个部分开始入手搭建。其中普通规则又可以分为选择器、Property、Value。选择器又有简单选择器、复合选择器、复杂选择器、选择器列表。简单的选择器有,class、#id、tagname、*、[atrr=v]几种。其中机制有排版、伪元素、动画、优先级。从这些知识点切入就可以形成整个css的知识脉络。每条脉络的学习形成整个的知识结构如下:

第四部分:构建API的知识体系
API的话一般从Browser、Node、Electron、小程序四个维度开始做整个知识体系的脉络。
其中Browser又包括DOM、BOM。DOM又有Nodes、Ranges、Events三部分的内容。从而从这些知识切入进行API部分的脉络进行知识体系的构建。如下所示:

所以我们从上面的4个维度可以开始深入搭建整个前端的知识脉络,形成了整个前端的知识架构,从每个知识点的深入和探究形成了整个前端。这样子我们就可以知道其中的知识脉络,不管市场怎么变,万变不如其中,所以是不是整个思路变得清晰可见,不会在知识的海洋中迷失方向?
假如你觉得我整理的还可以,希望得到你的分享,让更多的人看到,谢谢。