在这最近几年里,前端工程师是炒得比较火的一个内容。不知不觉已经火了有这么久,很多的人却只知道前端是做页面的,能够使网页更加精美,更加好看。但是,这其实并没有触及到前端工程师的本质。那么,前端工程师深层次来说,究竟是在干什么?前端工程师都能干什么?
我们想要理解这个问题的话,可以从工作层次上将前端工程师分成以下几个层次:
作为最为基础的一层,前端入门也是最为重要的部分。这一部分是所有前端工程师都必须经历的阶段,另一方面,也可以说:只有能够胜任这一部分的程序员才能够挑起前端工程师这一名头吧。如果这都做不到,那么肯定不是一名前端工程师。这一层的工程师们能够做什么呢?答:做页面。是的,就这么简单,这一部分的工程师就是做页面,也就是外行人所认为我们做的工作。这一层,要求我们把设计师设计出的各种设计图转化成html+css+js+image的静态网页,并把它们交给后端开发人员制作成页面模板。这就是入门级的前端工程师所做的事情。当然,这一切都是入门级的。
所谓成年级,如字面意思,其实就是新生级的加强版。工程师们经过各种各样的锻炼,更加能够掌握前端网页的制作。这个时候做的页面可能就需要考虑更多的事情了,说是做页面,不过情况肯定要稍微复杂一些,需要开始注意一些更复杂的问题,首当其冲的就是浏览器兼容性问题。老实说浏览器兼容性问题真的不是那么好搞定的,毕竟每个项目对浏览器版本的要求都不一样,而且现在不光有PC浏览器还有各种移动设备上的浏览器,同时国内厂家的浏览器种类也越来越多,坑也是密密麻麻。除了兼容性,你可能还要关注一下性能问题,包括但不限于网络性能、渲染性能、js逻辑的性能等等。这个阶段,要求工程师能够独立解决这些问题。
成年级之后的工程师的能力通过锻炼已经能够很好的工作了,写起网页来得心应手。这之后工程师会逐渐开始带一些小团队。当你了解了html、js、css以及各种浏览器的各种特性细节之后,你很有可能会被任命带领一个小的开发团队,当然是前端开发团队。可能加你一共也就三四个人,甚至更少。这时候你的工作内容除了自己写一点页面以外,还会帮助组员解决各种各样的细节问题,毕竟,组里,你是最懂技术细节的。这个时候,一部分人开始停步不前,而另一部分人开始关注另一个新的问题:工程化。前端代码都是非常松散的,项目结构性差,一旦开发人员数量多起来,业务复杂起来,如何管理这么多人、这么多代码是个非常大的问题。能否在这个问题上得到突破,决定了你能否迈向下一个级别。
在第三级之后的你已经熟悉前端开发的各种技术细节了,这个时候能够对各种前端框架、技术的特性了然于胸,你知道如何组织和管理项目让大家能以最快的速度达到项目要求,你甚至了解手下每个人的所长所短。于是当新项目到来,你迅速根据自身过往的经验选取若干种技术和工具,配上你认为最合适的人选组成项目团队,披荆斩棘日夜兼程将产品汪的各种奇葩需求斩于马下。这个时候的你已经成长为一个卓越出色的前端工程师了,带团队,开发项目,大多数工作能够轻松胜任,作为一个前端工作者可以说是到达了顶点。那么这个时候你还能够怎样提升呢? NodeJS打开了通往新世界的大门。
穿过NodeJS打开的大门,你进入了全新的世界——后端。全新的世界,无限的可能。在新世界里 上天入地,无所不能,想干啥干啥。关于这一层,我没有什么可以介绍的。
陈童的博客(http://www.everyinch.net/)专注于用户体验研究的IT类网站。发表用户体验研究与度量方面的知识,分享前端与三维网站技术,总结人机交互、集体智慧算法的研究心得,推荐国外相关资源。