腾讯IEG后台开发面试总结

发表于:2019-4-24 14:52

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:菜鸡儿的架构师之路    来源:CSDN

#
腾讯
#
面试
分享:
  很幸运,这次春招内推面了三家公司,腾讯IEG,华为Cloud BU,蚂蚁金服-支付宝,全都拿到了offer。这三篇博客是按照offer的时间顺序连着的,有兴趣的话可以看我其他两篇博客。
  今天是3月11日,腾讯IEG技术一面,电话
  2019年3月11日 星期一
  本人浙江大学软件学院研一研究生。
  当时投递岗位的时候没有看清要求,写着后台开发岗,招C/C++/Java,果然越靠前越重要。。本来想投的是Java岗,奈何鹅肠后台C++偏多。结果面试的时候面的全是C++和Linux,Java一点没问。全程大概25分钟,总结如下。
  面试内容和我的回答
  先自我介绍一下吧
  好,我叫xx, 目前在xx,本科在xx做过xx,在xx实习过,实习期间xx。
  你在本科的时候参加过xx的比赛,在那个比赛中,你扮演什么角色?
  我在那个比赛中作为队长,协调团队的工作,同时作为比赛项目的主力后台开发。
  你觉得这个比赛项目中最难的一点是哪里。
  我觉得是微信服务号中发送弹幕消息,一开始不知道怎么实现,想法很简单,后台用一个消息队列缓存用户的消息,使用ajax轮询的方式访问后台的消息队列,利用js显示在网页。后来觉得效率太低,会造成网络拥堵,采用WebSocket与后台服务器建立连接,利用sessionId完成全双工通信。
  你知道WebSocket是怎么建立连接的吗?
  好像是通过http建立。然后,不清楚了。
  在WebSocket通信的过程中,遇到过什么问题吗?
  额,有时候消息会发送失败,显示断开连接。但是不知道为什么。
  你的项目是部署在什么系统下的?
  Linux系统。
  Linux的进程间的通信有哪些方式?
  信号量机制、共享内存、管道、共享文件
  Liunx下如何查看共享内存的情况呢?
  这个。。我不清楚。
  嗯,你知道Linux下有哪些socket模型吗?
  Socket模型?
  就是epoll,poll,select这些。说说他们的原理,以及epoll和select有哪些不同点。
  嗯,epoll,poll和select都是linux下I/O多路复用的实现,可以实现单线程管理多个连接,select是基于轮询的,轮询连接的状态,返回I/O状态,poll和select的原理基本相同,只是poll没有最大连接数的限制,因为它是基于链表的,而select是基于数组的,有最大连接数的限制。epoll和那两者的区别是,epoll不是基于轮询的检查,而是为每个fd注册回调,I/O准备好时,会执行回调,效率比select和poll高很多。
  select的最大连接数是多少?
  在32位的机器上貌似是1024个。
  在windows系统下多少?
  这个我不清楚。
  好的,没关系。linux下如何查看某个端口的占用?
  用netstat + grep名命令。。
  你知道TCP和UDP的区别吗?
  嗯,TCP是面向连接的可靠传输,UDP是尽最大努力传输的不可靠传输。
  你在玩王者荣耀的时候,请问在对战过程中,用的是UDP连接还是TCP连接?
  应该是UDP吧,因为对战的时候网络传输的大部分是玩家人物的状态和位置,不需要时刻知道,有丢包的可能,所以有时候人物会瞬移。。。(胡乱猜,后来想想应该是TCP,不然别人打你一下,你这边网络不好,刚好丢包了,不就不掉血了吗哈哈哈哈,这也是乱猜的)
  嗯,问你一些C++的问题。你用过C++的STL库对吧,有哪些容器?
  map,vector,list,queue,set…
  你知道他们分别是如何实现的吗?
  知道一些,首先他们都是根据添加动态扩容的,vector是连续存储,也就是数组的方式实现的,list内部存储结构是链表,set是有序的集合,内部的数据结构是红黑树,map内部数据结构也是红黑树。(答得很笼统。但是我是比较清楚的,因为这部分看过Java的STL源码,原理应该是差不多的。)
  嗯,程序的内存模型分为那几个区域?
  堆内存和栈内存。
  那你知道栈内存和堆内存是用来干嘛的吗?
  栈保存函数的局部变量和函数返回信息,堆内存用来保存类和对象。
  那通过malloc申请的内存是在哪个区域的?
  堆内存。
  那你知道申请内存有两种方式清除,free和delete,你知道这两种方式的区别吗?
  嗯,free是清除malloc申请的内存,而delete是清除new出来的内存。
  嗯,那你知道如果用free去清理new出来的内存会产生什么问题吗?
  不清楚。
  好的,没关系。你知道,Java和C++的最主要的区别是什么?
  第一点是,在C++中,支持面向过程,函数可以与类隔离单独存在,而Java的函数必须在类里面。第二点是内存管理,C++需要程序员自己去管理内存,而Java是通过垃圾回收自动管理内存。(关于多继承和单继承的区别忘记回答了。。接口也忘了回答了,有点紧张)
  你知道static关键字是用来干嘛的吗?
  在一个类中,类成员和方法如果用static修饰,可以直接通过类名去访问。它可以作为多线程的访问控制。。(瞎j8回答)。
  现在有一道题目,你需要思考一下再回答。一个机器上有一个超大的文件,里面有4G个32位int型整数,而机器的内存只有512MB,我需要获得它的中位数,请问应该怎么办?
  我想一下(中位数?不都是最大或最小前K个吗?中位数怎么办?一分钟之后。。)我想不出来,但是一定要先把文件分块(这不是废话吗??),然后应该可以用堆排序的方式,但是我暂时想不出应该怎么去做。
  好的,没关系,你可以回去再看一下应该怎么做。时间差不多了,今天就到这儿吧,具体结果后面会通知你的,再见。
  好的,再见。
  15分钟后。
  面试官打电话过来。
  喂? xx啊,你现在是研一是吧?你什么时候毕业?
  嗯,2020年毕业。
  2020年6月份对吧。
  是的。
  好的,我这边再确认一下。
  好的,请问。我这次的一面能通过吗?
  这个嘛,要根据综合情况考虑的,现在还不确定。
  好的,谢谢。
  一面总结
  刚面完,心情有点失落,感觉有点崩,其实这个Cpp是面试,而我想面Java岗位,但是不排斥Cpp,还是很想去鹅肠的。没回答上来的问题我后面会继续补充。还是需要多多沉淀,多多总结。
  腾讯IEG二面和三面的大致流程如下
  二面(技术面),视频面 2019年3月12日 晚18:30,腾讯IEG
  引用部分是面试官
  初次见到二面的面试官,哇,长得和我心目中技术大佬的样子一模一样,微胖,圆脸,秃顶,看起来三十岁左右。。
  我:你好。
  你好,你能看到我吗?
  嗯,可以的。
  我第一次用这个系统(牛客网的视频面试),以前没用过哈,呵呵:)
  嗯
  你先自我介绍一下吧。
  好的,我叫xxx,目前是xxx的一名研一的学生,本科在xxx,计算机专业。本科期间,做过xxx比赛,拿到了一等奖,大三参加保研,然后去了一家区块链互联网公司实习了7个月,期间做了balabalbalbal。
  嗯,好,听你说的项目,你主要Java这块是吧
  是的(我就知道)
  我们这边主要是左C++后台开发
  我了解的,我C++也有一些基础,本科有相关课程,只是没做过网络应用。。做一些算法项目(我这里不应该说"项目"。。)。
  比如?
  额,其实就是一些算法题目,数据结构相关的。
  Spring Cloud 了解吗?
  写过demo,没用来做过项目,它主要包括balabala…(我自嗨起来了,面试官并没有多大兴趣。)
  嗯,那我先说一道算法题吧,怎样判断一个链表有没有环,你把代码打出来。
  (牛客网的系统是可以实时打代码的,面试官那边可以实时看到) 好的。思考中。(这道题好像以前做过,很短的代码,可就是想不起来了。链表有环不就是链表的尾部指向了链表的中间?这样的话遍历一遍链表,把遍历过的节点都放进一个set, 放进去之前查看set中有没有该节点,有的话就说明有环。嗯,开始搞。) 噼里啪啦…… 三分钟后。好了。
  你给我讲讲你的思路
  balabalbalba。
  嗯,这样做可行,有没有其他做法,不用set?
  思考一分钟后。我想不到了。(我知道还有一种,确实看到过这题,忘记了)。
  提示你一下,在一个环形跑道上,一个人跑的快,一个人跑得慢,两人同时跑,最后跑得快的再次和跑得慢的相遇了。
  哦哦哦哦哦,我知道了!设置一个快指针一次往后移动两个,设置一个慢指针一次移动一个,如果在某次移动后,快指针等于慢指针,说明有环。(这个提示勾起了我的回忆。。想起来了)
  嗯,再说一道数学题,不需要打代码,说出你的思路就行了。有一个圆柱形的水桶,一只蚂蚁从外壁A点爬到内壁B点,求蚂蚁行走的最短距离。
  好的。。这问题怎么又如此熟悉。。总觉得在哪里看到过哈哈,思考一分钟后。。。我知道了,建立一个三维坐标系,先求出A到B的直线在水平面上的投影距离L,由圆柱水桶的半径R和L可以求得A点到B点沿水桶曲线的投影圆弧长度M,A到桶顶的垂直距离为H1,B到到桶顶的垂直距离为H2,最短距离等于根号下M平方+(H1 + H2)平方(勾股定理)。
  嗯,挺好的,大概就这么个意思。看你简历上有几个项目,你给我讲讲这个xxx项目
  好的,这个项目是我在实习期间做的,它主要功能是balabala…技术栈主要有balabalba…(讲了两三分钟吧)
  感觉你这个就是用别人做好的工具套一层壳啊。
  不是的,自己实现的部分也很多,比如balabla…
  你之前在区块链公司是吧,你对最近的一个新词“数字票据”怎么看?
  数字票据,就是依据区块链不可篡改的特性,把实际的票据数据上链,保存在区块链节点上,主要用于供应链系统中吧,让供应链系统中每个部分的企业之间相互信任。(瞎几把解释中。。我也不怎么懂)
  其实它这个和分布式数据库系统,也没啥差别。
  额,是的(迎合),我觉得区块链技术本身就是分布式系统 + 不可update的数据结构 + 加密算法。本身确实没什么新的技术。
  嗯(面试官这个时候也没啥好问的。。感觉也是第一次面试?) 你平时除了学习之外有啥爱好嘛?
  (这是凉了吗,问这个了就?)看看电影,听听音乐,写写博客。有时候会和室友一起出去骑行之类的哈哈哈。。。游戏嘛,以前喜欢玩,现在觉得有点浪费时间,就不玩了。(当时我不知道是腾讯互娱的面试,随口说自己不喜欢玩游戏。)
  好吧,今天面试就到这儿,面试结果后面会通知的,再见。
  再见。
  二面总结
  感觉面试官不经常面试,没有问几个技术问题,也可能是我不太用C++,他也不知道该问什么。不过,在这里说一句,项目经验很重要!!项目经验很重要!!项目经验很重要!!,就算没有做过实际项目,也要自己完成一些个人项目,不然任何大厂的二面基本都过不了,二面主要问项目和对技术的理解,面了三个大厂,基本都是如此。
  三面(HR面) 2019年3月21日 下午15:30,电话面
  其实我以为我已经凉了,因为二面结束和HR面之间隔得太久了,9天时间,没有任何通知,官网上的状态一直是复试。没想到突然给我发了面试邀请。
  喂?你好,是xx同学吗?
  啊,是的,是我。
  我是腾讯IEG的HR,首先恭喜你经过层层甄选,通过了我们前面两轮的面试,我这边想对您做一些深入的了解。你先自我介绍一下吧~
  好的,balabala(和前面一样)。
  你说一个你觉得最有成就感的事情吧。
  好的,是在本科时期拿了比赛一等奖,balabala。
  你说你在这个项目中是作为项目经理,你怎么完成项目经理的职责呢?
  确定项目需求,讨论实施方案,制定阶段计划,人员任务分配,代码review,代码管理。(大概从这些角度回答的)。
  你觉得在这个项目中的亮点或难点有哪些,怎么想到或怎么克服的?
  亮点嘛,balabala,难点嘛,balabala,查阅资料等等
  平时你是从哪些渠道学习新技术的?
  技术博客,CSDN啊,掘金啊之类的,还有一些linux开发社区,发现一个新技术后,如果感兴趣,会查找它的文档深入理解并自己写例子,balabala
  你觉得你的优点有哪些,缺点有哪些?
  优点嘛,就是专注力比较强,通常想一个算法问题可以想很久。喜欢钻研新技术。缺点吗(注意主力停顿几秒,很关键)
  是太优秀了没有缺点吗?呵呵呵
  缺点就是有时候太喜欢一个人独处,觉得自己一个人做事比较有效率吧。所以有时候不能很好的融入集体。
  嗯,其实这也不算缺点啦,很多人有时候都喜欢独处,只是为了获得一个放松的状态。
  嗯嗯
  那你觉得你还有哪些地方可以提升自己的吗?
  这个嘛。balabala。
  你对工作的城市有什么要求吗?
  北上广深,加杭州,都可以的,我本硕都在杭州读的,比较适应杭州的生活
  哇,都是大城市哈,除了腾讯之外,你投了其他的公司吗?
  嗯,有的,投了华为和阿里。
  那如果华为、阿里、腾讯都给你发了offer,你怎么选择呢?
  这个嘛,要根据多方面来看的,首先是部门业务的前景,其次是转正的概率,再次是薪资待遇方面的比较,因为腾讯是第一家面试的公司,其他两家具体的还不是很了解。
  嗯,好的,你有几个兄弟姐妹啊?
  我家里就我一个,我是独生子哦。
  这样啊,那你父母同意你来深圳发展吗?
  他们不怎么管我的,知道我不会走歪门邪道,对我很放心呵呵。
  你有亲戚家属在腾讯工作嘛?
  没有的,据我所知没有。
  嗯。你身体健康方面有没有什么需要提前说的地方?
  没有的,我身体很健康呵呵。
  好的,今天面试就到这里喽,面试结果会在7个工作日内通知你的,请保持手机畅通,再见啦~
  好的,再见。
  三面总结
  其实三面就是聊家常而已,HR小姐姐很好。我个人觉得HR面就是看你的语言表达能力,以及你的事业规划、人生观、价值观的一些了解,不是压力面,只要放稳心态就行啦!
  三面下来感觉腾讯实习生的offer没有想象中的难拿,有一定的基础和项目经验,应该都有面试的机会。
  
     上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号