昨天签约拿到了腾讯实习生offer,这是我回复同样参加腾讯实习生招聘的高中校友的Email中的内容,共享一下:
一面是“技术面”
二面是“压力面”
HR面基本是聊聊天,看人这个人性格、意向、好不好合作。
一面问的问题,全是技术问题,如果你学C++,他就问你C++方面的(按你的语言来给你题)
例子:1.new和delete 及 malloc()和free()各有什么功能?有什么区别?
2.try...catch...有什么功能?你了解try...catch...在C++里的内部实现方式吗?你经常使用try...catch...吗?为什么?(这个题,不一定全答上来,也不一定答常用不常用,答得有理即可)
3.给你一个结构体struct T{int a; short b; char c;}; ,请写代码求出c的在结构体中偏移量。(我在纸上这样写的:printf("%d", &(((T *)0)->c)); )
4.inline的功能是什么?与#define有什么区别?所有函数都可以inline吗?
5.C++的模版是在编译的什么时候展开的?(后来我要求提示,他再次问是在#define展开前还是展开后,我给他分析了一下,告诉他说是展开后,这个没看过,但我是这样分析的,应该说对了)
6.给你一个编译好了的文件,全部是二进制代码的,你怎么分析里面某个函数是不是inline的?(我答:反汇编,查看函数被使用到的部分有没有call指令,如果没有则inline)
二面问的问题:从项目入手,面试官一直以怀疑的语气问我问题,“为什么让你做这个项目?”“这个项目实现什么功能?”“你在项目中做哪些工作?”“我想知道,你具体做了些什么?”“你说你做了数据库设计,用的MySQL是哪个版本的?”“SQL的全称是什么?”后面对于数据库的还冷不防地问:“我要知道一个表里面有多少行数据,要怎么查?”(呵呵简单嘛,select count(*) from 表名)
后面叫我写了一个很简单的程序:从如
xxx@xxx.com这样的邮箱地址里取出@和后面的'.'号之间的字符串,我很快写完了,但没检查。交上去十秒就反应过来代码里下标错了。(后来仔细一想还有一处少了break,不过没有机会改了)面试官没有说什么。直接开始下一个问题:后面连着是两个IQ题,第一个题我其实20秒内就给出了正确答案,但面试官的表情让我以为错了。于是我纠结了好几分钟改来改去,最后我调整了一下,淡定地说:“不管怎么样,我还是给你分析一下我的思路吧......”然后就这样答了,把思路说了,但没有说最后确定的结果。(我回来之后才知道我开头说的其实就是对的),第二个IQ题是让我在一分钟内说出十种纸的用法,写字和画画被排除在外,这个答得还算可以。后面又让我设计了一个算法:“给你两份简历,你如何检查里面哪些字是相同的?”,我一分钟之内给了我的解答,但他直接问了句:“你是没学过算法与数据结构这门课吧?”我脸都要绿了,不过顿了顿答:“学了”。后面问一些问题,你觉得人生中最痛苦的事是什么?你觉得你以前一直是挺顺利的吗?这些问题相对轻松。后面留了个机会让我来问他问题,我说:“今天的面试,我的表现感觉很一般,人生主要靠心态,问题我就不多问了。”(其实我已经觉得没机会下一轮了,因为我觉得面试官一直神色严肃,有几处答错还有几分不屑地看着我,甚至有一处直接说“显然不是嘛”,当时压力真的很大)。后来走之前,还说了几句话,问到面试官是广东人,于是我说:“以后我会在广州工作的,我们后会有期吧。”(其实我是想说,这次不过,我下次还会再来的。)
HR面试:基本是个聊天,HR问了我的家庭成员情况,问了我的兴趣爱好,我说我喜欢心理学及传记类的书,并且把我看过的给他说了一遍,里面有一本《谁动了我的奶酪》,刚好HR也看过,小小讨论了一下。后面他问了我看这些书的原因和感悟,我说了挺多,主要是说:原因是程序员压力也挺大的,看看心理学的书可以学习如何面对压力调整心态,感悟,在大家都在拼智商的时候,我比较看重情商。HR告诉了我将被录取的实习职位,我对职位表示满意。后来走之前HR告诉我周五前给结果,还和我握手了。(整个过程,我觉得就是不要紧张,他问什么就答什么,有话题就多聊几句,说自己的想法,表明自己进入腾讯的决心就是了)