不知从什么时候开始,突然感觉到前端这个圈子开始有点浮躁,具体表现为:没入行开发的的都想着从前端入行;入行了的随便学了点HTML
、CSS
,做点简单的交互就认为自己是前端工程师了;再来点nodejs
就直接全栈了;引入个TensorFlow.js又进军机器学习行列了;还有LOT
、electron
什么的,前端这个圈子,确实比较浮躁了。
先说说入门,不知什么时候开始,越来越多人开始学习前端,而原因很大一部分都是说觉得前端比较容易,前端比较好上手。笔者最近面试了很多新人都是抱着这种态度去学习前端,然后学了点HTML
和CSS
就出来找工作,然后面试的时候问了一个JS有哪些数据类型,基本都答不上来。
稍微多学一点的,会跟着教程做一点交互,然后十个有九个都是轮播图(另外一个是没做出来),还都是通过ul
,和li
,在配上CSS3
的特性,嗯,还有无缝滚动,把第一张图片复制一个副本。很完美的一个轮播图,但是每次当面试的人说到轮播图的时候笔者就会开始有点不耐烦,并不是因为回答轮播图的思路不够好或者能力够不够的问题,而是千篇一律的学院教派让笔者有点反感。
软件行业本身应该是充满了创造性的世界,结果发展到现在所有人的学习之路都是一个模子刻出来的,面试他人的时候,我最喜欢问的一个问题是:有没有做过让你印象最深刻的功能或者交互
,然后得到的答案还是千篇一律的轮播图
。诚然,轮播图确实是知识面比较完整的小功能,基本上能够独立完成轮播图的话说明基础确实还是达标了。但是然后呢?前端开发就是跟着教程打一遍轮播图吗?有没有去思考一下自己做一个什么呢?除了轮播图,有没有想过做一个其他交互比如说简单的计算器,个人觉得这样会加分不少,因为至少是自己思考过的,至少自己想过学会了之后自己想做点什么。
在来说说全栈,近几年JS全栈的概念越炒越热,所以很多人搭了个express
或者koa
的服务就自认全栈了。其实笔者本人也是比较推崇全栈工程师之一,但是笔者认为的全栈,不只是能用node.js写个服务端那么简单,而是一种迎问题而上的思想和决心,以及多维度的思考,而不是即使在写后台还是采用前端的思想来组织代码。学会了node.js之后也根本不会用来写点什么,充其量也就是一个express
版的Hello world
,至于数据库,服务器等根本一概不通。鼓吹这全栈的同时,连async、await都不知道什么原理。捣鼓了一段时间之后要么说全栈没意义,要么在那跟人讨论全栈没市场,不需要深入了解,或者个人精力有限,不应该花费没意义的精力。
总结来说,大部分浮躁的前端可以用一下几个阶段来归类:
- 我会
HTML
了,我会前端了 - 我会
轮播图
了,我可以找工作了 - 我会
node.js
了,我是全栈了 - 全栈没意义,浪费时间,有这精力不如玩玩游戏呢
- 前端轮子太多了,根本学不过来,前端还能干多久?