腾讯WXG实习一面秒挂凉经
前几天进行了人生中的第一次工作面试,居然一上来就是WXG,腾讯最为核心的部门。不过最后的结果嘛,当然是秒挂了,不过还是得到了很多的经验,能第一次就面试腾讯这样的大厂也算是我的幸运。
起因
本来是去年十二月和室友开玩笑要投实习,随便点进腾讯官网试着投了一份,但是在做完综合评价测试之后一直没有下文。
今年寒假突然看到腾讯招聘微信公众号发布了一个“腾讯实习基地”招聘的信息,应该就是传统意义上的提前批,只要点一下链接就能报名。当时想都没想随手就点了报名。
之后就没当成一回事,直到2月13日晚上面试官突然打电话说明天面试。
收到这个消息首先肯定是激动,毕竟那可是腾讯,互联网人心中的白月光(大概),每个中国网民不得不接触的公司,没有之一。然后就是无限的焦虑,因为自己除了几个lab以外就没有任何准备了,有一个在做的仿github的后端项目也因为过年的原因停滞了很久。
接着只能硬着头皮打开力扣开始刷题,然后看各种小道消息,看面试题等等。我还跑到外面溜达了一圈来释放心情,但是还是很紧张。
晚上直接焦虑地失眠了,真的失眠了,虽然我平时也经常熬夜到晚上四五点,但这次真的是在床上躺着就紧张地睡不着觉。
面试
虽然打算是下午好好复习的,但是说实话根本静不下心来,毕竟我都爽玩了一个月来着。
面试时间是2月14号,情人节,一想到这个面试官在这个日子的晚上居然还要工作,就不得不感叹起来。
到点进入视频会议,面试官开始打招呼,虽然提前了十分钟到但是他也就直接让流程开始了。
做题环节
上来就是三道题
-
实现快速排序
-
括号合法性检查,要检查嵌套关系是否正确,比如大括号
{}
必须在小括号()
外部 -
ip地址转换,从点分十进制到32位整数
上来我先做第三题,因为不适应腾讯会议自带的IDE弄了十分钟,这个IDE居然没有自动测试,能否通过全看面试官。然后我调整了半天,检查来检查去感觉没问题,但面试官一直没说通过所以我就一直在尝试。最后还是问了面试官才知道可以直接开始其他题才结束这个题
然后就是第一题,非常糟糕的回忆,我居然会连快排都写不出来。前几天明明在写力扣的时候随手都能搓一个来着。下面是当时写的代码,非常糟糕的代码,错误主要在交换写错了,只用了右指针来进行交换,正确的做法要使用左右两个指针一同交换,然后将中间值放在最中间。
void quick_sort(vector<int> &vec, int start, int end) {
if (start == end - 1) {
if (vec[start] >= vec[end]) {
swap(vec[start], vec[end]);
}
return;
}
int leader = vec[start];
int rightp = end - 1;
for (int i = start; i <= rightp; i++) {
if (vec[i] > leader) {
swap(vec[i], vec[rightp]);
rightp -= 1;
}
}
quick_sort(vec, start, rightp + 1);
quick_sort(vec, rightp + 1, end);
}
接着就是和快排死磕,然后就没有然后了,半小时结束,这时我认为这场面试就已经进入垃圾时间了。。。
项目提问
我简历上写了三个项目,CSAPP的lab,6.S081的lab,基于6.824的lab改的ShardKV
不出所料果然是看中了Raft才会通过我的简历
先让我介绍了一下Raft,我问能不能打开源码进行讲解,结果面试官拒绝了。这时我才意识到我没有提前准备Raft相关的发言稿(我之前觉得如果能对着代码讲就不需要发言稿)。所以我只能按照对Raft论文的印象,从选举开始讲了Raft,基本上是想到哪里就讲到哪里。感觉表现的十分糟糕。。。
然后提问了几个Raft相关的问题,都挺简单的,问了下Raft如何选举,如何避免脑裂问题,Raft的一致性等等,问的不深,感觉面试官也不咋懂Raft,问的都是些公式化问题。
接着问了另外两个lab做了什么,但是没有让我详细展开,我感觉这个时候我应该要主动引导话题的,可惜我没做好。
八股文
问了几个领域的小问题,不知道为什么我的八股文问题都挺简单,可能是面试官着急下班陪女朋友了,反正也已经打算挂我了。
OS:
-
当点击程序时,发生了什么
我主要从系统调用的角度讲了下,fork->execve->读elf->设置虚拟空间->设置返回PC->…
-
当程序运行时,发生了什么
这里我感觉我没有理解面试官的问题意思,后面我仔细想了想应该是想让我说动态加载之类的。
我的回答说从_start()开始,设置初始栈空间,然后调用真正的main函数。退出时调用on_exit(),执行回调函数,然后退出。应该是偏题了
计网:
-
TCP,UDP区别
经典八股了,不过我没有背过,只按自己的印象回答了一遍
-
TCP的三次握手
也是经典八股,刚好之前有看过。就从确认双方的发送接收能力的角度讲了一遍
-
UDP的特点,适用范围
计网的东西就是很无聊来着。。。
-
。。。
剩下的有点忘了,反正都是计网经典八股
C++:
问了下平时使用什么语言,我回答C/C++,C#,go,python。
面试官就以C++提问
-
多态是如何实现的
虚函数表,也是C++的老八股了。然后我详细讲了下虚函数表的实现机制。面试官追问虚函数表存放在哪个位置,还好我平时水知乎,知道这个是未定义的,根据实现的不同有的在只读区,有的在对象中
-
继承类的析构问题
问了下面这个程序输出什么。有点久没写CPP,忘了好多,这种问题我原本是秒答的。
答案是只输出“destroy A”,因为A的析构函数没有被标记为virtual,而pa指针此处是A*类型,只会调用A的析构函数。本来我也是这么回答的,结果面试官多问了几句观点动摇了,说会先输出B然后输出A。唉我去这面试官怎么这么坏。
好吧本质上还是自己的问题,下次别犯了。
#include <iostream> using namespace std; class A { public: ~A() { cout << "destroy A" << endl; } }; class B : public A { public: ~B() { cout << "destroy B" << endl; } }; int main () { A *pa = new B(); delete pa; return 0; }
反问环节
说实话没啥想问的,因为我知道已经烂了。就问了几个公式化问题,比如有无转正(有)等。然后还厚颜无耻地问了面试表现,当然面试官不会正面回答,只是客套的说基础不错(然后就被秒挂了)
总结
这是我人生中第一次参加工作面试,之前的面试无非都是一些小打小闹,这次才算得上是真正意义上的面试。
虽然从结果上来看是失败的(不过不会真有人想第一次面试拿下腾讯wxg的实习offer吧),但还是收获了很多。虽然我文中稍微吐槽了几句面试官,我感觉他人还是不错的,能够给我这样的一个机会我就已经很感谢他了。
好吧我承认被淘汰的感觉确实不好,而且腾讯还有面评记录,这次糟糕的表现可能会导致后续其他部门的面试变少(事实上我也没有再收到面试邀请了)。
这也是我寒假继续迷茫的一个报应吧,这个寒假虽然说要准备就业的事但大部分时间还是在床上躺平。。。
我决定从今天开始改过自新,从新做人!立帖为证!!!
带我走吧鹅厂😭😭😭,一晚鹅厂面,一生腾讯魂!!!我再也不黑腾讯了!!!