什么是前端工程师?

定义

「Web 前端开发」「前端工程师」「前端开发工程师」(以下统称为「前端工程师」),这几个词描述的都是一种职业,并且可以看到它们中都带有「前端」这个字眼。在软件开发中,「前端」是指一个软件产品中用户能够看到的部分。这里的「前端」指的是 B/S 结构软件中通过浏览器呈现给客户的部分——网页。「前端工程师」就是利用 HTML、CSS、JavaScript(以下简称为「JS」)等技术(以下将这三种技术合称为「DHTML」)开发网页,向用户提供内容展示及交互的职业。这是近几年随着 web 技术的发展而产生的新职业。

本文主要为我对这个职业的一些见解以及对一些现象的看法。关于这个职业的一些介绍及分析,请看淘宝拔赤所撰写的《十日谈》。

职责

前端工程师最基本的职责就是做出可用的网页,要做到这一点只需懂 HTML 及 CSS 就可以了。如果还要有些交互,则需要懂 JS 了。很多初级前端工程师并不真正了解 JS,而只是会使用一个叫做「jQuery」的 JS 库,他们甚至连 HTML 和 CSS 的精髓都不甚了解。

资质

很多人以为只要懂 DHTML 就能胜任前端工程师这个职位了,我在刚接触前端开发时也是类似的想法,不过这是错的!在 B/S 软件的开发中,虽然前端部分归根结底用到的主要是 DHTML,但每个公司所用的服务端脚本是不同的:JSP(Java)、PHP、Ruby、Python……如果对服务端脚本不了解的话,在开发时就会遇到一些阻碍:

  • 增加开发负担和成本——如果自己不会服务端语言的话,开发的流程肯定是自己先做出静态页面,然后让后端人员把静态页面套到逻辑里。这个过程中后端人员做了「多余」的事情,浪费宝贵的时间和精力。
  • 无法完全掌控——每当页面内容要有稍微大的调整的时候,都得拽上后端人员来帮忙处理,既不能随心所欲地去做,又给别人造成了困扰。

除了上面所说的,现在各个公司招聘要求中几乎都标明「熟悉 Java/PHP/Python 等服务端语言」,阿里系公司还有要求「精通」的。所以,就算为了自己能够跳槽到更好的公司,也要懂服务端脚本,至少是在求职简历上填写「熟悉」的程度。

在把一个 B/S 软件的功能都实现之后,重点就在提高用户体验上了。这主要是看文字排版、模块布局、操作流畅度等几个方面。如果上文说的各种脚本(编程)语言是属于开发部分,那么这些就是属于设计部分。做网站的话,还要注意 SEO 及网络安全问题。

作为一名优秀的前端工程师,不仅要懂设计通技术,还要具备协调整个开发流程中各个岗位人员的沟通能力:从产品经理那了解需求,不合理的砍掉;设计产品的低精度原型后交给 UI 设计师制作高精度原型,其中要反复交流哪些设计在技术实现上比较困难;真正投入到开发时还要和后端人员制定数据传输的接口。

我在前端技术的 QQ 群里发现有很多人正在学习,并且也很爱提问,看起来这是应该赞扬的事情,但我很不喜欢。因为大部分问题都是没有回答价值的,要么是看下教程、查下 API 就知道的,要么就是稍微动下脑筋就能解决的。我讨厌企图不劳而获的人!如果是在百思不得其解的情况下来提出问题,我很愿意将自己所知道的全部告诉他们。

做这行,要想做得长久需要有兴趣和毅力来支撑,要想做到优秀则需要有很强的自学能力及不懈的努力!