腾讯 PCG 春招面经

背景:2 本 9 硕,一段中厂实习,意向后端开发。

时间线:4.8 一面,4.11 二面,4.15 三面,4.16 HR 面,4.17 录用评估+云证,4.18 OC,4.19 录用信。

4.8 一面

时长 60 分钟,由于部门的技术栈是 c++ 和 go,因此没有问我 Java 相关的八股,问题大部分是引导性的问题,面试官会抛出一个大的方向,然后让我自由发挥,面试官会根据答的内容做进一步的提问。

上来先是自我介绍,接着问了问我实习中的项目详情,怎么样保证缓存一致性的,会出现什么问题,这部分因人而异。项目问完之后让我挑 Redis 里面熟悉的讲讲,我重点讲了 Redis 里面跳表的实现,比如跳表的结构,每个节点中包含的内容,跳表的层级如何确定,面试官看来挺满意。接着是一些常见的八股(针对 MySQL 索引等),这部分比较简单,因此没啥印象了。最后做题:实现一个栈,要求 O(1) 时间复杂度内能取出栈内最小的元素。

面完过了两天面试链接消失,4.10 约了二面。

4.11 二面

时长 100 分钟,压力最大、内容最多的一面,从百草园问到三味书屋,这个面试官看来应该是 leader 级别的人,面试过程中不时打断我,要求我描述的更准确些,但同时也不断对我进行引导。整体看来虽然压力大,但面试体验不算差。记忆有限,只想起来一些印象深刻的问题。

  • 上来也是自我介绍,我刚讲 2 分钟,面试官打断我问我实习项目中的 Redis 集群中脑裂是如何产生的,这部分我没有答好,然后他就没让我继续介绍,而是直接问八股了(这里我都感觉要凉了,开局不利)。
  • 接着问了个常规的八股:HashMap 是如何构建的。我讲了通过 hashcode 方法计算索引,然后对 HashMap 的大小做取余,正准备讲通过 equals 方法判断是否相等的时候,他打断我让我详细讲讲怎么通过 hashcode 方法计算索引的,我说可能是通过某种哈希运算,他又问为什么要进行哈希,直接用元素本身做索引行不行,我答不行,哈希过程是为了对原有的元素进行一次映射,使其散布更均匀,从而降低哈希冲突的概率(这部分其实我心里也没底),接着我回答了些基础的内容,比如 HashMap 的拉链法,红黑树等。他没有对我的回答做出评价。
  • HashMap 如何扩容,扩容过程中是否是阻塞的。我猜他可能是为了引出 ConcurrentHashMap 的扩容机制,但这部分我并没有详细了解过,只能说我对 Redis 中的哈希表比较熟悉,对于扩容和收缩操作会有 rehash 的过程,然后给他展开讲了讲。之后谈到了 rehash 时候线程安全的问题,这部分我自由发挥了。
  • Redis 如何持久化的。RDB 和 AOF,我介绍完这两个持久化机制后,他问我这两个机制分别在什么情况下使用,我说从节占刚连上主节点的时候会用 RDB,之后会再从 AOF 中读取数据。
  • 接着重点来了,对于 Redis 集群问题,让我自己设计一个服务器集群的部署方案,要讲明白数据是如何进行分布的,如何在集群中快速找到客户端要求的数据。这部分完完全全是自由发挥,照本宣科是很难的。我当时根据 Redis 中的 Slot 给出了一个很不成熟的方案,他居然也就顺着我这个不成熟方案讲了下去。
  • 在我给出的方案中,从节点连上主节点后,如何克隆数据的。这部分问的很细,花了很多时间,要讲明白明确的时间节点,最终不断修改后我给出的方案是:在从节点连上主节点后,先取主节点中最新一次 RDB 的数据进行拷贝,然后再根据这次 RDB 数据生成的开始时间,取出 AOF 中在这个时间之后的数据,这样才能保持数据的一致性。
  • 做题:二维数组的动态规划问题。给定一个由数字构成的二维数组,数组中的元素可以按上下左右的方式连接从而形成一个链,要求返回按数字大小严格递增的最长链的长度。
  • 面完一小时后过了。4.15 中午约了当天下午的三面。

