大家好,昨天有同学在后台问我大厂的面试流程是怎样的,我回想了一下,发现几次面试的经历都还记得,今天就和大家聊聊这个问题。
大厂面试流程:自我介绍→白板编程→基本技能考察→软实力考察(潜力考察)
一、自我介绍
一般来说大厂面试的第一个环节就是自我介绍,面试官会让你简单介绍一下自己。
如果没有大厂面试经验的同学可能会被一下问住,然后结结巴巴地把简历上写的内容复述一遍。这当然是不对的,因为面试官在给你打电话或者是面谈之前一定都是会先提前看过你的简历的,所以如果只是复述简历的内容完全没有意义。
这个问题不是考试,没有标准答案,所以我只能给大家说说我个人理解下比较好的回答方法。
这个自我介绍其实可以理解成整个面试的定调,你需要把你的一些特点展现出来,尤其是一些简历当中不方便写或者是很难描述的内容。比如说你可以在简历当中写上很多项目经验,可以写学历背景,但是一般来说是不会自吹自擂地写自己学习能力很强,或者是有坚韧不拔的性格等等。但自我介绍的时候可以,然后结合这些特点,简单提一下简历当中的一些项目或者是经历,就像是写议论文一样,有论点有论据。
比如如果是我去面试,我就会说我是一个学习能力很强,软件工程和Android开发都懂的人。曾经刚毕业的时候阴差阳错做了一年的后端开发,后来通过自学转行做的Android开发,之后又如何如何,介绍一下做的项目和成绩,体现一下能力。有一定叙事性,而不是干巴巴的平铺直叙会好得多。
我建议大家在面试之前都可以先在纸上写一写,列个简单的稿子,注意不要太长,最好一分钟左右。
二、白板编程
一般自我介绍环节之后就是白板编程的环节,会让你在白板上或者是记事本上做一道算法题。
一般来说面试环节当中不会出特别难的编程题,除非是FLAG这种北美大厂,国内的公司一般出题不会太难。我列举一下我个人遇到过的白板编程的题目,一次是裸写归并排序,一次是的最长不下降子序列,一次是LRU。总体来说最难的是的最长不下降子序列,差不多相当于LeetCode Hard的水平。
除了白板编程之外也有一些算法考察的问题,就是不需要写出代码,但是给出思路。其中比较难的有变种的汉诺塔问题以及KMP的原理讲解,还有一些比较简单的概率计算以及动态规划问题。</