🤔为什么需要前端工程师?

15,015 阅读13分钟

之前我在《如何看待技术匠心》 的文章中提到,今后的一段时间中,互联网行业都将会处于一个价值回归的状态。每个在互联网行业中的职业,都比以往更加需要知道 职业和个人的核心竞争力

  • 企业为什么需要前端工程师?
  • 当前国内环境下,前端工程师的核心竞争力是什么?
  • 如何创造更多前端岗位?

这几个问题我思考了很久,其背后所代表的目的是一样的。前端开发者,如何能够在这个洪流涌动的时代中更有竞争力。

当然,本文所提到的观点不一定正确,纯粹个人见解。

从何而来?

搞清楚这个问题之前,不如来看看早些时候,这个职业是从何而来?

其实早些年是没有前端工程师这个职业的,和这个职业最相关的应该是网页设计师,大家大多叫做 “切图仔”。主要工作就是把设计稿的图片转换成 html,将图片变成网页;过程就好像是拿美工刀把图片一片片切割下来,再拼成 html 的网站,所以俗称 “切图”。

大家都知道一个完整的网页主要是由3个部分:html, css, js

那时网页设计师最常用的工具其实是设计软件:Adobe Dreamweaver、Microsoft FrontPage,所见即所得的GUI操作方式来设计网页的布局、样式、内容,这些主要是 html 和 css 部分。

这是那个时候,网页设计师被雇佣所要处理的工作,也是网页设计师的价值体现。

其实在这段时间内,从图片转换到 html 的工作还是处于一个边界模糊的状态,有的公司会划分这部分内容给设计师,因为他们可以随时调整;有的公司会划分这部分内容给 Web工程师(PHP、ASP工程师),因为他们转换的产物会更加精准。

后来,随着浏览器技术的不断变革、多端设备的普及、网络条件的提升,这给Web这一终端提供了巨大的提升空间,同样也带来了更高的专业要求。

一个有经验的Web开发者 和 一个刚入门的Web开发者,所做出来的产品逐渐表现出了巨大的体验差异。

互联网企业们才逐渐关注到 Web 除了传递信息以外,还有兼容性、SEO、网站性能、动画效果、响应式等方面的价值。

于是部分公司专门设立了 “前端工程师” 这一岗位,专门来解决网页开发、动效制作、性能调优、兼容性等诸多事务。

但这一时期,可以感觉到前端的必要性依旧不是很高,对于部分对 Web端要求不是很高,或者拥有资深网页开发经验的后端工程师们(PHP、ASP工程师),大多百度查一查,多花点时间也一样能搞个七七八八。

再后来, Node.js 出现了; Webpack 出现了; 五花八门的DSL (.vue,.tsx,.scss,.less,.ts)出现了; 各种跨端技术出现了;

头部前端开发者们:哇,这MVVM;哇,这模块化;哇,这自动化;哇,这热更新;这要是做一套组件库,能省多少事啊!

生产力前端开发者们:这有个新组件库!哇,看着好炫酷;哇,好现代的交互;怎么用?恩?什么是 React? 什么是 Vue ?

技术管理者们:哇,这东西,这么炫的吗。这要是盘下来,咱们的项目维护成本不是一下子就下来了么,交付的产品不是一下子就专业了么。(下次跟老板汇报又有吹的了)

企业管理者们:咱们的愿景是,国内一流的XXX。“可是你们的产品看着好LOW,某某“小而美”的产品就很现代。” CTO:你去研究一下他们的技术方案。

小公司:老板,咱们追吧?现在投资人看到的产品都老酷炫了,咱们这个根本入不了眼,包装还是要包装一下的。

Web开发者(PHP、ASP工程师):蓦然回首,啥!这都是啥!老板,这活干不了。找个专业点的人进来吧。

image.png

于是就有了:

岗位要求:

  1. 本科或以上学历,计算机或相关专业;
  2. 至少X年以上web前端开发经验;
  3. 精通react框架、HTML5、CSS3、Javascript、等Web前端开发技术。
  4. 熟悉前端常用的构建工具(如:webpack ),熟悉使用 Git 工具;

职业本质

幻觉主宰着大家放大一些关注点,视而不见一些本来该是问题的问题。

