腾讯PHP/GO工程师面试经历
一面是技术面,用的腾讯会议,开局自我介绍之后就开始做题。题目不算难,都非常考验基础扎不扎实。面试官特别喜欢就一个问题深入去问,直到你卡壳。
第一题是非常经典的,从浏览器敲下地址到页面呈现出来,中间发生了什么事情,越详细越好。
主要是说说 TCP 三次握手,四次挥手,详细的状态转换,以及 time_wait 状态存在的意义,滑动窗口也要说一说。以及 nginx 和 php-fpm 是怎么通信的,fast-cgi 对比 cgi 有啥改进。
第二题是 JS 的浮点数和 async、await 的题目。
浮点数在计算机是怎么表示的,这个要答全一点.async 和 await 都是随便答一答,只要中规中矩就过关,没有深入追问。
第三题是 Vue nextTick 的原理。
第四题是 go channel 相关的题目,读代码写出执行结果。
第五题是 go defer 顺序问题,读代码写出执行结果。
第六题是 go slice 的相关原理。
第七题是 php-fpm 进程数量过多,如何优化的问题
第八题是 php 内存泄露如何排查,处理的问题
第九题是 GPM 模型的原理,以及 GO 不同版本的 GC 算法原理
第十题是 mysql 分表分库问题,及正在运行的业务中,数据表修改字段如何避免锁表导致业务不可用的问题。
第十一题是 redis 相关的,分布式锁,延迟队列,跳表的一些问题
第十二题是数据结构相关的,有向图的连通性问题,要手写代码。
除了面试题,一面还就你简历上你写的技能做了一些问答,还问了些项目相关的东西。
一面过了之后,二面就跑去深圳面,是组长和组员一起面,问了些项目相关的问题再聊聊人生,我没把细节答好,就没下文了,想想还是可惜。
总结起来,一面的范围相当广,从 php、go、js 到 mysql、reids、nginx、mq。也有一定的深度,但总体不算难。二面主要面项目经验,如果没做过大项目,就非常吃亏。
往期推荐