22年腾讯 & 字节跳动日常实习 9面面经(已offer)

楼主来自美本某top15计算机专业,大四上半年修完了所有课程,下半年提前回国养老等研究生offer,顺便找个实习,挣点钱,旅个游
前前后后面了5个部门,将近10场面试,最后拿到了字节和腾讯IEG的日常实习offer。复盘一下面试经过,有些内容记得不是很清。大家凑合着看

2022.1.20 CSIG 腾讯云 后台开发 一面
自我介绍
首先掰扯了上一段实习blabla,然后面试官问了我你是全职么?我说不是,我是日常实习,还要读研呢,然后他说那估计就只能给你日常实习的待遇了blabla,我说没问题,没想干全职
1. 给出一个5升和3升的水,要求最少步数倒出来4升。
这个简单,小学奥数题
2. 如果是a升和b升倒c升呢?用计算机的方法想
我想的是优先队列搜,然后hash储存一下节点的值,然后摁搜
面试官:还有么? 我就开始推数学方法,不过没推出来了,面试官说可以了,到这里就ok
3. 三次握手四次挥手
4. 为什么time_wait
5. 你的项目讲讲
6. http和https的区别
7. tcp和udp区别
8. 反问
他们组是对接微信小程序的,主要语言是golang和云产品中间件
然后估计是先要全职的吧,就给我挂了,反正面了一圈感觉,面试官捧着你或者给你出简单题,多半是打一开始没打算要你

2022.2.15 腾讯IEG 游戏数据科学 运营开发 一面
好像这个是他们的后台开发,他们说的后台更类似于基础架构那种
1. 上一段实习经历,深挖
2. 实习的时候介绍+项目
3. 手写个快排吧
我两个版本揉成一团了,写炸了,其实也就多了一行不该出现的代码,面试官说没事,继续
4. http + https
5. 看到你的webserver支持POST和GET,说说这两者有啥区别
不建议说安全或者不安全,其实区别有好几条,大家仔细看看即可
6. tcp三次握手和四次挥手,为什么挥手不是三次?为什么要有time_wait?
7. https证书怎么避免中间人攻击
直接向证书签发机构校验证书有效性
8. http的步骤,输入浏览器会发生什么
9. 快排你没写出来,写一个nth_element吧
好在这个写出来了,看得出来面试官是想让我将功补过,自我感觉八二开,然后过了一会儿,复试了

2022.2.21 腾讯IEG 游戏数据科***营开发 二面
1. 上一段实习
2. 消息队列是用别人的还是自研的
3. 消息队列的延时如何实现?
我不太清楚哎,mentor让我看过这个,写一篇km文章当我答辩依据,但我后来没来得及看,猜了个轮询 + 判断时间戳
4. 你的webserver支持tcp连接么?
我其实没太搞懂他想问啥,因为http本来就是基于tcp的一种协议,我们跨服聊天了半晌,然后切到下一个
5. http发出去怎么分成包
我讲了断线传输和tcp分包原理,他好像不太满意,但是没追究
6. protobuf看你用了,protobuf的基本语法
这个没问题,毕竟crud boy基本功还是在的
7. protobuf最好的一点是版本向下兼容,你了解是怎么实现的么?
我说实话,以前听说过,但不太了解,后来看了看正解貌似网络上也只是用法,没有具体实现,只能搪塞过去
8. 口述算法题,一个不知道递增或者递减但一定有序的旋转数组查找目标值
这个想了一下,就是抽四个点取样,然后大力二分就好
9. leveldb为什么高效?
这里可能想说的是顺序写吧,包括跳表那里可能有一些局部性原理在,但是我没准备到,之前只是在公司内部看过后台培训资料里写的,就不太清楚
10. mysql怎么实现主从复制
惨了,没准备到数据库内容,然后说了说binlog和redolog,具体没说清楚
11. 反问
我还有哪些地方不足,他说你算法挺好的,但是能看出来你很多知识点广而不深,建议以后加强
我当时觉得可能要挂了捏,和老爸说我可能要在家待一阵子了,但是我老爹说他面试人的时候,一般给你过的话才会把真实情况说出来,否则恭维一下挂了就好了,双方不伤面子
后来被老爸言中了,下午状态回到复试,那就准备三面

