面试官主要就是针对招聘岗位面试出合适的人选,核心就是避免招到实际能力远低于薪酬的人。我面试时,一般会有四个环节:自我介绍,基本题目的面试问答,手写几段代码,上机实践操作。

注意事项

  • 面试的目的是测试出面试者的真实水平,而不是为难面试者,不要故意挑明其弱项。
  • 工资要求越高,对其能力要求越高。对于那些要求薪酬明显高于实际能力的人,一般不录用。
  • 面试最好要求带上电脑实物展现,或者手机上有图片,这样面试时才能言之有物,面试效果更好。

一、自我介绍

 这环节本质就是给面试官看简历,并且从自我介绍中发现重点疑点亮点,对此进行提问。所以说,面试自我介绍时千万不要扯出自己不懂的知识点或环节,被问到答不出就不好,一般只会介绍自己有把握的内容。

二、基本题目的面试问答

 一般会先问做过哪些项目,负责哪一块,解决了哪些难点。 然后再问些基本题,会准备笔和纸来写下提问的关键词,面试者回答时可以书写来辅助表达。比如说如果是应聘前端要用到Vue的,就问一下Vue的生命周期,跨组件通信等常用知识问题。如果应聘后端的,就问一下数据库什么时候要给哪些字段添加索引,为什么添加等等。前后端都会涉及到的跨域请求的原因及解决办法等常见问题。基础问题我并不会要求所有题目都要答对,我们面试的目标是测试出面试者的真实水平,少量问题没答上来并不代表整体水平不行。

GET 与 POST的区别

 我特别喜欢问那些网上没有答题甚至是错误答案的。比如我最喜欢问的问题,不管前后端都能问这题:GET 与 POST 两个有什么区别? 有时面试者卡顿一下没反应过来,我会换个角度来继续提问,换种说法,我们什么时候用GET,什么时候用POST?
 这道题有趣就有趣在,网上很多答案都是错的,面试者会把网上的错误答案背下来应付面试,我一听到错误点我就会往这个错误点继续提问,而不会直接告诉他答错了,毕竟我们面试目的不是让面试者尴尬,而是尽可能地判断出面试者的真实水平。
 比如有些人会答登陆账号时会使用POST,因为使用POST更安全,我就会继续问那为什么不全都用POST?所有接口都用POST 不是更安全吗?为什么还要用GET?面试者一般无法自圆其说,因为这个点本来就是错误的,曾经有个面试者就答出过所以我所有接口都用POST,而不用GET。听到这个回答,我就判断出这个人水平不仅基础知识不行,不但没有去深究原理还自以为然地瞎搞。
 此题的答案主要是RESTful规范内容以及可以从协议文档里找到RFC - Hypertext Transfer Protocol – HTTP/1.1

简单讲一下用户登陆的整个过程

 不管前后端,用户登陆这个问题都会涉及到,我经常问这个问题简单讲一下用户登陆的整个过程,比如说前端界面用户输入密码后整个接口、流程怎么走的?这个问题主要考察面试者对前后端接口交互的了解程度,以及加密的问题。
密码从前端传过来后,是不是直接存到数据库里?密码有没有经过处理?主要看有没有犯直接明文保存密码的错误,很多萌新有时没意识到明文保存密码是个错误。
处理密码时是用什么算法?主要看有没有区分出摘要算法与加密算法的不同,有很多萌新会误以为md5就是种加密算法。
用户登陆时,是如何比对界面输入值与数据库值,如何判断出用户登陆密码正确? 当然,更多人并不能一一道来,毕竟可能面试者没做过,答不出来也就扣一点分不算太多,但答出来肯定能加不少分。

加分题

 一般会问一些能够加分的题目,比如问前端写过后端代码没有,问后端有没有写过前端界面,这些如果有写过当然属于加分,没写过也不扣分。另外因为我们做的项目涉及到实时数据,所以用到websocket协议,也会提问简单介绍一下websocket以及什么时候用websocket协议等问题,这些都是只加分不扣分的题目。而且还会问他还有什么其它特长能为他此次表现加分的。

淘汰不符合的面试者

 这个阶段,除了通过题目来判断面试者的基础知识水平之外,更重要的一点是看面试者表达能力是否清晰,如果表达能力很有问题,感觉就像是鸡同鸭讲,你说的他听不懂,他说的你听不懂,很难沟通,说明能力不行或者很难团队合作,一般会淘汰。

三、手写几段代码

 面试问答没问题,就开始下一环节,手写代码。手写代码主要快速考察常用API使用,比如说JSON的序列化与反序列化,字符串简单处理等常用API,以及简单的数组排序,对象深大克隆等简单操作。不管什么语言,这些常用操作是经常用到的,有部分不记得还可以理解,能写出个大概意思意思就好,个别函数名拼错或者忘记部分名称也可理解。但如果毫无头绪的那种,基本上就是代码能力有问题。大部分培训机构出来夸夸其谈的人,手写代码基本都通不过。

四、上机实践操作

 上面环节都通过后,才让他上机操作了,毕竟到这环节是比较费时间的。提前写好一个上机实践的面试题项目,跑起来并安排他做一些简单常用的操作,修复里面简单的报错内容,时间控制在30分钟以内。重点观察其动手实践能力,与调试能力是否正常。如果是后端,还会额外多考察其部署能力。基本上没问题,说明这个人技术水平正常。