《重学前端》之学习和架构(1-3讲笔记)
前端学习
现在前端工程师已经成为研发体系中的重要岗位之一。可是,与此相对的是,极少或者几乎没有大学的计算机专业愿意开设前端课程,更没有系统性的教学方案出现。大部分前端工程师的知识,其实都是来自于实践和工作中零散的学习。这样的现状就引发了一系列的问题。
首先是前端的基础知识,常常有一些工作多年的工程师,在看到一些比较基础的 JavaScript 语法的时候,还会惊呼“居然可以这样”。是的,基础知识的欠缺会让你束手束脚,更限制你解决问题的思路。
其次,技术上存在短板,就会导致前端开发者的上升通道不甚顺畅。特别是一些小公司的程序员,只能靠自己摸索,这样就很容易陷入重复性劳动的陷阱,最终耽误自己的职业发展。
除此之外,前端工程师也会面临技术发展问题带来的挑战。前端社区高度活跃,前端标准也在快速更新,这样蓬勃发展对技术来说无疑是好事,但是副作用也显而易见,它使得前端工程师的学习压力变得很大。
我们就拿 JavaScript 标准来说,ES6 中引入的新特性超过了过去十年的总和,新特性带来的实践就更多了,仅仅是一个 Proxy 特性的引入,就支持了 VueJS 从 2.0 到 3.0 的内核原理完全升级。
缺少系统教育 + 技术快速革新,在这样的大环境下,前端工程师保持自学能力就显得尤其重要了。那么,前端究竟应该怎么学呢?winter老师分享了以下他的经验。
学习方法
第一个方法:建立知识架构
第一个方法是建立自己的知识架构,并且在这个架构上,不断地进行优化。知识架构可以把它理解为知识的“目录”或者索引,它能够帮助我们把零散的知识组织起来,也能够帮助我们发现一些知识上的盲区。
知识的架构最重要的就是逻辑性和完备性。任何知识都不会出现在这个范围之外,这是知识架构的完备性。
例如JavaScript 的知识架构,可以如下:
- 文法
- 词法(各种直接量、关键字、运算符)
- 语法(表达式、语句、函数、对象、模块)
- 语义(语义则跟语法具有一一对应关系,这里暂时不区分)
- 运行时(程序 = 算法 + 数据结构)
- 类型(数据结构:对象、数字、字符串等)
- 执行过程(算法)
学习的过程,实际上就是知