字节跳动与腾讯实习面试总结

此刻,腾讯offer已经下来,字节跳动也拿到口头offer。我的春招总算到达尾声,结束了长达一个多月的0offer状态。这是我第一次真真正正找工作面试,也是第一次面大厂。前期已经经过了长达一年的知识积累,和近两个月的知识梳理、刷题,勇敢地投出了第一份简历。本来先投的字节跳动C++研发实习,不到一周就被通知面试,当时的心情既激动又紧张,于是又抓紧时间临时抱一下佛脚,搜一大堆面经,并逐条问题写上答案,刷题也刷了200道。面试之前觉得自己准备得差不多了,但是真的去面试的时候,还是非常紧张,很多问题记得答案,觉得自己还是表达得不够充分。甚至有一些没有准备到的问题,这里还是不得不给面试官点个赞,他会引导我往正确答案上答,但是我能不能意会到又是另外一回事了。字节面试重头戏还是手撕代码,每一面都有,而且难度还是hard。这让我措手不及,因为平时刷题都是刷中等及简单的,hard的题目刷得比较少,很多都跳过。幸好一面的题目不至于一点思路都没有,虽然写出来的不是最优的,但是面试官还是放我过了。事后我都会把编程题优化到最优的程度。经过这一面,吓得我赶紧去刷刷困难的题。二面在扯项目,项目中有很多点我在写的时候没有想那么多,面试官会挖掘出很多场景让我回答。说实话我最怕这种问题了,因为我觉得自己的经验还是很少很少,甚至有些场景根本不知道是怎么一回事。这里又要赞一下二面面试官,他总是很耐心地引导我,印象最深刻的是:有一个客户端send数据的场景,对端down掉了,在对端重启之前,你怎么保证客户端的send不会一直阻塞在那里?我一开始没啥头绪,我说用个非阻塞IO吧,面试官不满意:要是发送缓冲区一直都没空间,你一直非阻塞send也没用啊,还是会不停地调用这个send,然后返回,又调用,又返回……想想还有什么办法?emmm…如果发送缓冲区有空间的时候能通知到用户就可以了,应该通过一个内核通知到用户空间的方式……具体什么方法不清楚额~面试官:好吧,谈谈你的项目,是服务端吧~客户有数据发过来的时候,你是通过什么方式得知要去读出来的?我:epoll(脑子抽了现在才想到?)。对啊!客户端也可以用epoll做事件通知吧?发送缓冲区有空间就可以写就绪了,这个时候就通知到用户去写了。之后他也不再纠缠这个问题了,不知道是我答对了还是他不想再问了=_=……最后整一道回溯法的题目差点没搞死我~三面被鸽了两次,太难了。中间就面了两面腾讯,⼀面依然是比较基础,编程题也不难,倒是被问到一些大数据处理的问题,还有随机打乱算法(貌似腾讯都会问这种?),这个没有准备过,幸好也不要求实现,说一下思路就行。但是面试官稍微深挖一下就答不上了,幸好面试官不为难我呀,赞赞赞!基础问题基本都能答得上来,只有个别遗漏的点。最后面试官貌似也比较满意,让我关注下一步流程(这是暗示我通过了?)二面面试官貌似挺有趣的啊,与其说是面试,不如说是聊天,就聊聊学了什么东西,看过什么书?Linux proc?有没有用过gdb?怎么测试你的项目?有没有尝试优化?用过什么测试工具?怎么设计负载均衡?说实话这个问题涉及我的知识盲区,我就随便扯了一下吧。幸好面试官大佬还是很友好的。感觉大厂的大牛真的很kind,不会像我想象中牛逼轰轰的样子。面试通过后我还找到了二面面试官的联系方式,请教了更多问题,他真的会很耐心地解答啊!(此处点n!个赞)腾讯是后来才投的,走流程竟然快过了字节,看来字节三面总监加班真的猛啊,害怕~终于等来字节三面,三面不怎么问基础了,项目也不怎么问了,全程搞代码。给了两道代码挑毛病题,第一题是编译链接的问题,但是当时想不到连标准库都会链接出错?就直接说不知道了(后来才查了一下这是一个静态编链的问题,gcc --static,static选项避免使用动态库所以报了“未定义引用”),看来编译原理这方面还是要加强啊!第二题是关于fork的,看代码推测总共有多少个进程,哎,还是差一点点没答对。然后就是两道编程题了,第一题也是类似大数据处理吧,几十万个ip里查找一个,我用了bitmap,面试官不让写完,问一下思路就下一题了。两个数组和的topk问题,这道题虽然没刷过原题但是思路上觉得是用优先队列实现(Leetcode有类似题目)。好吧,最后只有这道编程题算完完整整答对。三面过得很快,很多问题我没思路面试官也不打算引导我了,编程题也没让我写完,只有最后一道让我写完。我以为他是对我不耐烦了,555……可能他真的是太忙了吧,不想搞得太长时间,一切从简。这次我真的一度觉得可能真的凉了,面完之后有点沮丧,幸好当时腾讯已经面到了HR面,才算有点安慰。最后还是接到了HR面的通知,太开心!不过当时腾讯offer已经在报批了,应该很快就下来了吧。字节面得真的是艰难,每轮都手撕代码,而且难度还挺大,准备得也是最耗时。据说字节的面试适合ACM选手,对于我这个没搞过ACM的最后竟然也通过了,而且HR说面试评价还很不错,也算是对我的认可吧,真的是非常开心!虽然最后我没有选择字节,但是面试字节的过程中拓展了我的知识面,也锻炼了我面对hard编程题保持淡定的心态,如果慌张了真写不流畅,实际上还真是没有平时写得流畅,还是会紧张。可以说收获非常大的!最后选择腾讯的话,不是因为字节不好吧,可能是我觉得游戏开发对我来说还是挺新鲜的吧,以前只玩过一点游戏,但是不知道里面是怎么搞的,很想去尝试一下(timi它不香么?),而且跟我的技术栈也更加匹配,应该能获得更快的成长,况且我也是腾讯的老用户了哈哈哈!而且很幸运认识了一位很不错的面试官,期待上班的时候能见到他哈哈哈哈!

发布了30 篇原创文章 · 获赞 97 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/HerosOfEarth/article/details/105284045