likes
comments
collection
share

【长文】解构前端面试

作者站长头像
站长
· 阅读数 19

【长文】解构前端面试

去年在面试别人,今年在被别人面试,一来一回感受到了传递下来的寒意,也总结了一些面试的心得,在此记录一下,为了下次面试能够更快的进入状态,也希望能够给正在面试或者准备面试的同学带来一点帮助。

开篇叠甲: 本文记录的内容大概只能满足0-5年的岗位面试要求,如有大神误入请勿重击。

先介绍一下自己,双非本六非科班(学传媒的),蹲过大厂也创业失败过(就在去年)。去年底公司解散,也算失业大半年了,最近才找到比较合适的下家。

不扯别的了,我们进入正题,文章大概会分六个阶段来解构一场前端面试可能会涉及的东西。事先说明,本文并不会出现任何八股文汇总,需要温习八股的同学可能要失望了。

面试前

面试前这个时间节点范围比较广,这段时间内我们需要准备好我们的简历以及总结自己的工作经历、项目,然后再结合自己的职业规划,分析后续的投递选择,也就是对下家公司的选择。

我基本会按照下图来做我的面试前准备

【长文】解构前端面试

个人简历

整个面试前阶段最重要的就是简历准备,一份质量高的简历是获得面试机会的关键,个人简历的编写逻辑如图。

简历我将它分为3个部分个人简介工作经历项目经历,并且顺序也是如此。每个部分都由不同的小模块组成。

个人简介

以我个人的习惯,在简历的开篇,我会先写一份个人简介,在这份简介里面会展示个人的现(前)公司、较熟悉的技术栈、以及比较擅长的领域。

随后会简单的挑选2~3个项目进行介绍(注意,这和后面的项目经历并不冲突),力求以项目名称+一句话概述的方式把项目简单介绍一下,其中这一句话的概述个人建议多用数据,并且可以使用不同颜色的标识突出你的重点。

示例:

我的一个很牛逼的项目(标题)

通过对业务形态以及投放策略的研究与抽象,完成通用框架的设计以及开发,将产品的上架时间从原来的3天缩短为30分钟,并推行覆盖全司95%的产品。

写完项目之后,如果有技术博客(有定期更新)、个人主页(有定期更新)或者Github(有维护项目)的话,建议附在个人简介的结尾。以本人面与被面的经验,如果公司诚心招人的话,面试官是会主动去了解候选人的,如果简历上有链接的话,大概率是会去访问的,并且大多数情况下都能给面试官留下比较好的印象。

工作经历

这个模块顾名思义就是需要把我们每段工作经历都摊出来,让HR和面试官能够快速的了解我们的职业发展过程,其中每家公司经历介绍范式是一样的,个人倾向用这样的方式来写。

公司名称 - 岗位 - 工作时间范围

个人工作职责(以条目的方式列出,尽量精简)

...

...

...

获得荣誉(重点关注)

高绩效认定...

专利、软著...

发表的技术文章...

其实荣誉这块是十分重要的,感觉大家都有点忽视了,很多大厂是比较关注这一块的。

项目经历

到这个模块,个人认为就可以写的稍微详细一点了,原因有二,一是会看到这里的人一般都已经对候选人产生一定兴趣了,这个模块需要把项目讲清楚,让面试官对我们有一个更加深入的了解;二是负责筛选简历的人一般在前面两个部分就能得出结论了,不会再往下看,所以并不会影响筛选人对我们的判断。

关于这一块,每个人肯定都有自己的风格,我就不在这里瞎逼逼了,这里把技术栈、技术方案以及技术核心都讲清楚其实就足够了,技术细节可以简单写写,因为在面试的时候还是会再问一遍的~

项目复盘

其实在准备简历的时候我们就已经在做项目复盘了,不过除了简历上的项目我们要熟知以外,最好还能有1~2个备用项目,而且最好风格和简历上的不太一样,以备不时之需。

需要注意的是,凡是出现在简历上的项目,我们必须要十分、百分、万分的熟悉,不然很容易会变成减分项,甚至不如不把这项目写上去。然后我们可以从面试官常用的提问方向来倒推我们需要准备的内容,这一块在后面项目考核会细讲。

