2020腾讯视频实习生面试
能获得腾讯视频技术部所给出的实习生面试机会,真的很感激我的一位素未谋面过的学姐。何德何能,能获得腾讯公司的面试资格。那我从获取面试机会到一面和二面开始说起。
腾讯暑期实习生开招,到官网上看了一下,填了技术方向的简历,前三步,都是基本信息,我很快填完,但是到了最后一步,一看我就有些发愁,需要填写学生干部任职情况,奖学金情况,参加比赛的经历以及证明。当时我就劝退了,无奈大学三年没有任何出彩经历。于是我便放下了简历填写,开始摸鱼了。
但是非常巧的是,过了一天,腾讯里的一位小姐姐居然给我打了电话,问我是不是填写了后台开发方向的简历没有填写完整,我说是,于是她问了我在大学期间有没有做过什么项目,都是怎么学习的。我如实回答:大学里面喜欢阅读一些编程书籍,有时候上网上找一些项目做,但都是很简单的项目,使用过spring boot和Vue框架,学过android 开发…blabla之类的。 后来小姐姐说那你把简历给我发一份来,我们给你安排一个面试。于是我赶紧把简历上面的项目附上地址,完善了一下README.md,把简历发送到小姐姐的邮箱里了。
于是便开始了实习生面试。
为了准备面试赶紧开始复习计算机网络,数据结构,认为一面不会问太多的项目,就没有怎么准备项目(我这是大错特错!!项目一定要认真准备!!面试官会问!!)
一面
一面问到的问题:
面试官:我看你项目里有spring,那你跟我说说MVC是怎么个原理
我:Model View Controller。 Model的数据映射到View上面,View的数据改变经过Controller会反馈给Model,Controller用来做一些逻辑处理。(我也不知道对不对)
面试官:你数据库MySQL,说说MySQL的存储引擎
我:只知道两个 Innodb,Myisam。其他的都不知道了。(Innodb表级锁和行级锁,行级锁建立在索引上的 Myisam 表级锁)
面试官:说说mysql有几种索引。
我:外键,主键,blabla说了好多不知所以的东西,其实我也不知道有几种索引。。。。
面试官又问了 B和B+树的区别,B+树查找的复杂度,如果使用B+树,那么 between语句的时间复杂度是多少。
后来又问了问我的项目,比如我的电子商务平台(很low的一个课后小项目)是怎么样的,怎么设计的接口。我说没有接口,直接使用JSP实现的。。。。
然后又聊了聊其他的项目,问我的android 的项目是否打包了,我说是打包了,可以运行在手机上面。
我又说了我的那个东软云医院的项目(课设项目)blabla,所以说要面试,得让面试官有的问才行啊。。虽然我的这些项目经历,跟我们同届的好多同学比起来还是很law的。。
后来开始写代码:
面试官:设计一个二叉树节点吧
心想(那么多leetcode,就算算法不会写,二叉树的节点可是信手拈来啊)
很快写完了
struct Node
{
int val;
Node* left;
Node* right;
Node(int v):val(v),left(NULL),right(NULL){
}
Node():val(0),left(NULL),right(NULL){
}
int freq;//在写插入的时候增加的
}
面试官:写一个插入
我瞬间感觉无助,硬着头皮写,坑坑憋憋的写完了
void insert(Node* root,int val)
{
if(root==NULL)
{
root = new Node(val);
return;
}
while(root->left!=NULL || root->right!=NULL)
{
if(root->val > val)
{
root = root->left;
}else if(root->val == val)//这个是临时加的,如果相等,直接增加节点的频率
{
root->freq++;
}else
{
root = root