腾讯实习生面试总结

按照腾讯的速度,昨天二面,晚上没有收到HR面的通知,估计面试已经挂了。在宁波和上海之间跑来跑去都累死了,写写面试的心得,也算鼓励一下自己。
从20号去上海参加笔试,笔试内容保密,我也就不透露了,不过相对阿里的笔试来说简单了不少,不过有几道大数据的题,我表示一碰到大数据就头大,连一个字也没写,还有腾讯的试卷挺搞笑的,出了很多小问题,上面写的50道选择题只给了25道,不过感觉难度倒是挺适中的,虽然做的时候很多都忘了。
一面(70分钟):22号接到了23号下午2点去上海神旺大酒店初面的短信,我提早了一个小时到了酒店,签过到后,就一直在准备自我介绍了,这个我一直都说不好,不知道应该怎么说。2点整的时候,就叫我面试了,面试官挺年轻的很nice,一对一的面试,我先简单的介绍了一下自己,然后面试官叫我说说项目我把自己的研究生阶段做的两个项目说了一下,重点说了和我应聘的PC客户端开发职位相关的项目,面试官感觉还可以吧,然后问我最近在读什么书?我都不知道该怎么答了,我读过的书倒是不少,经典的大部分都读过,但一般都是只读大概,不求甚解的那种。我然后随便说了一个我正在读的一本《windows核心编程》英文版的书,以前读过一边忘得基本没了,这几天是重新看看,只看到了第四章process,面试官问进程间如何通信,我说可以通过本地回环,消息队列,命名管道等,
面试官追问命名管道可以通信,那你知道匿名管道吗,匿名管道没有名字它是怎么通信的呢,
     我。。。不知道,面试回来查了一下,匿名管道只能在父进程和子进程之间通信,子进程将匿名管道的内核对象继承至父进程,这样就能通信了。
面试官看问不下去了,就问你知道临界区吗?
我答说,临界区是互斥同步方面的一个概念,比如进程可以通过mutex,信号量等同步,我记得核心编程里讲有一个临界区是用在线程之间用的。
面试官追问那这个和互斥体哪个的效率高?
我说我想了很长时间,线程之间的那个高,因为线程之间的互斥实在用户态,它不需要转到内核态(我好扯啊,又给了面试官追问的机会),
面试官问那用户态到内核态要做那些耗费,
我。。。。忘掉了(面试后查到,用户态通过系统调用进入内核态,需要通过中断转换),
面试官问用户态有栈,转内核态后是不是用同一个栈,
我。。。不知道,好囧,
面试官然后说那一推一下,我想内核态和用户态应该不是同一个栈吧,哈哈这次猜对了,可惜后面猜的很多错了。。。这个问题基本上就结束了。
面试官的另一个问题忘了是在上一个前面还是后面了,关于变量存储地址的,这个我好水啊,刚看了面试宝典,还是忘了,
我答:局部变量在栈,全局变量和静态变量在堆。。。
面试官打断全局变量在堆?嗯。。。不对malloc分配的在对,全局变量好像在程序的数据段。。。面试官藐视的眼神。。。好吧我忘了。
然后问main函数和全局变量的初始化哪个先?
这以前没注意过啊。。。
继续提示:那你推一下
我应该全局变量初始化在前吧,要不然main函数执行了,全局变量不对怎么办
追问不同的cpp文件中的全局变量哪个先初始化?
这我真的不知道了。。。(后来查原来是编译器指定的,也可以程序员自己用#program来手动指定。。。)
面试官开了新话题,字符串复制要注意的问题,我说要检查目标和源指针是否为空,目标缓存区是否足够,应该就这些吧。
面试官那你写一下这个函数。
我写下来
char * strcpy (char *d,char *s){
...
}
面试官:你为什么要返回char *呢?不返还int 比如0表示成功,1代表原指针为空。
我:好像字符串拷贝函数就是这样的,要是我写我会写成返回标识符的,
面试官:那你觉得他为什么会返回char *呢
我想了一会。。。答。。。想不到。。。(和我一样不知道的,自行百度。。。)
面试官如果空间不够会出现什么情况?
我:会溢出,会很危险,比如网络接受数据,假如字符串目标是局部变量,在栈里面有从左到右,或是从右到作压栈的情况,就是_stdcall和ce什么(该打,又乱说)
面试官不对吧,我记得那两个调用都是从右到左。。。
我@#¥%&
他们的区别是std是由系统进行维护,另外一个是由外部调用者维护,你知道printf是什么调用呢?
额,我不知道唉。。。
printf是参数不定的你分析一下
我想是系统自动维护的吧,不对,参数不定应该是由调用者维护的
面试官一脸迷茫的表情,你到底是说哪个。。。
面试官问你会STL吗
我答:vector比较熟,map和set这些不太熟
面试官:那你知道他们的数据结构吧?
我:不太了解map和set,应该是线性的吧。@#¥%&,(回来一查,红黑树只是在算法导论看过,忘得一无所有了,完全不知道。。。),然后我乘机说了一下vector,最后还把size和length给弄反了。。。
面试官,那你知道STL是线程安全的吗?
我不太清楚唉,经过这么长时间应该是安全的吧。。。
面试官:可惜事实不是你想的那样,我发现你知道很多东西,很多是错的。。。
我@#¥%&
前面你说你一般用的时候会查对应的资料,那我最后问你一个不用查的问题,在当项目到后面,怎么去掉那些不用的#include,你知道因为这些会增加编译时间?
我努力的想,已经被面试官虐死了,一点思路也没有了,然后说手动删除,@#¥%&,纯属乱讲。。
面试官:没事你想到什么就说什么,那你怎么知道这个#include没用呢?
我继续想,先把它删掉,看看编译能不能通过,能的话就没用,不同就有用,@#¥%&,好无语的答案,其实我是想这样就可以用一个程序自动检测了。。。
面试官这就是你的答案了吗
(现在想想我应该先问问这个代码我是不是能读,如果能够读的话,这样就可以把调用关系找到然后在判断是否去掉#include,代码最好用源码管理工具管理,防止版本回滚,再不行在使用上面的方法)
我。。。。想不到其他的了
然后一面就结束了。。。。
中间还有问了关于我python的东西,我忘了一些,就不说了。

本来以为没戏了,不过晚上收到了,二面的通知,这下我准备了一下,准备把第一面给面试官杂而不精的印象搬回来,我准备说一下自己的优缺点,可惜二面没把握住机会,我也不知道为什么

24号下午4:30 的面试,我提前20分钟到的吧,不过在4:40左右才让我去面试,不知道为什么。
二面(10分钟) :这个面试官看起来人也很不错。
进去之后,面试官问我,你是?
我叫#¥%,看面试官差异的眼神好像有什么不对,面试官紧接着叫我坐下,上次坐的是椅子,这次成了沙发。
刚坐下,后面又有一个女生来了,不知道为什么这么快,是我走错房间了,不可能啊,我看的门牌啊。算了我也不知道,不想它。面试官叫她等一下。
和一面一样自我介绍,我又是简单的说了一下,说的结结巴巴,接着面试官叫我说一下项目,我看到面试官拿着我给一面面试官的简历,还有上次的草稿,我想一面面试官肯定把我的项目给这个面试官说了一下,就简单介绍了一下,面试官:你写一个冒泡算法吧:
我写:
void bob(int a[],int n){
	int flag=0;
	for(int i=0;i<n;i++){
		flag=0;
		for(int j=0;j<n;j++){//here
			int temp=a[j];
			a[j]=a[j+1];
			a[j+1]=temp;
			flag=1;
		}
		if(flag==0){
			break;
		}
	}
}

我说在here这里可以优化,面试官怎么优化,举了个例子,然后说可以减掉变成j<n-i,
面试官是i吗,我又想了一下是j<n-i-1,然后交换那里也可以优化,不用第三变量
面试官:嗯,可以了,你的工作地点?
我说江浙沪都可以。
你说你家是山西的,为什么不到北京呢?
我妈让我到北京,我不想去,然后我妈也让我到这里了,可能我本科这里读的,这里比较熟,这里风景比较多
你以后的职业规划是什么呢?
我想做PC客户端的编程,我也面了一些其他的公司,比如h3c,但不是我想做的,所以我来面腾讯的PC开发
面试官:你有什么兴趣爱好吗?
就是看看电影,打打羽毛球,然后做一些小作品,比如寝室热水器让它定时开关等等
面试官你有什么要问的吗?然后就over了,本来想说一下优缺点,可惜没有机会了。

二面面的我好不甘心,一点发挥的余地都没有,通过这次面试,也算是给自己的一个教训,要经常复习以前学的,不然会忘很多很多。
想想这次面试不顺利也和研究生的两个自己做错的选择有关吧,第一个是当了班长,我的责任心比较强,所以当我做一件事的时候准会分很大一部分时间给这件事,导致研究生阶段基本没学什么东西,都在用本科学过的东西。第二个失误就是没有选择大数据和云计算,现在所有的东西都是基于云的,没有一点这样的东西,自己的知识总感觉有漏洞
。为自己加油,好好看一本书,打好基础,不然机会来了也接不到。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值