在过去的5-10年里,整个互联网行业都涌入了大量的从业者。各个互联网巨头以垄断式的方式抢夺人才,许多应届生莫名其妙的就倒挂了一些老员工。问为什么?没有为什么,其他公司就开了这个薪资。

或许在过去的很长一段时间内,涌入这个行业的从业者们可能都没有想过,或者也是没有功夫去想。这个职业,在解决公司什么环节的问题,在解决社会哪部分的问题。

在这个增速放缓,价值回归的时期里,或许大家可以静心思考下上述问题,本文抛砖引玉,欢迎更多有见地的开发者们评论回复。

首先我的观点是:前端工程师是一个翻译性质的结构洞岗位(各领域连接节点)

从前端职业的发展历程我们可以了解到,前端从一开始就在做把不同领域的事情整理、转换、展示的事情。

从某种意义上讲,前端工程师更像是一个 翻译师,将人类所能理解的内容,利用编程语言翻译给各个终端(APP、浏览器、小程序),再把这些信息序列化后存储、发布到服务器,通过网络传递给任何需要这部分信息的终端中重新展示,然后被另外一群人理解。

如果纯粹从信息传递的角度来看,人类的目前所有用于传递信息的方式都是低效的。

语言、文字、图片、表情,创造这些工具的目的都是为了让人们在沟通时,能够理解相互之间所要表达的内容、感受、情绪。所以,如果未来脑机接口真正普及,世界或许会消失很多东西,语言、文字、画面、前端或许都没有意义,因为信息传达不再需要翻译。

但目前来说,人们需要信息传递,互联网是当下最高效的传递方式,信息通过互联网传递需要终端显示,终端显示需要信息转换,信息转换需要前端工程师,所以企业、社会需要前端工程师(或者任何能完成这项工作的职业)。

所以我认为,衡量前端的标准,就是衡量翻译的标准:

  • 翻译的快不快(效率)
  • 翻译的准不准(转化率)
  • 翻译的符不符合语境(调性)

当下,许多前端工程师会把自己的定位理解成 “程序员” 的一个分支,认为自己的工作就是个写代码的,和后端相比只是写的语言不同。

所以除了代码以外的事情一律不管,什么界面好不好看、什么文字是不是符合语境、什么交互是不是合理,那些应该是产品和设计考虑的事情,我只需要把设计稿变成网页,把接口调通就可以。许多中层管理者也会把前端和那些服务端开发者们拉在一起横向比较,所衡量的指标也是:业务表现、稳定性、点击率 等等,这些有没有都无关痛痒的指标。

这些现象之所以会在近几年表现的如此明显,是因为这个行业涌入了许多迷茫从业者,许多认为这是一条赚钱的好路子的从业者。

在培养了4、5年算法、数学,刷LeeCode后进入社会的科班生,他们主导这个职业的漏斗,当然是程序员那套路子,面试题逐渐变成了算法、协议、隐秘的框架特性这些八股文🤒。现在我几乎很少看到有企业会出 html/css 的题目,但前端的职业定位并不是一个单纯的程序员,如果单从程序员的竞争力来看,前端是不可能超过一个后端开发者的,这也不是企业雇佣前端的核心价值。

前端这项职业,既然是站在结构洞上,最大的竞争力就应该是充分发挥结构洞所代表的特性和价值,充分融合、连接各种领域的优点,然后转换体现在产品上面。

这对前端的要求就不仅是在编码层面的能力了,一个符合互联网综合性要求的前端岗位应该拥有以下几方面能力:

  • 有审美,了解用户体验法则,懂得现代Design System (!important)
  • 了解当代主流设备的 Web应用差异及渲染方案,能够 实现各端界面开发
  • 了解 网络协议,浏览器特性等终端传输转换原理
  • 了解 现代前端工程化工具,帮助企业能够更规范、更稳定、更高效的产出
  • 了解互联网 主流产品运行规则,这里包含SEO、语义化、META等
  • 了解当代 后端应用部署方案攻防手段,包含CDN、Docker、SSR 等等等等
  • 会做人,会换位思考,有责任心,能够照顾市场、企业、项目质量等各方利益
  • 会表达,能够简短、清晰、完整的表达内容,毕竟招你就是来做表达的

很多读者看到这不仅拍桌子了。好家伙,公司所有活你一个人干了得了,CEO你来当!这哪是前端啊!

但回顾下整个前端的发展史,这是一个发展了才没几年的职业。在当下,这一个职业做的事情本来就不是什么需要多么资深研究才能做到的事情,这是一个需要广度、需要审美、需要持续的热情、需要应对变化、需要对着丑陋拍桌子说不的职业。 一个企业或许需要创造框架的技术性人才,但不是每个团队都需要。

前端这些年之所以发展的这么火热,正是因为站在 互联网热潮结构洞 上。许多已经发展到近乎死水的技术领域,因为有前端的跨界融合发生了改变,前端工程师们既可以写界面、又可以写脚本、还可以写接口、老板夸两句还能造个APP出来 😂。这对于老板来说简直是冬日里的小棉袄,互联网界的瑞士军刀啊!

image.png

这是前端近年火热的关键,因为前端在结构洞上,他们可以了解各个领域的事情,他们懂审美懂设计,他们可以高效的摆平许多事情。

反过来站在企业的角度上看,需要招一个前端团队,来解决的 最基本诉求是界面开发,能够将公司运转的逻辑、数据、情绪表达出来。

如果发现招来的前端,界面做的奇丑无比;从他身上找不到一点时尚、朝气;面对各端设备只会说 "这个做不到";这样的前端对于企业来说,或许真的没有太大的必要,这种程度的网页开发,或许找一个后端🤓 逼他一把 把他变成全栈,应该也可以 Cover 了💅

做点改变?

如果你不认同上述观点也是正常,毕竟我的资历尚浅,算是阶段性总结,抛砖引玉,可以在评论区留下你的见解,尊重深度思考。

如果你也认同上述观点,觉得上述思考对你有帮助,或许我们需要总结一些告诫出来。


如果你是初期前端开发者,我建议你慎重的思考一个问题,进入这个行业是不是你心之所向?你是否能在接下来很长一段时间内保持学习的热情?

如果不是我建议你慎重考虑进入这个行业,这个行业已经不是那么容易捞钱了,并且在接下来一段时间内会变的更难,如果你没有足够的热情,或许真的会搭一个黄金年华进去,等到30好几再寻求出路。


如果你是中、高级前端开发者,我建议你能够在繁忙的工作中,抽出时间多做总结和思考。

不光关于技术,而是像这样的职业思考、行业思考、人生思考,想想清楚自己的核心竞争力和职业规划,尝试写下来。

你必须要想想接下来一段时间里,或许不再是顺风顺水,如果有一天自己没了工作,还能用什么换得酬劳?

如果有,就有意识的培养那项技能,让它默默生长;如果没有,抓紧时间寻找到它。

因为那些东西才是你光环褪下的核心价值。


如果你是技术管理者,想清楚团队在公司大图的位置,企业希望这支团队处理哪些工作,再决定团队的发力方向。

团队的价值及影响力,需要整个团队抱元守一的长期打磨,不是一两个 几个月就能做完的明星项目。

团队多招几个人,今年多晋升几个能如何,失去团队的核心竞争力一样会被干掉。圈地圈资源,圈的越多砍的越多。

技术团队需要体现出职业的专业度,团队的特殊性和积极的参与度。一如既往的高品质、高效率、高凝聚就是团队的护城河,长期打磨的产品才是闪闪发光的团队名片。

企业之所以一年比一年更苛刻的跟技术要业务数据,就是觉得 年年汇报375,产品反馈不相符,季季喊着缺人手,内耗比武心伤透。

价值回归的时代,企业会逐步着手识别那些白兔团队。

放下争名逐利,着手做点正确的事。


如果你是企业经营者,建议你重新想想需要什么样的技术团队,给管理者明确的价值导向是非常重要的环节,开发者之间分工不同,定位不同,导向不同。

作为企业都会有成熟的管理工具和衡量标准,但成熟的管理工具就有成熟的应对策略,清晰识别那些企业所真正需要的东西对于企业的长期发展来说是非常有必要的。

如果你真的认为开发者可以像销售、运营团队使用业务数据指标来衡量,那开发者们就会变得像销售、运营团队那样,整天盯着数据,满口的业务指标,听上去好像是上下齐心的客户第一。

但又想想,当初高薪招他们来是干什么的呢?🤔