腾讯面试(一)

就在两个小时前,结束了腾讯的二面,面试完没多久就从wechat上查到二面被刷!

心里久久不能平静,又反复查了好几遍,确认,嗯,的确无缘了。

一切那么的近,却又转瞬间化为乌有了。


原谅我是一个文艺的程序员,不喜勿喷。应班花和标哥的面经要求,写在这里也算是作为自己的一个总结和回顾。

BAT是计算机及软件同学的理想入职公司,而鹅场在广深是更受青睐的。本人985本科一枚,报的是移动软件开发。

实习生的时候也投过相同岗位,但一面就被刷了,这次校招进了二面。


9.20号 华工教学楼 笔试

一个字——“人好多”!腾讯想要告诉所有的应届生,那几栋楼被他们承包了!笔试两个小时,各种语言基础,操作系统,计算机网络,编译原理,数据结构和算法以及智力题等等。相比实习的题,个人感觉这次题相比实习生笔试(部分实习笔试题戳这里)来说,比较“偏”,考了许多非主流的东西。但是笔试一般都很好过,不怎么刷人吧,我们班应该差不多都过了(后来听人说还是有刷的)。笔试的话感觉把数据结构和算法多看看,计网和操作系统翻翻,一般都没问题的。9月22号三星校招,我去帮忙的时候,收到了腾讯面试通知。


9月24号 市区林和西路  一面

一面安排我是九点,结果早上和塞哥坐了半天地铁,到的时候已经将近九点十分了。HR姐姐说,你迟到,刚面试官找你不在。。。不过还好,她又给我安排到9点40。

等到差不多10点20才面到我,前面那个面了近50分钟!

终于到我了。此处要注意!我是比较注重细节的,进门的时候轻轻的敲门,里面说请进就进去了。

地上一摞写着代码的纸(貌似还是什么排序),一张圆桌,一台苹果电脑,最后是一个约莫30岁左右的面试官。(注意此处作者运用了从下往上的视角)

“写个堆排序吧,最大堆” ,对面推过来了纸和笔。

我心里一震,“擦!堆排序,说好的快排呢。很久很久很久之前写过一次堆排序,记忆比较模糊了,每次复习排序,到了堆排序的时候就下意识的翻过去了!不过还好大概知道是怎么一个过程!”于是,又慢慢抚平自己的心态,开始在纸上写代码了。真格的不喜欢在纸上写代码,当然一个原因是字太丑了,另一个就是不习惯。

写了5分钟,涂涂写写。

他在敲苹果电脑!

写了10分钟,大概把产生一个最大堆写出来了。

他在敲苹果电脑!

写了15分钟,在想那个排序是怎么实现提升的。

他在敲苹果电脑!

过会问,写的怎么样了,我说了一下我的思路,怎么初始化堆,怎么排怎么排,说还有一点就写完了。他听着好像像那么回事,就说那你继续写吧。

我就继续写了,写的差不多的时候,拿给他看,他问了几个地方,我答了。这个堆排序就算过去了,回来想了一下,里面还是有一些问题的,这个是后话了。

他就问了第二个问题,20亿个数找出最大的100个,每个是XXByte,一共大小是XXG。

艾玛,这题我前一晚看到过啊,怒赞啊!在CSDN论坛上看到的,两个答案。

1.维护一个大小为100的最小堆,然后遍历后面的,如果有比其中最小值大的,就替换。

2.部分快速排序,(a,pviot,b),pviot之前的小于pviot,之后的大于。如果a有100个,那就刚好,如果小于的话,那从b中再次部分快排。大于亦然。

我觉得不能暴露了之前见过题而流露的屌丝的喜悦,于是在“思考了”一阵后,说刚才写了堆,就说了第一种方法。

他停下了敲苹果电脑的手,说有没有更快的,我说我想一下。

这时候他说了你先想,然后又出了第三道题,找出两个数组(有重)相同的元素,两种方法

 第三道题,没见过诶,两种方法,又没说效率!我想了一阵,说如果没要求效率的话,第一种就是最容易想到的,for循环下去。第二种改进一点,就是两个数组进行排序,然后从前往后比,前面的就不用管了。他说要是效率高的的呢?“再给两分钟吧”我又继续想了。

他又开始敲苹果电脑!

过了一会我说,暂时没想出来。

又看了看我的简历,说你在XX实习过,我说是的。他说拿到offer没有?我说拿到了。

又简单的问了一下项目。他说好吧,今天面试就到这里。

再次注意!我是比较注重细节的,说了声谢谢,并友好的和他握了手。

本来觉得没戏了,晚上6点微信左右查到了复试信息,7点左右第二天复试。


9月25号  还是市区林和西路  二面

