腾讯后台开发实习面经(已offer)
事业群:CSIG 在线教育部
Base:深圳
技术栈:半路出家学了半年的C++、学了一年的Python
个人项目是烂大街的服务器和一个外包🤣
团队项目是两个和数据挖掘相关的项目🤣
电话一面(40min)
项目介绍
小根堆计时器是怎么样的机制
优先队列和map的区别是什么
vector的内部结构
如何避免vector的动态扩容
vector越界访问会怎么样
红黑树的规则
红黑树的增删改查的时间复杂度
往map里面增加或删除元素是怎么实现的
智能指针是自己实现的吗
如何实现智能指针
智能指针的引用计数如何确保线程安全
怎么实现原子操作
RAII机制具体是什么含义
日志系统的相关问题
线程池是怎么使用的
长连接过程中线程一直持有连接对象吗
有用过什么数据库
数据库的字段类型是如何设计的
用的是什么数据库引擎
Innodb和MyISAM的区别
varchar最大长度是多少
varchar如果长度超过了怎么办
Linux常用的命令
压测如何查看在哪里达到瓶颈
有什么问题?
总结:一面的时候挺突然的,所以也没多准备,主要围绕的是简历上的项目来问,中间夹杂着一些基础的询问,所以最终结果也还好,最后询问的时候面试官也肯定了我的C++基础不错,并且说了会有下一面。
视频二面(40min)
自我介绍
有用过部门的产品吗?
讲一讲团队项目?为什么要使用这些算法?算法是如何挑选的
讲讲DBSCAN和KMeans算法的区别,讲一下你理解的DS证据理论
介绍项目
EPOLL和Select的区别
为什么要使用边缘触发模式
EPOLL ET和LT的区别
ET模式下,要遵循哪些规范
Reactor和Proactor模式的区别
如何保证线程安全
请求进入之后是如何处理的
Time-wait状态过多会有什么后果,怎么处理?
长连接和短连接之间是如何处理的
为什么采用小根堆的优先队列作为定时器
对请求报文的解析是自己写的还是调用库,难度在哪
日志系统是如何保证高并发的
日志系统如何保证线程安全
有看过其他开源服务器吗
Nginx的请求处理流程
目前有投什么公司
为什么CVTE刷了你 (HR面刷的- -无语)
头条和腾讯选择哪个
总结:一开始的时候也没想到面试官会问我的团队项目里面的算法内容- -不过好在之前有特地的去看过相关的,所以答的也还算是流畅。可能是因为这个所以整个面试流程下来完全没撕代码?
HR面(15min)
自我介绍
团队工作是怎么样的
为什么选择和团队方向不符合的后台开发方向
有没有考研的计划
为什么不考研
有没有转正的计划
目前有什么offer,怎么选择
有没有女朋友
什么时候可以来实习
如果可以远程实习,是否可以考虑提前进行实习
有什么问题?
最后问了什么时候有结果,小姐姐说看面评是挺不错挺稳的,最早下周一最迟下周二会发offer。(结果周三才发- -)
整体总结
感觉整个面试流程下来还好,没有什么特别难的问题。
自己总结的面试技巧
在一些问题的回答下继续深挖深度,而不是只局限在回答完就停止。在最后面试官给我的评价也证明了这一点:优点是回答问题的时候不是只局限回答本身,而可以继续向下延申,可以体现出自身的一个知识体系以及知识的深度和广度。
举个栗子:二面的时候有一个问题是EPOLL的ET和LT模式的区别,这一个问题不但可以说明两种模式在处理fd方式的不同,也可以说出他们在源码层面的实现方式,也就是在epoll_wait()函数中因为ep_send_events_proc的一个小动作,影响了下一次的ep_scan_ready_list处理。还可以说出某些常见服务器所用的方式以及为何。
当然,这些只是我面试的时候的做法,可能有人会觉得这样做相当于给自己挖坑所以大家看看就好
最后祝各位2020届的师兄师姐早日上岸,也祝2021届的小伙伴早日拿到自己心仪的offer