前景
需求量非常大,随着人机界面越来越多,比如手机,车载设备,各种物联设备等,都需要大量的开发人员来维护,而且前端的美观直接影响了用户体验,因此靠谱的前端工程师是公司宝贵的财产。
岗位需求量大概是 Java 的 1 / 3 左右
在 TIOBE 中排名第七
C# 和 VB 国内基本不用,python 为辅助性语言,因此可以认为排名为第四
工资收入也是比较高
职责
看起来萌萌的前端
Web 前端开发工程师负责展示层的编写,为网站上提供的产品 Web 界面,优化代码,提高响应速度,并保持良好兼容性(IE, Chrome, FireFox 等),负责 Web 前端表现层及与前后端交互的架构设计和开发,配合后台开发人员实现产品界面和功能。
随着 Web 前端的发展,也出现了,MVVM 架构,为了让 Model 这个步骤更加解耦: 前端 Model 和后端 Model 解耦,也就是说前端工程师设计页面,并设计他们眼中的 View Model,也就是 MVVM 中的 VM。后端工程师设计后端的的 Model,与前端 VM 做映射。这样双方的工作就完全独立。所以前端不仅仅需要懂得设计类代码和 js,而且需要懂得一定的服务器端代码,比如 PHP,java 和 c#。而后端工程师的技术背景更多在于算法,中间件架构,数据库,网络通信,操作系统。
发展方向
1 前端架构师 /Leader
但你跳出增删改查的范畴后,就进入的前端架构的范畴,一般只会出现在超大型公司。以 taobao 为例,一个页面上会嵌套无数个服务,有商品展示,用户信息,营销活动 ….. 那么是不是需要把这些服务逻辑隔离,业务隔离后展现还是一样的呀,因此需要开发出公共组件,而不是用 jQurey 从头开始一个个组件的写。另外响应速度需要保证呀,因此如何优化网络请求,如何减少请求次数,以及部署方式,这都是前端架构师的考虑范畴。具体工作包含下列这些:
项目部署:前端项目部署应该由前端架构师来决定,这里涉及到网络性能优化和开发规范对接的问题,所以前端架构师要理解工程部署的过程,并把开发和部署打通,否则开发受限于部署,架构设计会遇到阻碍。
组件化与组件生态:由于前端面向的是界面设计,所以在模块化之上还有组件化开发模型需要架构师提供。此外,项目中一些可复用的模块或组件应该有一定的复用渠道,这部分我称之为生态。架构师应该提供这样的渠道来解决多个团队或项目之间的代码复用问题。
前端安全:这部分也应该有架构师负责的部分。主要是在开发、统计的过程中对前端安全做保障,比如 xss 修复、页面脚本注入监控等.
系统测试:很多人总是尝试用 API 测试方法论中的单元测试来测试前端项目,其实是片面的。前端测试属于 GUI 测试范畴,前端项目中使用的框架、类库一般由外部提供,已经由 API 测试做了质量保证,而项目中的测试应该主要集中在 GUI 测试上,这部分目前没有好的解决方案做支撑,所以也没有什么好的衡量办法。
2 产品经理
由于前端童鞋对美感稍号(貌似平常打扮的也潮些),这是他们转产品经理的优势。大产品经理毕竟不多,更多的产品经理在抠一个个按钮,一个个流程。前端童鞋对于界面的熟悉能转化成优势,而且因为前端很多都是非科班出身,再深入下去一旦设计到操作系统,网络层面就难了,因此有很多前端转为产品经理的。
优势
入门简单,高级稀缺。入门比较简单,会 html,css 就能做前端,见过很多设计师兼职前端工作的。但越深入越难,初级多如狗,高级很难找,为了快速开发你得会 Vue,React 吧,为了构建项目你要会 Gulp,Nodejs 吧,此外还有 Hybrid 开发模式: 用前端来呈现 Android 和 IOS 相同的页面,所以前端正变得的越来越复杂。此外对前端速度会有要求,你必须熟悉网络协议,性能优化等等。而且科班出身从事前端工作的并不多,因此高级前端码农的稀缺。
劣势
潜力不入后端码农。主要是涉及业务不多,没有业务就无法深入核心价值。而且项目经理也是经常从后端码农中出,因为后端业务多,复杂度略高。因此很多后端码农能转项目经理,能转架构师,甚至能做 CTO,但前端开发能做到前端 leader 可能就到头了。