第二天和留一手大神一起,一面刷了很多人,我们班也寥寥几人,到那里的时候人也不多。路上就和大神问一些东西啊,大神就是大神,回答总是屌炸天,让你觉得你特么真的学过计算机么。快到那里了,聊的时候地铁后面一小哥插话,也是腾讯二面的。结果最后这人刚好和我一个房间,同一个面试官,在我前面一位,出来的时候和我说“好水啊!”。

到我了,再次注意!我是比较注重细节的,进门的时候轻轻的敲门,里面说请进就进去了。

在敲苹果电脑,说你等一分钟吧,我等啊等,等啊等,有至少5分钟了。

这是他敲的差不多了,说自我介绍一下吧,我就blalala.

然后就问,你是熟悉C++还是Java,我说基础是C++,但是后面搞android就转java了。

他就问虚函数和纯虚函数的区别什么?这简单我答了。又问java垃圾回收的机制,我也会,答了。

又问TCP的连接过程画一下,我画了三次握手,他说问为什么要三次握手呢? ==我说这个学的时候是三次,但是没想过 。其实这个我之前看过,但是一时总结不出来,就说为了确保连接,万一确认连接的响应中断了,好像会出现死锁blala的(好像还有获得窗口和初始序列什么的,也没答)。

又看了下项目,说你用数据库么,我说用,他说什么数据库?我说mysql和SqlServer ,他们group by是什么,我说分组。他说group by会分成多少组(个)?咩意思,不懂,我说这个要看数据吧。。他又给了两个表说,找出他们相同的id并返回,我擦!我一直在看数据结构,没看数据库,怎么破,我只会写select,from,where.写了一个之后感觉不对(其实是对的)。他看我写完了,又说有n个阶梯,一次可以走一级或两级,有多少种走法。这道题我见过!之前广州某公司笔试题,当时我不会。刚好前两天见到过解法,就说可以用递归,当成前n-1项 再加一步,或前n-2项再加2步,他说写出来,我就写了。我又说这个其实是一个斐波那契数列,可以不用递归。他问为什么递归慢,我说递归用的是栈结构,会有重复的操作。他又问堆和栈的区别,我是一个是系统自动分配,一个是程序员自己new和释放,他接着问,堆和栈的大小是多少?我说我记得好像是2M还是几M啊。然后他又画了两个圈,标着“金” 和“铅” ,问两个球,一模一样,大小颜色轻重外形全一样,怎样区别。我一想,密度不同,一样重的话怎么可能体积一样,不过一样他又没说是均匀的,所以可能是一样大的。我说能不能用化学反应,他说最好不要破坏它,我想了一下,他说有结果了么?我笑着说,想到一种奇怪的方法,因为铅有毒,可以舔一口,不对,这样说好像不好偷笑,我就说可以用小动物实验。他说金也有毒吧,重金属。我说虽然都是重金属,但金没有毒。他说有没有其他方法,我说我想一下,想了一会没想到就说不知道,问怎么比,他没理我→_→  最后问你有没有参加什么笔试啊,有没有去百度,我说笔试被刷了,华为过了机试等面试。他说你有没有在学校参加什么俱乐部啊,比如腾讯俱乐部,我说腾讯俱乐部好像是不久成立的吧,有微软俱乐部,但是我没有参加过。

又问你有什么问题,我说有三个问题:

1.是不是面什么部门,就去什么部门啊。他说不一定。

 2.刷人的几率是多大,他说你觉得呢

 3.能不能说下我次数面试的不足。他说有些基础还要加强,比如刚才那个数据库。

他说好吧,今天面试就到这里,回去等通知吧。

再次注意!我是比较注重细节的,说了声谢谢,并友好的和他握了手。

出门问留一手大神,最后在五楼,他说面试官直接让他三面。可以先去吃个饭,我想我应该是跪了,结果真的跪了!这两天都是只睡了五六个小时,昨天晚上看标哥给的算法看到两点,居然一点算法都没问,感觉一面和二面完全颠倒了嘛!


最后,总结一下:

1.“不要被一个石头同时绊倒两次”,其实很多面试和笔试的问题都是很相像乃至相同的,每次面试或笔试完后把自己没答出来或不会的再想想或者网上找找,没准过不了多久,你绝会再次遇上它。

2.夯实基础,不要去揣摩面试官可能面试什么,这取决于他的风格,所以打牢自己的基础才是王道。

3.有时候多做一些尝试,万一成功了 呢!就算不成功,也算是积累经验,为下次铺垫。你的基数大了,命中率就高了。

最后,虽然没有成功,自己还要再继续下一个目标。也希望毕业季的大家都能找到满意的合适的工作。

相关文章
相关标签/搜索