针对WEB前端新人的前端知识体系
现在谈到WEB前端的技术结构、知识体系,都会搞出一个非常大、枝叶非常多且细的相当宏大的思维导图,
就像这种的这种大而全的图示对新人来讲,太大了,不好掌握,而且容易在其中迷失。我想今天和大家谈一下针对新人的前端知识体系。
1, 要谈这个问题,就得首先定义一下什么叫“新人”?到什么时候就不算新人了?
新人在我这里是定义为零基础进入前端开发行业,工作不足一年的,就算新人了。一年之后,就不算新人了,至少算是有一定工作经验了。
2, 要对知识体系规定二个范围,
一是,时间范围,就是新人在一年时间之内;
二是,在一年之内要掌握哪些东西。
3,在1和2的基础之上,规划出来的一个前端知识体系,才是一个相对可执行,可操作的知识体系。
那么头一年时间内,应该掌握哪些东西才是适合的呢?
这个问题很并不是很好回答,因为每个人的进度不同,有人天天学,有人每天学点,有人每周学点,这种情况下怎么去规定说一年内应该掌握哪些东西。所以必须有一个标准,用来抹平所有个体差异,能够统一的用来衡量同一群体里的所有人,这个标准在我看来,就是“工资”!
因为市场对所有人都是公平的。那么一个合格的一年工作经验的前端开发,应该是多少的工资呢?先明确一点,在咱们这个行业,谈工资不先说城市的,都是耍流氓。北上广和我大沈阳的前端工资差的不止一个地球那么多。就暂时以北京为例吧,合格的一年工作经验的前端开发人员,工资必须一万以上。
到现在为止,这个问题就演变为,前端开发想要月薪过万,需要达到具有什么样的知识结构。
先分几个大的部分说,
一, JavaScript、框架
二, HTML,CSS
三, 开发规范
四, 业务及场景
五, 面试
这几个部分如果完全细分的说,那就是几本书也说不完了,所以咱们就是以工资一万为界来聊一聊。为什么是聊聊呢,因为这几个方面具体到每个人身上也是千差万别,所以只能就大体的方向来讲,而不能下定义。
一, JavaScript
说来大家可能并不信,我个人觉得JS对于初学者来说,其实并不用太过于深究。因为一家公司能够接受你,必须是建立在对你的能力水平有清醒认识的基础上。那么肯定安排给你的工作,就是你目前力所能及的。所以JS的基本语法OK就可以了,具体包括:
1, 变量
2, This
3, Prototype
4, 函数和闭包
5, 异步和ajax
6,vueJs & nodeJs
二, HTML,CSS
这个部分就是注意一下语义化和dom的结构,不要在DOM上过于嵌套。
CSS就是注意一下CSS选择器的深度,还有多平台多浏览器的兼容和适配。
没什么可多说的,都是体力活,做多了就都OK了。
三, 开发规范
这个话题可大可小,往大了说就又得搞一本书出来了,咱们往小了说说。其实很简单,就是按着你的前端同事们的格式去写。刚开始时别把它想的太复杂。
人家怎么命名方式,你就怎么起名;人家怎么写JS方法,你就怎么写JS方法;
最重要的就是协同,例如SVN,Git,这些
四, 业务和场景
业务就是公司具体在做的产品,一定要记住技术是服务于产品的。好的技术未必有好的产品,但好的产品一定有好的技术。技术没有高低之分。必须 能够 做到能用笔把公司的产品的业务逻辑,用顺序图给画出来。并且在业务上要有大局观,不能觉得某一块东西不是自己负责就完全不理。要在心中有一个产品的全景图,要能够对公司的产品甚至是产品线拥有上帝视角。要明白没有业务做为结果产品,单纯的技术其实并没有什么存在的价值。就好比一把铁锹,如果不能用来挖土,那么这把铁锹做的再好又有什么意义呢。
至于场景,可以说的就不多了,无非是PC和移动端,移动端又分为手机和PAD。
PC端就是一些浏览器兼容性,移动端就是各种终端的适配。但要注意,因为设备规格的不同,PC和移动端在同一个业务上的具体实现流程是不一样的。
五, 面试
这个首推面试题,把网上你能查到的面试题都过至少一遍以上,直到许多面试题你看着都面熟,基本做题这个部分就OK了。
然后就是面试时的回答,主要是把你做的项目的业务流程说清楚,然后你是负责其中哪个部分,谁和你对接,数据是如何产生和使用的。等等
刚才提到的那些知识并没有太难太深的东西,都是一些基本的知识和技能,所以也就是月薪一万吧。但现在的前端,月薪一万只是起点而已。我个人看法吧,这五个部分都基本OK,然后一年左右的工作经验,我觉得工资拿不到一万不太可能。
刚才讲的五个部分,其中一,二,三都是相对成熟的,就是那些东西,必须那么写。第四部分业务和场景里,主要就是业务那块。业务流程一般会划分为组件和模块,组件我认为是无逻辑的,就是一些切换和开关、样式,强调通用性;模块是有逻辑的,强调的是对数据的处理,以及根据数据来控制网站的视图。