目前,前端工程师岗位在工作中的重要性越来越明显,可以与之相对的是,能够在大学期间真正的系统性的学习前端知识的同学确实不多,也没有系统性的教学方案出现;大部分的前端工程师的知识都是通过自学或者其它论坛和视频进行的零散学习过程组成的,这样的现状就会导致一些问题:
首先是前端的基础知识,一些前端开发工程师包括我自己,在有时候看见大佬认为很基础的 JavaScript 语法的时候会产生“还能这样”的疑问;这里,基础知识的欠缺就会让我们束手束脚,更加限制了解决问题的思路。
其次,技术上存在的短板就会成为上升通道的阻碍,技术短板只会让你陷入重复性劳动的陷阱,最终耽误自己的职业发展。
除此之外,前端工程师也会面临技术发展问题带来的挑战,前端社区高度活跃,前端技术也在快速更新,这样蓬勃发展的技术无疑来说是一个好事,但是问题也是显而易见的,它使得前端工程师的学习压力变得特别大。
就拿 JavaScript 标准来说, ES6 中引入的新特性是过去十年的总和,新特性带来的实践就更多了,仅仅一个 Proxy 的引入,就让 Vuejs2.0 到 Vuejs3.0 的内核原理得到了完全的升级;在技术不断革新的大背景下,前端工程师保持自我学习的能力就非常重要了。
学习路径与学习方法
在后续的学习过程中,不仅仅要掌握知识点的内容,争取达到以下几个目标:
- 摸索出适合自己的前端学习方法
- 建立起前端知识架构体系
- 理解前端技术背后的核心思想
在开始具体的知识学习之前,说一下两个前端的学习方法
1.建立知识架构
建立自己的知识架构,并在自己的知识架构上不断进行优化。知识架构可以理解成知识的目录或索引,它能够帮助我们把零散的知识组织起来,也能够帮助我们发现一些知识盲区。
当然,知识架构也有优劣之分,最重要的就是逻辑性和完备性。这里就可以通过 JavaScript 标准,根据它完整的文法定义,语法去建立语义的知识架构。以此类推,前端的知识架构都能够总结出一套完备的方案,最终在自己的方案中不断优化,不断延伸。
2.追本溯源
有一些知识,背后的体系特别庞大,例如下面的两个 CSS 属性:
- display
- opacity
虽然都是属性,但是他们背后的知识量完全不同,opacity 是非常单纯的数值,而 display 的每一个值背后都有一个不同的布局体系;要理解清楚 display,就必须关注正常流(Normal Flow)、弹性布局以及 grid 等内容。
还有一些知识,牵涉到概念本身的历史变迁,变得非常复杂且具有争议;这种时候,我们就要做一些考古工作了,关注技术提出的背景,关注原始的论文或者文章,关注作者说的话,这个过程可能就会帮助我们理解一些看上去不太合理的内容。
最后,前端学习的路线及方法都是建立在自己的一个完备的知识体系结构下并且不断优化进步的,那么后续的过程就继续加油。