职业规划

这其实是个比较大也比较虚的命题,大家平时可能都不怎么会考虑职业规划这些东西,但是在这个阶段,职业规划是十分重要的,它将会直接影响我们的投递选择(公司选择),以及后续的发展轨迹。

我自己的思考模式如上面的思维导图,职业和行业方向我认为是同样重要的,所以我在选择公司的时候会先从行业出发。尽管我们是做研发的,但是一线研发是不可能做一辈子的,有了行业的沉淀才有可能有日后的质变。

所以首先我们需要明确现在工作的行业所属,然后思考自己是否想继续在这个行业里面沉淀,最终得到一个行业范围的结论,然后根据这个结论来进行公司筛选。

筛选出一部分公司之后,我们就可以通过JD来判断大概的工作内容,然后看看和自己在技术侧的规划是否匹配。如果你想持续迭代技术深度,那么可以聚焦基础、中台开发岗位;如果是想迭代技术广度,那么可以考虑挑战全栈或者跨端的业务岗位......

这样一系列操作下来,我们基本可以确定目标公司以及岗位了,然后就可以重点准备面经了。

收到面邀

从收到HR的面试邀约开始,战斗就已经开始了,这段时间我们就需要做一些针对性的准备。

分析JD

收到面邀的时候,第一件事就是去回顾对应公司的招聘JD,因为这个时候我们一般都投递了很多地方了,需要去重新回顾一下当前面试岗位的工作职责描述。

一般我们能在这些描述中知道对方要求的载体经验、技术栈以及项目经验大概是什么,然后我们就按着这几个方向去整理复习我们的面经,提取出一些核心知识加深理解,就有点像考试前的猜题。

除了上面这些,在一些公司的JD中我们可能还能窥探出岗位的业务范围。

了解公司业务

紧接上文,在面试之前我们还是需要对业务有个初步的了解,一般了解的途径有两个:JD、公司官网。

这里会举个例子说明一下我的思路:

某公司JD

职责要求:

熟悉React、Vue等前端框架

有PC端管理台项目开发经验

熟悉广告投放业务

......

从JD大概可以得出这几个分析结果,公司技术栈大概率是React并且是PC为主,然后可能是广告投放中介。

然后我们再到公司的官网看一下,发现他们是有自己的产品的,并且用户体量还比较大,这时候我们就可以完善刚刚的推论,它不是中介,而是正儿八经的流量主,再往下推导其实就可以对公司的状况有一定的了解了。

以上就是我的推导思路,按个人理解这是个通用的思考模式,除非JD和官网等途径获得的信息都比较模棱两可。

编排面试过程

虽然说整个面试过程的主导方基本都是面试官,不过我们也是可以在有限范围内做一点编排的,比如我们可以从上面的分析,对我们项目介绍做一个顺序或者侧重点的调整,让我们整个过程更加接近公司的需求。

还有就是如果公司JD里面出现一些比较少见的要求,而刚好我们又符合,那就要考虑一下在什么时候将这个加分点带出来。

面试开始5分钟

面试前和收到面邀都讲完了,就该轮到面试中了,我将面试的前五分钟单独拆出来了,我认为这五分钟能做到的事情还是不少的,首先是关于面试的礼仪。

面试礼仪

现场面试相信大家都很清楚了,因为某些原因而且在线效率也蛮高的,所以越来越多的公司开始选择在线面试,其实和现场是类似的,我们都应该遵守一些基本的礼仪。

提前进入会议,至少提前5分钟进入指定的会议,然后我们就可以趁这段时间调整一下摄像头和麦克风。这里需要重点说一下,有挺多同学不喜欢打开摄像头,我一开始也这样,但是作为候选人我们当然应该把自己的精神面貌毫无保留的展现出来,这样也能给面试官留下一个比较好的初印象。

