您的位置:首页 > 职场人生

[2017/06/02]腾讯后台开发实习生面试总结

2017-06-02 20:32 435 查看
————————–6月2号更—————————–

现在才被面试,都是因为自己zz。。四月份网申的时候写的远程面试,忘了改面试地点,于是成功GG错过面试。谁知五月份的时候超凡学长突然告诉我鹅厂有实习生补招,要了我最新的简历。本来觉得没什么希望,结果前几天突然收到了面试电话。截止现在前两面都过了,来趁热写一写面试总结。

一面

一面其实略GG,很多会的东西都回答得不是很好。面试时长大概20min。面试官上来让自我介绍,于是把自己简历上的东西大概都说了一下。

这一面问的主要是项目,我大概介绍了一下自己的网盘项目和http下载客户端,面试官针对我的项目提了几个问题。有一些问题以前从来没有想过,于是便现场给出了回答。其中有一个问题:如何在不加锁的情况下实现多线程安全访问一个数据结构?当时没有答上来,后来想了想,应该使用观察者模式,一个线程负责修改,剩下的线程读取就行了。优先级用读优先或者写优先。因为项目用到了mmap接口,面试官就问了我为什么mmap读写文件比较快,我就回答了内存映射。由mmap引申到了共享内存,问我有没有用过,我说用共享内存写过cache。同样被很仔细地问了如何找到内存,如何设计cache。被问到如何查看共享内存,结果忘了那个命令是什么。。其实就是ipcs查看和ipcrm删除,然后就各种尴尬,回答用过但是想不起来是什么了。还好面试官没有继续问下去orz。

问完项目,面试官还问了一道大数据处理题:如何从一个巨大的文件中找出前500大的数。这个答得不是很好。

接下来,面试官看我简历上写熟悉C++,便问我有没有用过标准库,知不知道底层实现。于是我便将map,set的实现以及vector的动态内存分配回答了一下。

还有一道判断两个链表有没有交点的题。给出的答案是把链表头尾相连,转化成判断是否有环。面试官表示太麻烦,问有没有更好的思路。其实答案很简单,直接判断最后一个结点是否相同就行了。当时太紧张,面试官提示了一下,仍然没想到这个答案orz。

最后,又问了我家是哪里的,为什么想来深圳。又问了面试官对我的建议,以及他是哪个部门的。一面就这么愉快地结束啦。

一面完后二十分钟,超凡学长帮我查了查,说我过了。能过真的是奇迹。。因为觉得这一面答得不怎么好。开心的同时就去准备二面了。

二面

这一面比我想象的要快得多,下午突然接到了电话。这一面面了40多min。上来就先问了专业,自学经历,以及实习经历。接下来问了几个项目相关的小问题,比如登录和注册的实现,秒传是怎么实现的,SHA-512算法和MD5的区别和实现原理,断点续传的原理。然后又问一道大数据处理题,就是一面答崩的那一道。我的回答是:分块,多核并行计算,用小顶堆保存数据。面试官又问,如何从这么多数中快速找到一个数,我说用bitmap。但是。。由于对内存的数字没有概念,所以以为这个占1亿bit(100多M)的数据结构内存装不下(其实是可以的orz),所以回答要设定多个bitmap。其实是不!!用!!的!!面试官见状又追问,知不知道Linux下一个程序最大能开多少内存,结果我就懵逼了。。只好老老实实回答不知道(其实32位是2^32byte,64位是2^64byte),学过的东西都忘了Orz。面试官也不再追问,转去问我其他问题。

接下来问了计算机网络:说说你对TCP和UDP的理解,TIMEW_WAIT的作用;以及操作系统:说说你对进程和线程的理解(这一个问题我是从多进程和多线程服务器的角度来回答的)这些题答得都不错。

因为简历上写用过Linux系统,所以面试官问了一些Linux下的常见命令:如何查看CPU和内存使用率(top),如何查看内存泄漏(top命令查看,看哪个进程开启后内存使用率一直攀升),如何查看网络状态(netstat)。

虽然问题很少,但是面试官问得比较深且发散。问得深一点我就答不上来了。还有一点,对于一个技术,面试官总会问这样做有什么目的。比如为什么即时通讯用UDP不用TCP;为什么加密要加盐,和不加盐的算法有什么区别;平时对这些思考得比较多,所以大部分很容易就答上来了。

最后问了一些个人问题,比如为什么不考研,你认为自己有哪些优点和缺点。问完这些便结束了面试。

