> 故事大全 > 第一次面试经验和经验分享

第一次面试经验和经验分享

被拒绝了,我觉得很不开心,但更多的是反思和遗憾:把我反思的结果分享给大家,希望大家能有所收获。

首先声明我的面试是针对技校生的,所以我不想看非技校生的。其次,我是数学系的,有些情况只是案例,大家要看一些东西。

从一开始去腾讯笔试之前,我就一直在默默准备考研。我没有参加他们举办的报告会,甚至没有按时在网上提交简历。笔试和我的简历一起赢了。笔试很简单:但是一定要有很好的C/C++基础,尤其是细节。大概是看了试卷的分数。六七十年代多,八十年代很少,九十年代也有。另外东大考点比南大考点容易,所以工作人员说那边考点面试资格分数高一点,不说了,大家都知道。

一方面感觉很顺利,除了面试我的MM把二叉查找树的那种误认为堆的那种,一切都很顺利。先是自我介绍,然后说了不到两分钟,然后就不说话了,她开始提问。(我被刷了,给我铺平了道路。我以后再说。).

我简单讲了一下我做过的一些项目经验,强调了我在这些项目中的收获。她似乎很满意。接下来问我一些C++的问题,很多很多,一个接一个,有变量存储区,函数存储区(我说代码区,她好像不满意),内联函数和成员函数的区别(我觉得有点奇怪),只说各自的实现,继承和虚函数,虚函数和纯虚函数的区别。指针应用和释放的注意点,内联函数比普通函数快(我回答说内联函数在调用位置展开,而普通函数有跳转,所以她好像不太满意。我加了参数传递和返回值的费用,她就放我走了),关于C++这样的问题不少于10个,我尽力回答。

获得的经验是:我对C++的理论经验太肤浅,尤其是对编译器了解太少。我觉得主要原因是我学计算机的起点是计算方法,所以我不太注重这方面(我只注重方法的优化效率,没有能力去关注编译器的优化应用,所以大家都有机会补充理论知识。理论很重要,尤其是面试的时候,正常学习的时候不要只关注算法。

接下来她问我TCP和UDP的区别,我只是说不清楚,对计算机网络通信也不熟悉(这方面真的没看,程序员测试的时候看了一下就忘了),所以她也没问我这个问题。

接下来,她开始问我算法。首先我来描述一下hash映射的实现原理和缺点,以及它的实现方法。然后,我来说说堆的实现方法。我轻松做完后,觉得她不满意,因为她一直问我一些明显在引导我的问题,比如父子节点是什么关系。我回答说如果爸爸是我,儿子是2i,2i+1,按我算可能不一样,好像她不满意,问我怎么分辨儿子的大小。我说没必要。我只需要把两个儿子转到大的,花了很长时间。她还问我二叉树的遍历,我很顺利的回答了(后来我才知道她一直在指导我)。最后她问,为什么不规定左子右子?我当时就生气了,马上说,哦那我跟她说了好久两者的区别。她也觉得堆排序效率太低,因为每次都要调整一次。我明确告诉她,堆排序的排序效率是O(nlogn),不低,我从侯杰那里搬出了一句话。

这个过程我不怎么玩,但是她好像没有堆叠排序的概念,我就纳闷了(不知道是不是陷阱)。可能是因为她问我算法的时间太长了,所以问了一些个人意向。如果我想考研什么的,我直接告诉你。我说这是我第一份简历。如果我拿到录取通知书,我就不考研了。如果拿不到,我就去计算机系读研。她什么也没说(为我的双重失败铺平了道路)。她接着说你不适合开发,因为我们的开发人员主要是研究生,而且是计算机专业的(我觉得很可笑)。我说我可以学。我承认有些缺点,但我有数学基础。她说,你的算法很好。如果你有意向做测试,我们可以考虑一下。我想了一会说,我想了想,然后说,好吧。(但不是那个渴望的)。然后我就说话了。临走前我笑着说:二叉树排序和堆排序不一样。我现在不后悔这句话。


一方面觉得自己打得不错,因为心态比较平和,没有太多期待,因为没有太多渴望去的希望;另一方面感觉面试官mm很好,不回答会导致答案附近(也妨碍了双方的发挥)。所以回来的时候就把手机关了。我想,我觉得我打得很好。如果被刷了,就要考研了。没想到11点就收到了第二方的通知。大家都恭喜我,说我肯定有希望,因为别人已经给我定好了方向:测试。我很放松。大家都说了之后我就开始紧张了。感觉太大了。如果再被刷下来,我就没面子了(我知道去的人不多)。而且前几年也有人去数学系,只有我一个人留在第二面。我要争口气,不能给02班丢脸。于是我很紧张,就开始看书。12日上午,我还看了一本关于测试的书,因为人既然定了方向,就应该问这个问题(这是我的战略失误,后面会看到)。下午四点去等面试。这次我一个人去(一边有朋友陪同),三点半到,五点半轮到我。通知是四个。都是计算机专业的,大家讨论的问题很多。我没有仔细想过他们,所以我开始紧张,感到紧张。而且面试后等hr的人一直在说一些智力问题,我也越来越不自信了。最怕的是智力问题(感觉反应能力可能慢)。再说,人家说这个问题微软用过,可惜我从来没关注过这方面。

还有,我ID很低,但是有几个没ID就进去了,还没轮到我(他们告诉我是五点),我就有点郁闷了。我问接待员,我说了我的名字。他看了半天说没有我的名字,我就瞎了。我赶紧说了我的id,他才发现。原来我的名字是几支笔写的,其他的都是打印出来的,很不一样。

等了很久,终于有了名字。开门前我敲了面试室三次以上。我不知道发生了什么(我还是不明白)。我开始面试。他先让我做了五分钟的自我介绍。我不在乎时间。我就这样说了两分钟。我觉得我说完了就停下了,等着他问我问题。结果他冷冷扔了句:继续,继续。我当时白了,就赶紧整理了一下。我没办法。后来说的话很不连贯,又因为怕自己没有及时收手,就说了自己的一些缺点(现在后悔了),其中说到自己在候诊室的感受:和学计算机的有差距。我现在想扇自己一巴掌,后悔。最后,我讲了五分钟够不舒服的了。感觉额头冒汗(从来没有这么紧张过),脑子空白,想到了p,这时他不失时机的抛出了一个话题:在恒定时间内删除一个指针指向的链表点。因为还没反映,不知道躺在桌子上多久了。因为我说谎太久了,我说能不能先调整一下。他又抛出了一个概率问题,我当然知道,但是我写完答案后,想调整一下,就想了一下论文,主要是太紧张了,怕个坑,发现脑子还是集中不了,就更加坚定了要死的决心。我写了下一个算法,不流畅。(第一个算法是我走到大厅的时候出来的。)

然后就开始聊其他的问题。我猜是因为我在几个题目上表现不好,他已经判我死刑了。我提到第一个面试官说我适合考,我就看了这个资料,结合我的实际情况讲了很多,但是我感觉他一直在抓我的漏洞,最后说:不知道谁说你适合考,也不知道你为什么这么想。我彻底意识到自己犯了战略错误,对一方和双方的联系看得太重。大家一定要记住,不会提前面对面交流,只是通过一些评论。天知道前面的评论有多简短。

我如实告诉他我现在是不是要考研了(我觉得再改可能会被指责不诚实),他最后说,今天就到此为止吧,回去等我们通知。我说,我被拒绝了吗?(因为没有被拒绝,他在楼下等hr),他说:考虑到你和你计算机系同学的差异,建议你先读研。我当时走出房间,觉得自己很傻,谁很残忍,虽然我的理由都是自己的缺点,所以大家一定要引以为戒,面试的时候一定不要说自己的缺点,除非有争议,可以单独说明。


在等待的同时,尽量不要和和自己不一样的人聊天。我只是犯了这个错误。当时我是申请技术的数学系。和人聊天只会增加我的不自信。相信自己很重要,不然我也不会在面试官面前说我和计算机系的人相比有些缺点。

面试和面试联系不大。你不要以为他们会为了交接仪式而开会。不会,所以,你说的话,一方可以反过来说,另一方面试官对你的评价可能持有完全相反的观点。

不要被别人影响,尤其是那些善意鼓励你的人。他们强调这是一个好机会,只会增加你(对我)的紧张感。

你简历的封面很不重要,尤其是面试时你直接给他的那份(现在简历都是电子筛选,只有差的公司还在手工筛选),我的封面已经从复试中去掉了。

有好的面试官,也有不好的面试官。比如第一种比较好。我想当然的认为两边的面试官都不应该太过分。结果我错了,猝不及防。大家一定要小心。面试官和面试官之间没有传承关系。你应该学会和不同的面试官打交道。

最后我跟非专业课出身的同学说,计算机算法很重要,但是理论基础同样重要。大三之前只关注编程,没有关注编译器原理。