小结,感觉二面的面试官看重的不仅仅是背八股的能力,更重要的是自己的思考,就是为什么要这样设计,有什么样的好处,避免了什么问题。在进行 Redis 集群设计方案的时候,很多地方我的方案和 Redis 原本的实现不一致,面试官也没说什么,反而让我继续完善自己的方案,只要我能给出一个能自圆其说的答案即可。

4.15 三面

时长 40 分钟,整体难度不大,也基本上都是由我自由发挥。自我介绍完了之后,让我挑项目中的亮点讲一讲,接着问 Redis 中我有哪些熟悉的内容,我讲了基本的数据结构的底层实现,比如 SDS,压缩列表,跳表等。接着又问我 Redis 的持久化策略,我又重复了一遍,重点讲了讲在 RDB 中 SAVE 命令和 BGSAVE 命令的区别。然后是计网的东西,问 TCP 怎么保证流量控制的,这部分我没有答好。最后做题:经典的计算两个字符串的最短编辑距离。

面完秒过。当天晚上收到 HR 面链接。

4.16 HR 面

时长 20 分钟,没啥实质内容,就是问了问为什么春招还在找工作,手里有哪些 offer,期望薪资啥的。

写在后面

走了狗屎运,拿到了之前不敢想的 offer,有种不真实感。虽然是白菜,比起大佬来说肯定不算啥,但对我这个考研跨考、秋招前无实习经历的人来说已经很很好了。

去年九月一度怀疑自己是不是不适合干程序员这一行,个中艰难有口难言,所幸最后坚持了下来。一路走来,牛客这个平台对我帮助很大,写下这篇笔记希望能对其它牛友有所帮助。祝各位牛友心想事成,offer 多多。

#24届软开秋招面试经验大赏#
全部评论
恭喜 佬 redis 基础扎实 抓住了机会
4 回复 分享
发布于 2024-04-30 13:36 福建
QQ短视频
点赞 回复 分享
发布于 2024-05-16 10:25 陕西
请问面完秒过是怎么知道的呀
点赞 回复 分享
发布于 2024-05-10 16:52 北京
佬腾讯哪个g呀,base深圳吗
点赞 回复 分享
发布于 2024-04-30 19:39 上海

相关推荐

06-27 12:54
已编辑
门头沟学院 Java
累了,讲讲我的大学经历吧,目前在家待业。我是一个二本院校软件工程专业。最开始选专业是觉得计算机感兴趣,所以选择了他。本人学习计算机是从大二暑假结束开始的,也就是大三开始。当时每天学习,我个人认为Java以及是我生活的一部分了,就这样持续学习了一年半,来到了大四上学期末,大概是在12月中旬,我终于找的到了一家上海中厂的实习,但我发现实习生的工作很枯燥,公司分配的活也不多,大多时间也是自己在自学。就这样我秋招末才找到实习。时间来到了3月中旬,公司说我可以转正,但是转正工资只有7000,不过很稳定,不加班,双休,因为要回学校参加答辩了,同时当时也是心高气傲,认为可以找到更好的,所以放弃了转正机会,回学校准备论文。准备论文期间就也没有投递简历。然后时间来到了5月中旬,这时春招基本也结束了,然后我开始投递简历,期间只是约到了几家下场面试。工资也只有6-7k,到现在我不知道该怎么办了。已经没有当初学习的心劲了,好累呀,但是又不知道该干什么去。在家就是打游戏,boss简历投一投。每天日重一次。26秋招都说是针对26届的人,25怎么办。我好绝望。要不要参加考公、考研、央国企这些的。有没有大佬可以帮帮我。为什么感觉别人找工作都是顺其自然的事情,我感觉自己每一步都在艰难追赶。八股文背了又忘背了又忘,我每次都花很长时间去理解他,可是现在感觉八股、项目都忘完了。真的已经没有力气再去学习了。图片是我的简历,有没有大哥可以指正一下,或者说我应该走哪条路,有点不想在找工作了。
码客明:太累了就休息一下兄弟,人生不会完蛋的
如果实习可以转正,你会不...
点赞 评论 收藏
分享
06-07 19:59
门头沟学院 C++
补药卡我啊😭:都快15年前的了还在11新特性
你的简历改到第几版了
点赞 评论 收藏
分享
评论
32
59
分享

创作者周榜

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