另外,我们从面试官的角度想想,面试官肯定也是希望看看屏幕对面的候选人是什么样的,还有在面试时的精神状况是怎么样的,所以一般都会主动让候选人打开摄像头,这个时候如果发现候选人已经主动打开了,是不是感观上就会好点呢?

自我介绍

然后就是自我介绍部分了,这应该是在面试前五分钟最重要的事情,我们必须要清晰、流畅的将自己完整的介绍给面试官。

个人建议写一份完整的自我介绍而不是每次都自由发挥(当然真正讲的时候可以做微调),字数大概300-400左右即可,涵盖简历中个人简介部分的内容就好了,然后将公司经历和项目经历简化,最终再以个人优势总结收尾。

简单举个例子:

我叫---,毕业于----,目前前端工作经验-年......

下面我将会分三个部分来介绍一下自己:

先说一下工作经历这块:第一段经历......,第二段经历......,最近的这段经历......

然后是关于项目经历这块:有H5、小程序......的经历

最后在简单的总结一下个人的优势:......

这里只是抛个砖,大家参考一下就好,并没有什么标准答案。

面试官会根据自我介绍来感知我们的表达能力,以及了解我们整个工作履历。又因为这些内容其实是不会根据公司而动态调整的,所以个人建议将它们固化下来,并且加以练习,起码让这一part不会给我们的整体减分。

认识面试官

其实在自我介绍的时候,我们就可以初步的感受一下面试官的风格,如果面试官对你的每个点都有简单回应的,那基本上可以确定是比较随和的面试官,这次的面试基本不会是压力面。反之,则可能是压力面或者面试官对你的简历还不太熟悉。

然后,如果面试官有主动介绍自己,我们一定要认真听,这是一个了解面试官以及岗位的绝佳时机。一般我们可以从面试官的介绍中得到这些碎片化信息:

  • 面试官的岗位或职级 - 由此初步判断公司对你的职级预判以及后续的面试流程
  • 面试官所处组织 - 由此初步判断业务内容,在后续的面试中尽量往上面靠近
  • 面试官的表达 - 由此初步判断面试官的沟通风格,可以调整自己后面的表达

硬实力考核

这就是我们常说的八股文阶段,这是无法避免的,唯一有变数的就是考核占比,每个面试官的风格不太一样。有些面试官喜欢高频率的八股轰炸,来判断候选人的基础能力如何;有些则喜欢通过场景出发,在一个场景中糅合多个八股考核;还有些面试官不太喜欢考核八股,可能会浅问辄止,然后快进到项目考核。

无论我们遇到的面试官是哪种风格,关于八股和算法的准备是必不可少的,这个阶段拼的就是我们的知识储备,既然大家都卷了,我们也没法置身事外。

然后关于八股的汇总以及一些更细节的内容,本文就不涉及了,很容易就能在各大技术网站上面搜到大V们准备好的八股面经,我们找到之后选择性吸收就好啦。

最后多提一句,在硬实力考核阶段我们不要变成问答机器,尽管这个过程我们是被动的,但这也是个交流的过程。

遇到不确定的就多问,很多面试官在面试的时候也会担心自己的问题不够明确,如果这时候候选人提出了疑问,他们也会很乐意的将问题详细描述,也许就在描述的时候我们就真正的理解的面试官的用意,从而得出面试官想要的答案。

项目考核

我们callback第一部分提到的项目复盘,下面我会总结一下面试官常用的提问方式,我们可以借此来倒推一下我们需要准备的项目内容有哪些。

请讲一到两个,你认为技术层面上最有难度的项目,并详细介绍一下难点。

你这个项目是做什么的?大概业务场景是怎么样的?

这个项目规模怎么样?协作方式是怎么样的?

现在有这样一个需求,你会怎么做架构设计?

从这些比较常见的问题中,我们可以大概总结出这些结论:

① 按技术实现困难程度筛选、准备项目

② 梳理项目业务场景

③ 梳理项目开发、协作模式

④ 总结项目架构设计

无论是简历项目备用项目业余项目都是可以按照上述的思路去准备,下面详细阐述一下准备的过程。