2022.2.25 腾讯IEG 游戏数据科***营开发 三面
来人是个副总监,人非常干练
1. 自我介绍
2. 盘上一段实习
3. 你上次实习导师是谁?企微查了查我导师名字
4. 未来打算回国么?
我说肯定回,他说那好
5. 那随便问个问题吧,linux线程切换怎么实现
我在网上看了很多进程的,似乎不是很多描写线程的,我写过linux进程调度,就跟他说了一下,他说你应该不懂对吧,不是那样的,不过没关系
6. 总结
他说怎么说,欢迎你加入吧,然后状态转到hr面,hr面不涉及业务,略

然后腾讯差不多了,也就是说暑假不用家里蹲了,但是感觉不是特别舒服,因为其实自己面试的时候漏洞很多,但是面试官都没有深究,而是放过了我,似乎是因为我上一份实习的title才选择了我。个人不是特别习惯这种名头而非个人水平带来的光环加成,所以选择了继续面试。我觉得在自己背景的加成之上,展现自己的水平,才能心安理得地接受offer。之后本来oc了,但因为一些小事情又卡着不下了,其实审批通过了,但是听闻tx锁hc,自己赶紧准备后路去了。接着冲!!

2022.2.23 字节跳动  电商国际化 | 后台开发 一面
这次面试官很和蔼,开摄像头。
1. 上段实习
2. 怎么解决分布式缓存初期过冷的问题?
刚开始随便说了个,他说不对,后来提示我可以用流量控制,我说加个因子,给缓存预热做铺垫,他说对了,其实你想复杂了。然后双方哈哈哈笑了起来,我觉得面试官人很不错
3. 消息队列是怎么实现延时的
寄,我说开多个线程然后条件变量协助实现,他似乎不太满意。不过没深究
4. tcp和udp区别
5. 为什么三次四次而不是两次三次
6. tcp为什么比udp慢
本来说了连接管理和拥塞流量控制,包头大小和封包方式,他不太满意,后来说是建立连接和重传。我:???这不和我刚说的一样?
7. select, poll, epoll
这个就很常规了,说了下四种IO模型
8. epoll算是同步模型么?
我不太清楚捏,本来觉得有回调和什么proactor和reactor模式,应该算异步,但是想了想epoll_wait()的时候似乎是阻塞的,另外处理的时候的一些手法让我感觉应该是同步的,然后面试官点了点头
9. 算法题,说你是打acm的,那来个典的吧,上台阶,一次只能走1步,两步,或者三步,问n级台阶方案数
一眼斐波那契,这应该是基本功了。我一口气说了三种解法。
最大槽点来了,我先写了递推,然后滚动数组优化,并且表示如果他想要我可以给他写个矩阵快速幂来O(logn)来解决问题。甚至可以试试用高中数列推一下通项。
然后他先说我写错了,一番交谈我get到大概意思说我只初始化了0,1,2的状态,没有写第三步的时候的方案数,但显然第三步的状态可以从前三步推过来,没啥毛病,在第0级台阶的时候方案数可不就是1种么
然后为了不显得我情商低,我手造了前几个的数据,运行出来都是对的,然后他可能意识到了我写的对的,说那你滚动数组优化看看,我也写出来了,和他说这个复杂度O(n),应该是除了矩阵和公式之外最快的
他说你这个不是最快的,我说我平时没有写很多优化常数的,他说你的代码的优化空间不是常数,我nm直接迷惑了?你不让用矩阵我还有更快的?????我是整整一年没写算法了,但这点我不可能忘
然后说我第二级和第一级台阶的加法多计算了一次,所以不是常数?我到最后没优化出来,我且不说这个优化是不是常数,有没有意义,下次计算的时候不是还一样要考虑这个问题,那你优化意义是啥????
我嘴上说:啊我没这样想,我下去一定好好学习一下
我(内心):谢天谢地哦
10. 没有反问,他总结的
面试官:我看你投了好多部门,你可能更喜欢这些技术底层blablabla,不适合后台开发(我实习在某核心部门后台,那你说是就是吧),听到这就知道我没戏了,但是还是强撑着礼貌说嗯好的
面完火很大,第二天看到自己被挂了火更大了,上次见这么离谱的面试还是在上次

