今天在面试的时候,面试官首先就问了一个问题,你对前端的职责和价值是怎么理解的?猛地发现,自己好像对 “前端” 价值并没有什么理解,甚至在此之前并没有认真思索过。面试结束后,这句话还不断萦绕在我耳边。这不仅是一个简单的面试问题,也是作为前端程序员所需要认真的东西。
一个完整的项目开发构成人员,都大同小异,离不开产品、UI、前端、后台与测试。
作为前端工程师,最核心的价值或者说是责任,就是将大伙的所有心血和努力最终要完美地呈现给用户。在一个技术开发团队中,前端离用户无疑很近的 。不管技术实现的风潮如何变化,一个给用户的交互界面需要有人来实现,这是不变的硬需求。
很多人认为前端程序员就是照着设计稿搭页面,只需要使用些简单的布局知识,就可以完成。在这种想法下,前端工作完全可以由一个后台,又或者门外汉也可以完成,实则不然。现阶段的 Web 产品交互越来越复杂,用户使用体验和网站前端性能优化,这些都需要专业的前端工程师来解决。另外在项目中还要弥补设计师在交互设计上的不足,配合后台为展示数据提供数据接口,前端工程师在开发过程中起着承上启下的作用。
最核心的价值在于:
- 为优化用户体验提供技术支持(交互部分)
- 为跨平台或者浏览器兼容性提供支持(平台)
- 为提高浏览器访问速度提供支持(浏览器性能)
- 为展示数据提供支持(数据接口)
认知的积累随年龄的增长,会获得更大的收益,思维停留在已有层面的程序员注定被取代。
不管是前端工程师或是其他职位的个人价值,都在于能够解决其他工程师解决不了的问题。如果你能解决别人都解决不了的问题,或者可以优化其他人高成本的解决方案,那么你的工作就有了价值。前端程序员的发展有很多:是向前走,是向后走,又或者是一直做前端,深入下去。
- 向前走:即克军所说的往用户体验与交互设计甚至产品设计师上走,这是最能体现前端价值的了,即用户体验,大多人会往这方面走;
- 向后走:就是往数据库和后台开发方面走,不再区分前后端,走向全栈工程师的路,价值就体现在对于业务功能的实现上;
- 最后还有的是:一直深入做前端开发,比如前端各类库与框架的架构设计,W3C各种标准深入研究,对于JavaScript 语言本身的研究,对浏览器的原理分析,对于网络传输协议的原理分析等等,这条路要深入下去很不容易,因为涉及很多原理与根本性的东西,所以走的人也不是很多。