我们按照实现难度拉出一个项目清单之后,就可以挨个进行完善了。首先我们需要逻辑清晰的把整个项目介绍清楚,力求让面试官能够进入我们的节奏,让面试官真正的get到我们在做的是什么。

如果面试官在听完我们的介绍之后,还是一头雾水,那将会直接影响到后续的进一步沟通,试想一个对我们项目完全不熟悉的人,能问什么内容?能问出来的大概率都是一些和项目关联不大,或者一些笼统的问题。

这样对我们的项目展示十分不利,面试官将会很难理解到这项目的难点或亮点所在,一不小心就把项目给讲废了。所以个人认为,第一要务是把项目讲清楚,背景也好、玩法也好,都可以简单带过一下,这些对我们后面介绍技术实现细节都是有帮助的。

把项目大概的脉络梳理清楚之后就要总结技术上的事情了,如果是我们主导的项目就要考虑协作该如何介绍以及需求任务安排是怎么样的。在往后就是技术细节方面了,每个项目我们都可以提炼出1~2个技术实现较难的地方,作为我们的项目亮点(难点),具体细节就视情况而定了,毕竟不同项目的难点都是不一样的。

如果项目是基于第三方插件二次开发而来的,我们需要对依赖方的源码有一定的了解,特别是对方业务刚好也有这类需求的时候,面试官很大概率会考察我们对第三方插件的了解程度。

最后我们可以尝试总结一下,如果这个项目让我们自己来做架构设计,会怎么设计;或者尝试将当前项目的架构设计复述出来。通过这些行为来锻炼自己真实情景下的架构设计能力,当然还需要自己主动的去搜寻、吸收其他优秀项目的架构设计分析,来拓展自己的架构设计思维。

面试最后5分钟

一般到这个阶段,面试就已经进入尾声了,这个阶段比较可能出现的是一些职业规划或者职场关系处理相关的问题。职场关系处理倒没有什么可说的,相信大家肯定都有自己的一套职场生存理论。职业规划的话,笔者在第一部分有提及,如果没有思路的话可以参考笔者的规划思路。

补充环节

你还有什么需要补充的吗?或者是我之前都没问到的一些地方,你觉得你比较擅长的,可以补充一下。

有时候我们可能会听到这样的问题,这个问题我们最好也是认真对待,一般前面都不会聊到技术沉淀相关的内容,比如说专利、软著或者是一些技术博文、推文等等,这时候我们就可以稍微讲讲了,在有些面试官眼里这也是个挺好的加分项。

问答环节

在最后的最后,面试官可以能会例行公事的问一句:你有什么想问我的吗?

这个时候也是可以适当提问一下的,可以更加了解岗位,也可以加深面试官的印象。当然,也得先自我评估一下我们面试的效果如何,如果表现的不太好,其实也没必要浪费彼此的时间了。

如果在最后自我评估面试表现还算良好,那么我们可以简单和面试官做个最后交流,例如:

后面大概还会有哪些流程呢?

我在面试的这个岗位的业务职责和技术栈大概是怎么样的?

我在面试的这个岗位的组织架构大概是怎么样的?团队人员组成如何?

您觉得我刚刚的面试表现怎么样?

您觉得在前端这块我还有哪些能力仍需加强呢?

大多数情况下,面试官都会回答我们的问题的,这些答案能够帮助我们进一步了解岗位,也可以帮助我们改良后续的面试,更有甚者可以指引我们重新审视我们的职业规划。

尾声

一场普通的前端面试大概就解构完了,笔者也不是什么面试达人,只是把这段时间的心得记录了一下,希望能够帮助到有需要的同学。

对于我们求职者来说,心态是十分重要的,个人的经验一天最好不要安排过多的面试,很容易会切换不过来,导致面试的状态变差。一般隔一天面1~2家的节奏是比较舒服的,既有足够的时间准备,也有时间复盘。

真的到最后了,吐槽一下,上半年的求职还是比较折磨的,投递到沟通基本是10%的概率,再到约面可能就只剩1%了。不过现在市场感觉在逐渐回暖,岗位也慢慢变多了,大家加油吧!