关于面试的百转千回

公司需要什么样的人?

面试官通过面试来考察应聘者是否为公司或团队当前所需要的人才,而应聘者也能从面试题中反推面试官对于人才的期望。

比如:三年经验的前端工程师应该掌握哪些技能?当然,没有这样直白的面试题,但在概览这次面试题涉及到的范围,可以显而易见的看出这样的本质。
我的答案是JS的语法、特性和引擎实现原理,而面试官的答案是体验优化、异常处理和系统设计。

现在,我们双方的理解出现了非常大的分歧,我觉得我需要反思。

我是什么样的人?

为什么我没有给出面试官的答案?因为我厌倦了做业务,所谓的增删改查,所谓的重复劳动。我在做这些工作时已经不再像过去那样充满激情,只有应付和拖延。连基本的功能我都不再去理解其意义,那么又怎么可能会进一步思考性能以及异常呢?

但是作为工程师,不做项目又能做什么?我选择了工程化,或者说搭建基础设施。原因很简单,这是技术力体现最高的方向,与业务无关(其实不是),只与我的能力有关。我是个单纯的人,只想与代码打交道。所以我只要关心语法、内部原理以及与帮助我提高框架质量的基础知识。

这些都是我工作一年后就产生的认识,那么我做了什么?我觉得做了很多,这两年利用开发或者是改进的工具,帮助团队提升了工作效率。但是提升多少呢?是否大家都满意呢?做到怎样才是极致呢?这些问题我都没有思考过。
走一步算一步的方法论在软件工程里是行不通的。我应该好好地定一个目标,以及反思自己与这个目标存在的差距。

当面试官知道我更希望走工程化的方向时,就问了我两年内的目标以及当前所欠缺的能力。

我的答案现在想想,还是很难的。不说离谱,就是很难。意味着我需要补充更多的电量。当然,问题不在于答案,而在于我没有思考过这个问题。
真是讽刺,不仅仅是对于这个问题,而是对于我面试求职整个过程。我内心无比高傲,实际却低如尘埃。

最后的反思

对于自己的能力与岗位的要求不相符的情况,我对自己是有所怀疑的。因为根据面试题我了解到做业务也可以走的很深入,也可以通过技术改变自己所耕耘的一亩三分地,并且能得到可量化的回报。同时这也是前端工程师所应该掌握的能力。那么我是否应该摆正心态,正视业务系统,深入钻研一番?

也许吧是的。所谓的工程化,目的之一创造工具来提升业务系统的开发效率。没有在业务系统中钻研到一定的深度,又怎么能保证自己发明的工具是符合业务系统需求的呢?又怎么能保证不会反向限制业务系统的功能高度呢?

还有一点反思,就是如何去改变自己的团队。说实话,现在的团队我不满意,能力不强。但是我不愿意离开,更希望帮助他们提升。但是苦于找不到方法。这次我了解到了一种针对性的方法,先制定自己的标准,去寻找团队成员的不足,得到提升团队成员能力的方向。还有就是提高意识水平,不管是团队主人翁意识还是编程意识,这个点也是可以帮助团队成员成长的。

大概就这些吧。面试不如意,人生还继续。心中千言万语,落笔已成定局。