Press "Enter" to skip to content

前端开发者的专业任务涵盖什么内容?

工程就是由专业分工不同的工程师协作完成的,每个专业都有自己的专业技能要求,和专职任务。那,我们平时常说的前端开发者,他的专业技能是什么呢?又负责怎么样的专业任务呢?这个问题非常重要,它对求职者准确定位自己的学习目标,和面试官准确锁定合格候选人都有重大意义。

源起

写作前文《不参加工作获得“三年经验”的一些策略》的契机,是我花了很长时间为前端开发打下基础,结果却被一个“缺乏项目经验”拒于门外后,反思如何获得所谓经验,并且开始发现那两本书很有参考价值,故作一分析和推荐。不过,那两本书虽然很薄,消化读通并不容易(后续会写文章介绍)。而,更关键的问题,那两本书的内容在丰富我们的开发经验上起到怎样的作用,这还要进行一步的分析和归纳。

关于面试官想要的“经验”,我在前一文给出一个初步的定义,还给出一些没法参加工作情况下获得与“三年经验”相当能力提升的策略[em]。然则,前一文其实还没有探讨完毕,例如 面试官想要什么样的经验,什么叫三年经验,经验可以用时间来衡量吗?

其实面试官要求所谓“丰富经验”是指,你作为专业开发者,能完成甚至最好高效高质量的完成自己的专业任务,只是由技术岗的困难而出现种刁难求职者的现象。所以,核心问题还是说,辨清前端开发者的专业任务,和完成它的专业技能。在有了这个前提之下,我们才有评估“丰富经验”的可能性。

EM:为什么只是策略,因为如果是极端的面试官,我们的努力都徒劳的,但是如果是开明的面试官,刚入行的人还是有很多努力的方向。

什么叫有“三年经验”

我们先吐槽一下“三年经验”。经验可以用另一个词来概述,就是能力水平,一个人的能力水平可以用时间衡量吗?我觉得不太行,经验和能力又不是酒,不一定越陈越醇香。项目经验不能用时间准确衡量,甚至不能用做过的项目数量来准确衡量。因为,一个人在一个岗位上忠职三年,经历平淡,那他的经验可能抵不上一个创业者三个月的经验;而,一个人参加了三个性质类同的项目,其实只有一个项目经验。

面试官提出的“三五年经验”可以认为是一种 技术岗难招 的消极应对策略,将资历较浅的人一刀切掉,将搜索范围收窄,节省招聘成本。当然这只是部分极端的做法,大部分企业还是会综合的看求职者的其它条件。

丰富项目经验的实质和水平

“三五年经验”现在看来其实对面试官来说只有那么一丁点的参考价值,真正参数价值来源于「经验的实质」,和实质水平上。

那,什么是经验(能力)的实质?如何衡量这种能力的水平呢?

再具体一点,什么是前端(JS)项目经验的实质,和能力水平呢?

首先是实质

什么是项目经验的实质?如果用一种极端的看法,经验要和实物挂钩,你要做出一个软件成品才能算有经验,那么经验的实质就是 完成这个软件成品的一切相关的任务。例如,需求分析,系统设计,代码实现和项目管理等,看这个图:

从这个前端项目工程“脑图”可看出来,「JS编程」只是前端「程序代码开发」任务的一项,并列还有构建,版本管理,功能测试等任务;而「程序代码开发」又是前端工程中的一项,并列还有程序功能设计(需求分析)和结构设计(架构设计)等。

由此可见,一名JS开发者的专业任务谱图是很宽的,即使专指「JS技术发者」,不用负责分析,设计和管理,他依然需要负责编码,构建,版本跟踪,测试工等任务。

再进一步,即使是JS编码开发者,也可分为 JS,CSS和HTML等部分开发任务。JS语言可以再分,此处另开一文分析。

其次是水平

能力水平可从一个人完成一个事情可能性,效率和质量上衡量,所以开发水平就是,能否完成程序开发的任务,有多大效率,产品质量如何;

再具体一点,你能否用 FP或OOP完成开发出一常规的前端程序任务,需要多久,代码质量如何;

影响我们完成一项事务的效率和质量的,是我们对任务,和工具的掌握或精通程度,表现在对工具的特征的把握(例如认识到FP和OOP的区别),和对任务特性的深入认识(例如对React V组件的认识)。一个例子就是,我们对函数式编程中的偏函数「技术」的掌握,和对代码复用组织「任务」的深刻认识。

总结

有丰富开发经验 表现在开发者能使用专业工具完成某XX任务(开发一个程序),并且表现出一定的技巧,和效率;

而作为JS开发者只是前端开发者的一个角色,他的专业任务主要是编码,构建,版本管理,功能测试等任务。

下一文将分析 JS开发者编码任务,和技术(等经验内容)。

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *