技术面试是互联网校招中必不可少的环节。
典型的互联网技术面试往往分为讨论简历项目经历、做面试题及向面试官提问三个环节。在这个过程中我们需要让面试官形成对自己的第一印象充分了解自己的经历特点与能力特长并最终做出是否契合公司招聘目标的准确判断。这对于一场往往被限制在一小时左右的技术面试来说是很难达到的目标。因而如果能够在技术面试中更加有效地展示自己那么可能距离拿到 Offer 便更近了一步。
针对面试的三个典型环节结合我自己经历的各种各样的校招面试至少可以从以下几个方面来更加有效地展示自己。
一、突出项目经历中的闪光点
从我自己的校招经历看来项目经历是简历上最难凑齐的环节。东拼西凑了半天能摆得上台面的大概就是企业实习经历、学校实验室的科研项目、参加各种 Hackthon 等比赛项目以及若干课程项目大作业等等。这些经历之间毫无系统性的逻辑关联并且每一个的参与程度也是不一样的也没有想过需要再把项目充分复习了解一遍。以至于我拿着这份最初的简历去面试的时候甚至发生过因为我对某个项目介绍逻辑混乱而被面试官怀疑我简历造假的悲惨经历。
当然造假是万万不会也是万万不能的。但是在保证严格实事求是的基础上依然有空间对简历项目经历进行优化比如可以根据项目的实际意义、自己的参与程度、是否展现自己某方面能力对经历进行筛选。「发明轮子」的课程大作业、跟着师兄帮忙但是自己只是标了些数据的科研项目、蹭着同学已经写完的项目改改做个 PPT 参加个创业大赛等等的经历就可以考虑从简历中删除或者排在靠后的位置。而可以把自己觉得比较有意义并且理解深刻的项目经历排版在显眼的位置并进行充分的准备
  • 尝试用一句话描述这个项目解决了一个什么样的问题。
  • 在这个项目之前是否存在这个问题当时是怎样解决的现在的解决方案优秀在何处。
  • 自己参与了这个项目的什么部分使用了什么方法为什么考虑使用这个方法是否有可替代的方法各个方法的优缺点是什么。
  • 参与的部分存在什么样的难点是如何解决的。
  • 团队协作方面是否存在问题是如何处理的。
  • 是否有可以演示的demo
有的时候面试官会叫我们在项目经历中选择一个自己觉得最好的介绍这时候就可以把我们充分准备的这逐条列出。
但是有的时候面试官可能并不一定会去问我们觉得最闪光的项目经历这就需要我们对面试官进行适当地引导。比如在面试开始自我介绍的时候:「我叫XXX,现在在 XXX 大学读书……之前我在 XXX 公司实习的时候参与过 XXX 项目觉得非常有意思。」这样引出话题开头又戛然而止。此时面试官大概率的会选择让你说一说这个项目如何能够有意思那么引导成功。如果在这时候面试官依然按照他的思路找了另一个项目提问或者直接问面试题那么说明面试官事先研究过简历其中有与这个公司部门更加匹配的项目经历他目标很明确地很想了解而这已经是最足够的闪光点了。
二、通过面试题展示自己的思维过程
在面试中做题和平常自己刷题是略有不同的。做面试题目的是展示自己的思维过程表现自己的理解能力和分析能力。因而无论拿到的题目是否以前刷到过直接埋头开始做而把面试官晾在一边可能不是最好的做法因为直接达到思路完全正确、方法逻辑严谨、结果符合要求、算法效率最优、代码没有BUG 是非常困难的。如果对题面理解、边界情况考虑不够周全、算法效率不符合要求等等情况发生并且在完成最终代码之后才发现那么可能已经浪费了相当多的宝贵时间。因而向面试官说出每一步的思路和想法虽然看上去有些啰嗦但是还是很有必要的。
具体的来说
  1. 首先拿到题目需要明确题目要求和输入输出这一步可以通过举一个简单的输入数据例子使用简单方法手动一步一步推演得到输出向面试官确认过程正确并得到符合预期的结果
  2. 其次可以向面试官确认一些边界情况是否需要考虑比如字符串是否只包含 ASCII 字符、输入是否可能为空、输入长度数值范围
  3. 此外如果拿到没有见过且没有明确思路的题目可以将一些初步的想法告诉面试官以便于面试官及时发现思路中的问题并可能给出相应的提示与纠正
  4. 最后当有了一个算法思路之后在写代码实现之前可以简略地向面试官描述思路并给出时空复杂度分析以确定是否达到效率的要求是否还需进一步的讨论优化。在所有一切讨论最终确定之后再编写代码实现解决问题的同时也表现了自己如何分析理解整个问题的。
那么在平常自己刷题的时候也可以尝试自言自语地说出每一步的思路练习与面试官讨论问题的过程。
三、向面试官提出有意思的问题
向面试官提问是一个很玄学的环节。理论上这个环节讨论得如何是不计入面试结果的但是依然可以向面试官表达自己的价值追求或者可以为面试官塑造一个好心情。
一种方式是面试前了解清楚目标公司或者部门最新的技术动态在这个环节与面试官探讨或者直接问面试官所在部门主要负责哪方面的工作。而我自己更喜欢的另一种方式是问面试官「认为这家公司有怎样的优点」,「为什么热爱自己的工作这类很个人化的问题。如果面试官很喜欢他的公司在他跟我讲述一番之后很可能具有一个不错的心情而在之后整理书写我的面试反馈的时候,或多或少会产生积极的作用。而另一种情况是这个面试官不怎么喜欢他的公司那这也能够帮助我们重新考虑是否要加入这家自己员工都不怎么喜欢的公司了。
总之丰富的经历经验、扎实的基础知识、敏锐的思维逻辑是面试的基础。在这些硬实力的支撑之下可以通过合适的方式向面试官展示自己的特长因为酒香也怕巷子深。互相进行模拟面试是非常有效的准备面试的方法。因为模拟面试可以让自己站在面试官的角度看待面试的过程一方面可以通过准备问题了解面试官的关注点可能是什么另一方面可以通过自己对于对方在面试中的各种表现的感受告诉对方怎样的行为是好的,而怎样的行为是可以提升改进的同时自己引以为戒。
想了解面试官在面试中的关注点是什么?请戳
想了解真实的面试经历?请戳

继续阅读
阅读原文