腾讯CSIG暑期后端实习面经(已offer)

南京某高校研二在校生,暑期(日常?)后端实习生提前批,CSIG(云与智慧产业部),base深圳总部,三轮面试,在这之前简历面被挂过一次。

腾讯CSIG暑期后端实习面经(已offer)

腾讯CSIG暑期后端实习面经(已offer)

前奏挂经

晚上九点多来了一个广东深圳的电话,猝不及防,他说是简单聊聊(套路),问了实习时间,我说两个月,他表示不太满意;后来简历中写了用到docker容器,他问看过源码没有,我说没有;后来问了select/epoll区别,说之后让面试官联系,一共五分钟,结束。3月25日流程灰了(还没开始就结束了。。。)

新的开始

吸取上次的教训,我把简历中不是非常熟悉的技术栈都删了,以防问到源码之类的尴尬问题,三月底(具体日期记不得了)再次收到了来自广东深圳的简历电话,这次实习时间我说3个月(并表示老师那边可以协商)。

一面

面试小哥十分友好,原本约的周日早上九点,临时又改成了八点。

自我介绍,聊项目,实验室做的项目,网络开发相关,用的C语言开发;

C++标准库容器,map底层实现,vector扩容操作;

如果扩容原空间拷到新空间时有新元素插入会发生什么,考察vector操作原子性;

TCP有关内容,三次握手、四次挥手、拥塞控制(快速重传);

TCP连接关闭过程中的CLOSE_WAIT状态,CLOSE_WAIT状态过多是什么原因,怎么解决(面试官提示长连接解决);

linux网络指令,netstat,介绍常见的选项(tulnp),lsof命令(查看端口占用),磁盘占用查看(df/du);

linux文件系统管理/内存管理,答了进程空间的内容,虚拟内存/分段/分页;

http相关内容,问了301/302状态码的区别(资源永久/暂时性转移),下次请求的URL是否发生变化;

cookie/session介绍一下,对cookie了解的多一些,就主要介绍了cookie;

100亿个qq号,找出出现次数最多的100个qq号,大数问题,hash分块统计再用堆合并;

线程安全,表示不是很了解,只简单说了一下概念;

提问环节,面试官讲了平时用到的技术栈,建议我可以再了解了解线程安全方面的相关知识。

差不多就这些,其他的如果没想起来,就是基础题,全程40分钟,挺愉快的,聊完就约当天下午二面,因为下午有笔试,就约到了周一。

二面

二面是部门leader,问的问题基础偏上,开放问题比较多。

依旧自我介绍、详细聊项目。还问了项目实际的应用情况(表示还在试验中);

看我网络开发接触的比较多,先问了一个TCP最大连接数(栽过坑),答了文件描述符限制,问了具体量级,想答65535,表示犹疑就没说,后来追问,我说万这个数量级,客户端连接考虑端口号范围限制,面完查还要考虑TCP发生/接收缓冲区大小限制,linux跟踪的连接数限制等等,方面还是挺多的,第一道题答得一般。。。

HTTP 1.0/1.1/2.0区别;

给定一段文本,和一个敏感词列表,判断这段文本是否包含敏感信息,直观判断这就是个字符串匹配的问题,我答了kmp算法,next数组内容,相比暴力匹配怎么减少匹配次数的;

问到数据库,表示不怎么了解;

让我谈谈对后端开发的理解,核心的技术关键点,说了一通网络协议,高并发,线程池,多路复用,其实还有很多,像数据库都不敢说,因为没太准备;

问我还有什么觉得他没问到的,但我觉得优势的地方,我说STL源码,让我介绍STL中让我觉得设计最为精妙的地方;

我答了内存管理,谈了STL一级/二级空间配置器的具体源码实现,被打断了(可能觉得全说完太浪费时间了),让我对java/linux的内存管理做个对比,java的GC不太记得了,就答了linux的伙伴算法,和STL二级配置器做了个小对比。

提问,面试官评价看问题比较透彻,就是有些问题需要再深入了解(TCP最大连接数。。)-

差不多就这些,全程30分钟,面完过了1天通知三面。约了周四三面。

三面

晚上,我一个人开的摄像头,压力面,全程接受质疑,硬着头皮顶

自我介绍,怼项目,因为项目和卫星方面的通信有关,转问我卫星怎么定位的,表示研究的是网络协议,不太了解,哈哈。答了卫星测距确定方位,问需要几个卫星才能定出位置,再次懵逼,我说3个地球同步卫星能覆盖到地球上任意地方,就不问了;

TCP TIME_WAIT状态的作用,2点,TIME_WAIT过多占据资源怎么办,我说开SO_REUSEPORT选项复用处于TIME_WAIT状态的端口=,面试官不满意,跳过(提问时前辈说复用的话是在规避问题,不是在解决),网上说从高并发考虑,均衡负载,限制高并发短请求,修改tcp内核参数开启TIME_WAIT快速回收重用;

内存对齐的概念以及作用;

输入用户名和密码,如何保证安全,答了加密和单向hash,比对hash值而非原文比较,还有呢?

设计一个最简单的应用层协议,仿照HTTP答了一通,报文类型+实际内容;

一个文本集合,如何查重,抽象成最长公共子序列的问题,答了动态规划的思路,问写的出来吗,以为要写但没让写;

整体节奏紧张明快,面试官口头答应帮忙尽快约HR面。

HR面

自我介绍、挑了个项目大概介绍了一下;

家庭情况,有无女友;

职业规划,聊聊天;

约定实习时间、加了微信;

没过两天就发了正式offer,春招第一个offer(瞬间整个世界都亮了????),腾讯效率真高,手动点赞????。