腾讯wxg企业微信部门面经

背景:9.22突然打电话问要不要面试,我说微信之前不是说今年不秋招,对面说政策有调整,所以又开始秋招了,还说如果能提前实习,流程可以推进地快一些(我也不懂这说的是什么意思),但面试流程是正常地应届生秋招流程,非实习生流程。之前暑期实习面过一次微信搜索部门,被一面薄纱,所以对wxg其实没什么好感,但怕贸然拒了以后,没有其他部门愿意捞了(之前有听过这种情况),所以也就答应了,想着早面完早进入复活赛。

一面(9.25 1小时 大头兵面)

面试官介绍是企业微信的,然后就开始面试,一面出乎意料的比较简单,八股和项目基本五五开。

自我介绍

问实习经历

raft算法、zab协议的区别

raft如何选举新的leader

raft选举leader需要至少几个节点同意

raft在集群规模3个、4个节点的情况下,分别需要几个节点同意,才能选出leader

进程、线程、协程之间的区别,优缺点

协程有什么缺点

http2相较于http1的区别

tcp连接3握4挥

binlog和redo log的区别

乐观锁与悲观锁是什么

leveldb的出现是为了解决什么问题

leveldb有什么优点

leveldb的快照了解吗(不了解)

在浏览器中输入网址并回车后,发生了什么

做一道题(leetcode简单难度,本来是有两道,但是八股问完已经面了快50分钟了,面试官说来不及做两道了,一道就可以)

反问:企业微信里面具体做什么的(答:基础架构,存储,消息队列)

二面(9.26 1小时30分钟 应该是主管面)

本来以为一面问的并不是很深入,可能是个kpi,结果一面结束当天晚上就约了2面

上来什么多余的话也没说,直接甩来4道编程题,给一个小时的时间去做

4道题大概1道easy,2道mid,1道hard;能记得的是有一道斐波那契数列,一道判断字符串子序列,一道搜索旋转排序数组,一道统计逆序对的个数,做了大概整一小时

然后是实习和八股

cpu常见的寄存器有哪些

zeromq的架构是怎样的,有什么特点

etcd底层是如何存储的

b+树相较于二叉树有什么优点

paxos和raft的区别

paxos中节点宕机后如何去恢复数据

Linux中的虚拟内存了解吗,虚拟内存和物理内存之间的关系是什么

rdma了解吗?rdma有什么好处?了解什么是rdma的原语吗?

面试结束,没有反问

三面(9.26 1小时30分钟 总监面)

二面结束后没有反问环节,以为自己寄了,结果晚上吃完饭一看,状态竟然从初试变复试了,很激动。然后过了一小时,2面面试官打电话问晚上是否有时间面试,因为他们总监正好晚上有空。本来想因为太晚,改天的,但是怕今天不面,时间往后拖太多,到国庆后了,所以就答应了。

约了晚上7点半的面试,但是面试官迟了大概15分钟,7:45才开始

看了好多腾讯面经,以为总监面不用做题,或者做一道题,以聊天和深挖项目为主,没想到总监面上来也是直接给我甩了3道题,1小时做完。

第一道是设计一个直播系统,每个直播间有房间号和热度,需要对直播房间列表里面的房间进行插入和删除,并且要能获得热度前100的直播间。(哈希表+小顶堆实现)

第二道,有一个rand函数,生成0-65535之间的任意随机数,现有300000员工抽奖,抽1000个,保证每个员工获奖概率相同。(其实就是leetcode里面的用rand7生成rand10相同的思想,就是要注意等概率。当时做的时候没有想到更深层次的等概率,所以这道题应该算是没完全做出来)

第三道,一个二叉排序树,从1-n,现给3个数p,q,m,判断三者的公共祖先。(二分查找,判断当前查找对象是否同时是p,q,m的祖先)

三道做完大概花了1小时多一点,剩下的时间基本上就是在讲这三道题,第二道题一开始做错了,后来也没想到正确方法(太紧张了),比较糟糕,讲完以后简单问了几个八股:

probuf序列化与反序列化的原理

redis主从如何同步

然后就直接到了反问环节,问了一下结果大概1周内会出,就结束了。

四面(9.27 1小时 面委会1面)

三面因为有一道题没做对,感觉对面总监好像不太满意,然后对面又说一周后才出结果,我想一周后不都国庆了吗,以为这是在变相告诉我挂了,所以这回真以为自己寄了。结果第二天早上11点左右,hr就打电话约了面委的1面。

面试官上来就问3门八股(计网、数据库、操作系统)哪个最熟悉,然后就开始八股和设计题的狂轰乱炸(不是说面委都不怎么懂技术的吗。。。)

你的c++ webserver是如何实现的

epoll是如何做到高并发的

你的webserver中如何保证高并发接收数据

接收的数据存在哪(自己设计的buffer里)

buffer是如何设计的

你的webserver如何解析http请求(有限状态机)

如何识别http请求结束了

如果一个tcp请求装不下内容,如何设计webserver,使其可以在高并发环境下把来自不同连接的内容分开(hashmap)

了解c语言里的malloc吗

如何自己设计并实现一个malloc和free,保证分配和释放内存的合理,并且不产生内存泄漏

项目中用到了cache,cache满了怎么办(淘汰)

怎么淘汰(主动、被动、LRU、LFU)

LRU内部如何实现(双向链表+哈希表)

Linux中,如何杀死名字为server的进程

了解什么数据库存储引擎,他们的底层是如何实现的

b+树有什么优缺点

innodb为什么用b+树,不用二叉树或红黑树

epoll为什么用红黑树而不用b+树

文件在磁盘里怎么存储,是连续的还是不连续的?

如何设计函数,完成对文件的追加写

如果追加写的时候发现空间满了怎么办

如果满的仅仅只是文件夹的空间,硬盘里仍有空间该怎么办(不会)

如果让你去设计并实现一个消息队列,需要怎么做,用到什么通信方法

消息队列的消息存在内存还是硬盘

存在硬盘中的消息如何存储

没有反问,面试官好像接下来还有会,所以刚刚到一小时,就急匆匆地结束了面试。

五面(10.9 1小时30分 面委会2面)

因为面委会1面大部分基本上都答上来了,也没第一时间挂,所以想着面委会1面应该是过了,但是没想到还有面委会2面。

面委2面地体验就没上一次那么好了,比较难受。

自我介绍

前30分钟大概是问实习经历,我上一段实习侧重中层和上层地业务开发,但是面试官一直在问我用到的各种组件的底层实现,很难顶,幸好之前实习的时候看过这些文档。

然后是问一些设计题吧:

kafka底层是如何实现的,怎样保证高并发(不清楚)

zeromq底层是如何实现的,怎样保证高并发(说了一部分,这些都没看过。。。我更关注的主要是整体架构)

常见的负载均衡算法

然后是两道算法题(真的要做吐了🤮)

第一道是输入一个由数字组成的字符串,打印所有字符串可以组成的ip地址

第二道是输入一个整数a和整数b,计算a/b的结果,其中无限循环小数需要用括号括住循环节,如1/2=0.5,1/3=0.(3),1/6=0.1(6)

反问:什么时候能出结果(答:不清楚,是不是最后一轮,之后还有没有也不清楚,具体去问hr)

更新:10.20 hr面

10.23 录用评估

10.26 oc

#24届软开秋招面试经验大赏#
全部评论
逆天,搁这招acm世界冠军呢,那么多题
323 回复 分享
发布于 2023-10-21 02:35 广东
牛的,下一个马化腾来面你😄
119 回复 分享
发布于 2023-10-21 14:44 陕西
这是年薪百万的offer吗😦
65 回复 分享
发布于 2023-10-22 20:18 河南
这面经确实够厉害的
35 回复 分享
发布于 2023-10-22 11:07 北京
牛,这offer你该拿
28 回复 分享
发布于 2023-10-27 15:58 北京
这么窒息 大佬tql
22 回复 分享
发布于 2023-10-20 13:36 广东
菜鸡的我能和你做校友,我很抱歉
14 回复 分享
发布于 2023-10-28 21:12 北京
这我都看迷糊了😧
11 回复 分享
发布于 2023-10-22 12:20 北京
介是真的猛
7 回复 分享
发布于 2023-10-22 00:19 江苏
佬,方便说下你的简历里项目是什么吗
5 回复 分享
发布于 2023-10-22 21:38 安徽
这招的是神仙吧,光看着我都紧张了
4 回复 分享
发布于 2023-11-08 08:26 湖南
大佬,“第一道是设计一个直播系统,每个直播间有房间号和热度,需要对直播房间列表里面的房间进行插入和删除,并且要能获得热度前100的直播间。(哈希表+小顶堆实现)”请问这个题给出的【房间号,热度】中,房间号有重复的吗,或者说热度是不断变化的
2 回复 分享
发布于 2023-10-31 10:43 江苏
相亲呢😅
2 回复 分享
发布于 2023-10-29 10:59 浙江
窒息
2 回复 分享
发布于 2023-10-22 00:41 江苏
太猛了哥
2 回复 分享
发布于 2023-10-20 13:39 美国
大佬
1 回复 分享
发布于 2023-11-02 17:24 江苏
1 回复 分享
发布于 2023-10-23 10:23 北京
太牛了啊
1 回复 分享
发布于 2023-10-22 14:12 北京
互联网大厂的强度都这么高的吗?😂,我们半导体顶多问半小时
1 回复 分享
发布于 2023-10-21 20:50 江苏
6666666
点赞 回复 分享
发布于 02-10 19:36 北京

相关推荐

05-28 23:32
门头沟学院 Java
最近真的特别特别忙,既要做组里的需求又有导师的任务,还要写一下论文啥的。突然更新是因为 wxg oc 了,就是这个红围脖太难戴了。每次照片都被打回来。wxg 的每一面结束的时候,都感觉非常魔幻,每次都觉得,卧槽我怎么就过了一面、二面、三面、面委、hr 面。其实对很多人,wxg 可能就是一个 title 大,赚钱的地方,但是其实 wxg 是我梦开始的地方,我最开始转码的时候,创建的第一个文件夹就叫 wxg,不管是为了圆自己当时的一个梦还是说为了钱 or title,我都决定要去试一试。这一年真的刷的一下就过去了,我也从当时美团一下子走到了微信,如果有想冲一冲 wxg 的牛友,我感觉作为面了微信四个团队的人,还是能给一点建议的(x):1. 不要局限于 hot100,wxg 很少考 hot100。2. 算法可以重点看看贪心、dp、模拟,wxg 不会考特别难的题,也很少考板子题(比如回溯、数位 dp 这些),感觉他们更希望你的算法是做出来的,而不是背出来的。3. 可以多看看系统设计题,我面委和二面都考了相关的题目,还考了一道ood。4. 可以多看看计网和 os,考的真的很多5. 建议多刷几段实习再去面(其实 wxg不要求实习经历,但是如果没有实习,就会嗯问很多八股,八股真的不好背==)6. 实习的时候要多思考,实习并不是做完需求就好了的,要多思考系统的设计,其他正职写代码的思路,博主第一次面微信的面评,就是实习缺乏自己的思考,这个在之前的文章里也说了哈哈哈哈,就不多提了。7. 至于语言,我只能说能 c++尽量 c++,因为有的部门(wxg 部分部门,但是大部分不是)确实是不想要其他语言的,转语言的培养时间肯定更久一点,但是 all in c++,建议 985 及以上 hhh。想说的很多,但是真开始写又不知道从何说起,可能很多牛友都不会遇到我这种抉择,视频号还是字节广告,最近博主也很纠结,但是最后还是遵从本心了,只希望字节秋招的时候别把我拉黑了哈哈哈哈哈。现在总说实习生的水平是当年的正职,但是我在实习这几段下来,发现正职和自己,水平还是有本质的差别的。现在字节的 mt 是当年写抖+的 7 年老兵,他的很多思维、代码的水平、业务的理解真的是让博主自惭形秽,深刻的认识到了天外有天,人外有人。mt 精力非常好,即使三十多了还在参加很多技术比赛,也拿了非常多的奖。同时也希望大伙都有个好去处,如果说有什么能给的建议,那就是好好打基础,多面试,不要闭门造车。牛客上也有很多卖课的,但是我浅看下来其实水平质量都一般般,当然我水平也一般般,所以也就打算写写关于自己的一些故事。牛客里总调侃黑马,但是黑马的质量真的非常非常高,非常适合刚开始学习的新人。然后可以看看小林,小林的计网和操作系统写的都非常好。然后不要总局限于现成的八股,还是希望大家从源码开始看,去理解写代码的人当时的用意,自己去沉淀出自己的八股。其他的网站博主都认为一般般,就不好推荐了哈哈哈哈。如果还有推荐的话,b 站有个博主叫学 Java 的生生,博主很多源码手撕都是跟着他学的,个人认为教的非常不错。最后最后,祝大家前程似锦,都有理想的去处~
牛客创作赏金赛
点赞 评论 收藏
分享
评论
266
673
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务