2022.2.25 字节跳动  抖音社交 | 后台开发 一面
面试官能看的出来很累,问题都很流程化
1. tcp和udp区别
2. 为什么三次 + 四次
我已经麻了
3. 为什么time_wait
4. 虚拟内存
5. IO多路复用, select, poll, epoll
6. 多级页表了解么?
我其实知道,但一紧张忘了,面试官说跳表了解么?我说还行,他说复杂度多少,我说多级的不算,两级最快应该是根号,他说可以的。
7. mysql的隔离级别
8. 脏读,不可重复读和幻读
9. 隔离级别和实现原理
这次我好好学习了一遍,然后把细节说了,他很满意
10. 你在学校成绩咋样?
面试官说能感觉到我基础不错。不得不说这次面试比上次观感好多了
11. ACID
12. 算法题, 给出一个01矩阵,把所有被1完全包围的0变成1然后输出
一开始想的是bfs然后特判一下从某点是否会出界的情况。面试官说可以,但是不是最优,需要对你原来的逻辑改动一下。然后我发现可以从边界bfs染色,没被染到的自然就是被1包围的
然后5分钟写了个bfs,切了
13. 反问
我问有下一面的话什么时候通知,面试官说有的话很快就有人通知

然后果不其然,第二天二面

2022.2.25 字节跳动  抖音社交 | 后台开发 二面
面试官应该是组长这个级别的人物,和我上次实习的组长好像啊两个人
1. 复盘实习
2. 缓存,看到你用了LRU缓存,说说怎么实现
然后我按照代码的思路说了,我说我可以写一下,他说OK,我明白了,我相信你能写出来的
3. 怎么用其他数据结构替换lru的链表
说真的我没太想到,想的就是动态数组然后用尾部交换来删除,但是没想到怎么O(1)插入更新
4. 红黑树?
我其实不太了解,说了说那五条规则和和avl的区别,面试官听到我说叶子节点都是nil指针就说ok,不用说了
5. leveldb为什么高效
大概从局部性和顺序写说了个,但是忘了说跳表加锁的成本,这点答得一般
6. mysql主从复制
7. 多机一致怎么搞?
我说了下一致性哈希,然后虚拟节点,他说嗯
8. 写题,深拷贝带有随即指针的链表
链表题杀我啊,然后我一开始用数组的思路写了个极其复杂的链表,然后面试官说那你这样还是把链表转化成数组做了,你可以只用一个map的,然后我说我想复杂了,一见链表就慌,跟他说了下单map思路,他说可以,不用写了,他刚才看我写的时候就感觉到我能写出来了
后面去看了下题解,发现是拆点,麻了,链表这个我根本想不到

然后hr说等着三面,然后插曲来了,三面面试官看我不能转正,说想要个能转正的来,其实我能理解,部分可能就是婉拒嘛,这也没啥说的,毕竟链表题炸了这我认了,多加练习就好了,再说了,大四确实没啥优势
然后hr很给力,帮我跑了四个部门,最后约到了西瓜的后台,我tx offer快下来了,缺的就是时间。我前几面面评评价很不错,hr说帮我争取下,然后很惊喜地少了一面,直接二面三面邮件一起发了

然后
2022.3.3 字节跳动 西瓜视频 后台开发 | 二面
1. 缓存的一致性怎么保证,怎么保证数据不在短时间内集体过期
2. 消息队列该建立在哪里,怎么去重?这里说的不太好,后来想想确实应该是说redis从内存中查找,回忆起来确实有redis的库,我mentor让我写一篇km来着,但后来线上办公这事儿就搁置下来了,寄
3. 线程进程区别
4. 三次握手和四次挥手,为什么要有time_wait这个状态?
5. 描述一下红黑树,和二叉查找树有什么区别?(简述了一下那几个插入规则,并且比对了一下avl,简单说了一下平衡规则和依稀记得的那几条规则)
6. 操作系统的用户态和内核态,为什么要有用户态和内核态
7. sql,问如果让你实现join会怎么去实现,要求复杂度最低
这我真不知道,只是想了下说先过滤形成一个快照,对using子段进行排序,然后两个指针尺取O(n + m),后来说有没有更快的,我就说数据库磁盘数据结构有内存块,可以先分成小文件然后多路查找归并加速,并且同时进行比对筛选,他说OK差不多了。然后事后我回去看了下,确实和我说的差不多,但是可能漏了一点就是可以hash查找,潜意识里觉得hash对海量数据太大了,然后就没想到
8. 一些常规八股
然后做题,原地算法找未出现的第一个正整数
我之前搞mex大部分都是set和multiset暴力搞,真没拿原地做过,然后当时觉得完蛋了,现在算法水平已经在谷底了,大概率寄
不过很快定了定神,自己手撸了几组样例然后仔细想了下,发现只有两种情况,要么换到原来的位置上,要么呆在别的位置上的就是重复的或者不在范围内的,有点思路了,然后就用while类似于并查集那样一直换到换不出来的搞出来了,自己测了几个没问题,样例也过了,面试官说ok。真给我吓坏了,麻了。
然后问我什么时候能来,到什么时候
反问:
咱们组是干什么的,感觉类似于一个后台 偏中台的组,主要语言golang
自己的不足大概是对项目掌握不够,而且一说起来时间长就容易不自信,然后垮掉,之后得多练练表达这方面

2022.3.5 字节跳动 | 西瓜视频 后台开发 | 三面
1. 聊上一段实习
2. 聊人生
3. 说你实习的收获是什么
4. 你这次来想有什么样的收获?
5. 写一道算法题吧,二维矩阵每个维度有序,查找目标值
一眼二分,然后面试官说可以,但不是最高效的。我想起来队友曾经说过这道题有比二分更快的算法。
仔细想了下发现好像沿着对角线尺取即可,O(n + m),写了个程序,造了两组数据过了
6. 反问
我有什么需要改进的地方?
面试官说不同的同学能够看出来不同的风格,有些是偏竞赛的,有些是工程,你代码说明你是偏竞赛的。
然后还有,能看出来你脑子里东西很多,但以后表达的时候要多以用户为出发点,因为你脑子里有的东西,客户不一定知道,所以你如果说得太过细节用户可能会觉得晕,另外说话可以慢一点。
这说的其实很对了,我说话确实很多时候让别人觉得逻辑很跳跃,如果我能把所有的点写下来,大家其实还是很认可我的叙述的。我觉得这个部门面试官们真的蛮好的,人很和善的。

2022.3.7 字节 Offer

然后让我意外的是3.11逛街的时候接到电话,IEG那边也下offer了,但已经答应字节了,诚信第一,另外想在还是学生的时候多体验几家公司的风格,就选择了字节

然后总结下吧,感觉面了这么多,发现其实去年自己挺头铁的,那么点知识敢去面大厂,真的是初生牛犊不怕虎,想想真的是全身冒冷汗。
不过自己的算法确实一年不写大退步了,研究生的时候还得坚持本科一样的训练才行呢。工作的项目也得搞一搞,现在项目可以没有,但以后就不行了。
#实习面经##腾讯##字节跳动##面试题目#
全部评论
1 回复 分享
发布于 2023-01-26 15:03 陕西
范德堡嘛 强呀
点赞 回复 分享
发布于 2022-03-12 11:55
请问一下,字节日常实习HR面和offer发放之间大概隔了多久呢
点赞 回复 分享
发布于 2022-05-12 20:04
关注了lz的知乎哈哈哈
点赞 回复 分享
发布于 2023-03-04 23:40 新加坡
....
点赞 回复 分享
发布于 2023-05-07 21:07 重庆

相关推荐

 🌟 情境描述类假设你正在开发一款智能家居设备,如何在嵌入式系统中实现多种传感器的数据融合?想象你负责设计一款无人机的控制系统,如何在STM32中实现多通道ADC采集以获取传感器数据? 🛠️ 任务驱动类任务:设计一个基于FreeRTOS的温度监测系统。请描述如何实现任务间的通信和数据同步。任务:你需要为一个电动滑板车实现电池管理系统。请说明如何在嵌入式系统中实现低功耗模式以延长电池寿命。 ❓ 选择题类在STM32中配置USART进行全双工通信时,以下哪个配置是必需的?- A. 设置波特率- B. 配置GPIO模式- C. 以上皆是在实现实时操作系统(RTOS)调度算法时,哪种算法最适合实时任务?- A. 轮询调度- B. 优先级调度- C. 时间片轮转 🔍 深入探讨类探讨:在嵌入式系统中如何实现基于MQTT的物联网应用?需要考虑哪些关键因素?讨论:如何在嵌入式系统中使用机器学习算法进行图像识别?需要哪些资源和算法?🔄 比较分析类比较SPI与I2C的优缺点,如何在嵌入式系统中实现这两者的互操作?分析:在实现电机的闭环控制时,如何选择合适的传感器和控制算法? 🧩 实际应用类应用场景:你正在为工业自动化开发一个控制系统,如何在RT-Thread中实现任务的优先级继承机制?应用案例:在一款智能手表中,如何实现温湿度传感器的数据采集与处理?🎯 目标导向类目标:实现一个具有自适应滤波器的嵌入式音频处理系统。请列出实现步骤和所需资源。目标:在STM32中配置USB OTG进行主机模式通信时,需完成哪些关键配置?🌐 跨领域思考类思考:在嵌入式系统中如何结合区块链技术实现数据的安全存储与传输?跨领域探讨:如何在嵌入式系统中实现NFC通信与移动支付的结合?📊 数据分析类如何在嵌入式系统中实现数据的CRC校验?请提供具体步骤和算法。在设计一个数据压缩算法时,如何在嵌入式系统中实现数据的压缩与解压缩?🚀 创新思维类设想一个新颖的嵌入式产品,如何在其中实现OTA(Over-The-Air)固件更新?创新:如何在嵌入式系统中利用状态机设计模式来管理复杂的用户交互? 🔄 反思总结类反思:在实现多核处理器的负载均衡时,可能遇到哪些挑战?如何克服?总结:在嵌入式系统开发中,如何有效管理任务的优先级和资源分配?🎉 未来展望类展望:未来嵌入式系统在智能家居领域将如何发展?你认为哪些技术将成为主流?展望:在物联网时代,嵌入式系统将如何与云计算结合以实现更智能的应用? 🛡️ 安全性考量类如何在嵌入式系统中实现数据的加密与解密?请列出常用的加密算法。在设计一个嵌入式网络设备时,如何确保其安全性?需要考虑哪些因素?🎈 创意挑战类挑战:设计一个基于STM32的智能花盆,如何实现温湿度传感器的数据采集和控制?挑战:开发一款基于RT-Thread的智能手环,如何实现实时心率监测与数据传输?💡 概念理解类解释:在FreeRTOS中,如何实现任务的状态监控?需要哪些API支持?理解:在嵌入式系统中,如何实现图像传输的基本原理和步骤?我面试看的是大佬的面经,链接放下边了  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
点赞 评论 收藏
分享
评论
38
155
分享
牛客网
牛客企业服务