最后还是拜托学长帮忙查了查,状态已经是hr面了。

哈哈哈各种开心!!坐等hr面!!

————————–6月9号更—————————–

三面

完全没有想到会有第三轮技术面。。某天早上一面面试官加了我微信,当时超级开心,还以为稳了。没想到前辈告诉我,又加了轮技术面,是公司那边的人面的,有难度,让我好好准备。当时我就傻了。。为什么还有这种操作啊喂!!然后就开始苦逼地准备三面了。

三面比我想象中要快,第二天下午就收到了面试电话。面了40min。面试官先让做了自我介绍,然后开始问项目。第一个http下载客户端,陈述完基本过程之后,面试官问了我对http协议有哪些了解。就把get和post,状态码回答了一下。面试官又问我http报文头组成。我:喵喵喵?之前还复习过一次,但还是完全忘了orz。面试官说,你是不是没看过报文头。我只好不好意思地说年代太久远,忘了。。面试官又问,那你怎么把头部和后面的数据分离。就回答了两个/r/n。网盘项目问了LRU具体是怎么实现的,还有SHA-512加密算法的安全性和自定义协议的安全性(直接明文没有加密所以不安全)。还问了C++网络库的封装,就回答了一下。

接下来问了看没看过epoll源代码,我说看过一点,然后面试官说,你给我讲讲吧。我:喵喵喵?去年看的,又忘了。。只好答曰忘记了,然后把基本的实现原理说了一下。又问到了epoll的两种模式(ET,LT),二者的区别,ET模式下怎么判断读完(return -1 + EAGAIN)。还问了三次握手各个步骤,为什么三次握手。这个回答得有点翻车,翻在第一次发SYN的序列号是什么。我记得是随机生成的初始包的序号,回答后被面试官否认了,让我再回去看看(查了查发现好像就是这样?不知道错哪里了qwq)。还问了tcp的拥塞控制。又问了问进程间通信的方式,特别问了共享内存。这个问题一面gg过,所以之后自己看了看,答得比较顺利,把ipcs和ipcrm命令也回答上了。

因为简历上写了C++,所以面试官问了下C++相关的知识:面向对象的特点(继承封装多态),又问我多态怎么实现,我就回答了通过虚函数和继承实现,顺便回答了虚函数的实现原理。还问了virtual关键字的用途,也回答了。最后一个问题,dynamic_cast和static_cast的区别和用途,没回答上来。。只说和类型转换有关,忘记怎么用了。

接下来问了大数据处理题:有100G数据,每条都是访问腾讯主机的ip记录,让找出访问次数最多的ip。还是文件分片+多核计算+set保存ip。

面试官问了最后一个问题:平常看哪些书,然后我就把看过的技术类的书名都报了出来。面试结束。

面完就超级忐忑地等结果。。每隔几分钟就刷下公众号看面试状态,感觉整个人都要瞬间爆炸。结果五点半左右突然接到了一面面试官前辈的微信,通知我三面过了,下一轮就是hr面了。哈哈哈哈瞬间超级开心,紧张的心情一扫而空。

等hr小姐姐的电话!!

————————–6月10号更—————————-

四面

没想到hr是个小哥哥。。这面基本闲聊,问了问家乡,家庭情况,独生与否。关于专业这块聊得挺多,包括当初为什么要选郑大,为什么选择这个专业,为什么放弃生物,怎么喜欢上的编程,为什么不考研。还问了互联网知识更新换代比较快,加班多能不能接受,答案当然是ok的。hr说女性更多会选择测试等比较轻松的岗位,问我怎么看。我就blabla一堆这是个人选择问题,别人的选择我当然是支持的啦,但是自己喜欢所以选后台开发。还问了大学期间做的比较成功和失败的事情。最后问了问业余爱好,考试结束时间。

最后的最后,是尴尬的私人问题时刻。在问过是否有亲属在腾讯之后,hr向我抛来个大问题:

hr:你有男朋友吗?

我:呃。。没有

hr:你们专业应该男女比例比较均衡,所以你为什么没有男朋友?

(你为什么没有男朋友…没有男朋友…男朋友…)

目瞪口呆.jpg

内心受到了1w点暴击伤害的我就扯了一堆有的没的,大概就是心系学习无心恋爱什么的。

然后这次面试就愉快地结束啦。。hr说下周三下午给答复。

问了问前辈,他说基本稳了,有消息会给我通知(开心脸

等结果中qwq

————————–6月14号更—————————-

已拿到offer,撒花!

b408
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: