Tips:极光学苑,中国高端IT培训领导者品牌,带你飞向梦想的地方!搜索公众号“极光训练营”了解详情~
原因其实很简单,就是因为FE这个职位,就是一个充满矛盾的职位,这个职位的存在就是一个大BUG啊!
1入门极其容易,精通极其困难
一个智商正常的高中毕业生,一个星期,绝对能写出基本的HTML页面,附上CSS,还有简单的JS。让他学C?一个星期可能还学不到指针呢,指针要多久能跨过去还不知道呢。
但是,只要你的资质不差,努力肯学,那么随着你的项目经验丰富和自己的钻研,RD(C、Java,甚至PHP)升级到高级工程师到资深工程师不难。但是前端,看看现在市场上的资深工程师有几个,北极厂里面能到T7、T8的,其他厂类似等级前端工程师有多少就知道了,JS的作为一个从函数式编程过来的语言,很多比较低级的工程师因为理解不了他的思想导致很容易装撞上天花板,然后再也迈不过去了。
2锦上可以添花,雪中不能送碳
现在因为大家对移动端重视,对交互要求高,看了国外的好东西多了,审美也上来了,所以才觉得前端重要,交互重要。
但是客观说,一个网站/APP,没有好的前端,就是交互不好、页面不美观,就当作一个丑人吧。但是没有后端,功能实现不好,性能上不去,那就是缺胳膊少腿的残疾人了。
所以很多用人的CEO、CTO、HR喊缺前端的时候,心里想的是这个锦上缺朵花,但是绝对不会给你炭的地位。
3充满BUG的开发环境
是的,计算机的一个重大的特点就是兼容性的问题。这个任何开发都不否认。
但是能够不兼容到JS、CSS这个级别的,还有几个语言?虽然说连C这样的都有兼容性问题,C89下跑的好好的程序,到了C99下面可能就会有问题,或者说你用的Sun的Java实现写的程序到MS的Java实现下面就有问题,但是那都是很细节,很特定的兼容性问题了啊。
像JS这样,连最重要的事件处理就两大派系,DOM结构两大派系,CSS一堆混乱的情况,真心没见过更乱的啊。就好象说你用的JDK里面的Date对象默认给你处理的是玛雅历法,你是不是想掀桌子骂人?
所以JS的面试、开发中,很大一块被人津津乐道的就是各种兼容性的问题,比如让你自己写一个AJAX实现你怎么处理不同浏览器的兼容性问题啊,冒泡和捕捉怎么处理啊等等。
不过感谢IE6,要不然全中国的2/3的FE都要失业了。
4职能责任不对称
在一个成熟的公司、项目里面,前端只负责显示、交互,和简单的现实逻辑,后端负责业务逻辑、数据存储。
对应的,前端出点问题,比如按钮位置不对了,点击后的事件不对了,傻子都能看出来,但是后端的问题,除非真的是逻辑写错了,而且是很直白的错误,否则很难一眼看出来,我曾经客串过一次RD,写的一个BUG上线稳定运行30后才发现。
但是出问题了,因为所有人,包括QA第一接触的就是前端界面,所以很自然的就把bug扔给前端,前端吭哧吭哧看半天,发现有60%都是后端的问题再扔过去——做过业务的FE同学肯定有过这样的经历吧。
很多同学都抱怨过这些类似的问题,不是自己的问题但是第一个被指责的却是自己。很不爽,或者说,很委屈。
5职业技能树乱点
一般公司里面,FE和RD都是放在技术体系下面,最终汇报对象都是CTO,但是FE在很多地方,技能树是瞎点出来了!
如果你看FE的面试题目,会发现和RD没啥区别,语言的特性、性能的分析、基本算法等等,除了把语言换掉基本没事情区别。
但是实际工作中,一个好的FE,要跟PM、UI/UE/UX、RD、QA打交道,需要你理解产品的思想,懂艺术设计,发现bug的时候还要跟踪到后端确定是谁的bug等等,人家RD的技能数是一颗茁壮成长的苍天大树,FE的技能书就是一个歪歪扭扭枝枝杈杈但是还要你长高长粗的怪树。
最明显的,需求评审会上,RD只关注这个功能我能不能实现,FE还要关注这个按钮能不能这么画,这个设计会不会有浏览器兼容问题,这个交互是不是合理——虽然这是别人的工作但是一旦有问题第一个被骂的都是FE啊。
加上其他的原因,比如这几年FE的技术发展确实太快了,每天都在层出不穷的概念、名词,要分辨哪些是真金白银的技术,那些是大公司的工程师为了升职加薪搞出来概念,然后再学习吸取这些技术,对FE的要求也无形中提供很多了。
所以,一个充满了BUG的职位,怎么可能那么容易招到合适的人才呢?至于前端薪资为什么会这么高的问题,相信你也非常清楚了。
*版权声明:
作者:中华田园熊
来源:知乎
网友评论