记第一次白板面试

21 Nov 2019 Interview

最近得到一个面试,这刚好是一个检验最近刷题成果的好机会。


介绍

最近得到一次面试机会。坐标维多利亚,公司为某金融集团收购的子公司,公司主营开发航海软件,听说北美这边市场占有率为第二,公司规模在50人左右,对于维多利亚这样不足40万人口的小城市来讲,已经很不错了。而且猎头说这个公司氛围不错,薪资待遇也可以,并且跟这边一般的中小公司招聘不一样,它们会有白板做题环节,(可能我存在偏见,个人感觉招聘没有白板做题的公司应该竞争力不强,哈哈)不管怎么说,这对于最近在刷题的我来说刚好是一次检验的机会,在这之前,本人并没有过白板做题的经历!

要求

先说一下公司的招聘要求,初级到中级全栈开发工程师,工作经验1~3年,良好的前端开发经验,以及对后端开发有基本的认识,此外也需要了解一些数据库查询和一些基本算法,语言方面偏向JavaScript和C#,python也行。面试时间定在早上10:00,两位面试官,时间90分钟,包括介绍, 技术背景, 项目经验(30分钟),白板做题(1小时)。

由于得到面试晚,时间比较紧迫,从通知面试到面试总共不到48小时,也只能临时抱佛脚的看一下子,主要还是看平时的积累啊。

过程

面试氛围相对比较轻松,不得不说我高估了面试内容,准备面试的过程我特别看了一下以前的代码,以及各种框架,知识点,概念,特别是花了很长时间看了CSS,其实工作当中用js,css框架比较多,纯js,css反而比较少写,所以总感觉自己头重脚轻,借机也算是复习一下。后端这部分也拿出了相当一部分时间做了梳理,什么restful apis,oauth认证,mvc之类的,数据库查询这部分确实没看,因为过往经验就是很多公司要求有数据库查询的功底,但是往往面试不会考,这也算是偷懒了。至于算法,我倒是觉得应该不会很难,毕竟这个级别的公司难度总不会和flag级别的相比,也就没怎么复习了。所以总体来讲心里是有底的,心态调整得还算不错。

上半场

面试前30分钟,我个人还比较满意,虽然相关技术背景有交代,自己特别准备的东西好像并没有得到关注,这也无可厚非,时间有限,公司肯定捡自己感兴趣的问。大概的考察了一下js的基本知识,比如,ajax的回调函数,循环和递归,题目类型就是运行之后返回什么结果,然后问如何优化这部分代码,这部分答得不错,也很基础。接着,竟然真的考察了数据库查询语言,是的,没错,就是我偷懒没复习的部分…! 题目其实很基础,考察的inner join和left join,以及数据库注入攻击。唉,真的是靠大学的记忆在回答,在考官的一点提示下才回答出来。这部分表现一般般。没答出来的题目已经做了笔记,同样的地方不能摔倒第二次。

下半场

接下来开始白板,莫名其妙有些兴奋。题目不难,把两个列表相同的元素挑出来组成新的列表。应该是到简单题,我很快给出了第一个方案,两个循环嵌套,O(n^2)。这显然不是最佳答案,但是先给出一个中庸的答案,在进行优化,这可以说是一个解题套路,让面试官看到你的思考过程和改进过程。最终,通过使用set()把结果优化到O(n),这个题完成。第二道题,难度就大一点了,应该也不是难题,只是站在白板前确实很容易放空。题目是信号塔a向信号塔b发射一段字符串信息里面可能会包括目标字符串和垃圾字符串。判断一下这段信息里面是否存在目标字符串,附加条件是只有nextChar()和exit()两个api可以调用,nextChar的作用是得到下一个字符,其实就是一个从stack里取值,而exit()的作用是如果没有目标字符串就退出。我的想法是先初始化一个空字符串作为结果,然后通过调用nextChar()来遍历整个栈,当遇到目标字符串的首字母时候,就开始把字符压到结果空字符串里去,并进行比较,如过字符串全部匹配返回存在,如果字符串不完全匹配,那么清空结果字符串,从不匹配的那个字母开始重新调用nextChar比较,重复上面的过程。这个过程应该可以是O(1)的,不过可惜这道题没有想完整,最终的思路并没有完全表达出来,所以结果应该是不算太好。好在这道题其实是我额外要求的,本来不在考察过程中,只是我想借着这个机会多练习一下,考官也配合。

评估

总体来讲,给自己打70分吧,没有达到预期,可以做得更好的,但是这个面试经验确实不错。对我很有启发,总结如下:

总结

  • 备战的时候不能偷懒,不要自作主张,应该全面准备,看清楚考察内容,有针对性的复习,切勿好高骛远
  • 需要强化自己的沟通交流能力,多总结,多概括,让表达更简练,清楚
  • 面试暴露出来的问题还是基本功不扎实,针对的方法应该是多刷题,此外数据库刷题也要提上日程
  • 锻炼自己的临场应变能力,需要找到一个方法,解决面对白板成白痴的问题
  • 面试前要休息好,调整好情绪,合理控制好时间

感谢

特别感谢猎头Nash Geng提供的机会,以及主考官,Shaw Lu的考察(大概是叫这个吧)

接下来还要继续坚持,Desmond Zhou说凡事做到极致,必有回应。还有Baron和强哥也给了我莫大的勇气和信心。

加油!Fighting!

Search

    Table of Contents