腾讯暑期实习后台开发,已拿OFFER
一面,电话面:
自我介绍
上来就问项目,我项目写的挺多,面试官挑其中感兴趣的几个讲了大概30分钟,然后这是我简单汇总的问题:
1.介绍下你的项目
2.技术选型,为什么选择这套框架(分析了如何根据业务需求进行技术选型,主从业务server设计,长连接短连接的分开处理,media文件的Oss存储)。
3.前置server的选择和设计(其中穿插了线程进程的区别,多线程多进程怎么选择,优先队列的实现,无锁队列的实现,并发性能的优化,测试并发,协程原理,epoll select区别,reactor proactor prefork req rep设计模式这些)。
4.业务server的选择和设计(讲了数据库连接池的设计,如何调优,分析瓶颈)。
5.日志的设计(讲了流水日志/开发日志两套日志系统的设计,如何进行日志分级设计,日志每条信息格式化,日志文件的rollover,日志刷写策略,日志容灾设计,关键信息异地存储,运维警告信息通知策略,rabbitmq的使用,rabbitmq的ack设计,tcp/udp大文件传输这些)。
6.数据库的使用,顺带问了下redis的介绍,redis的数据结构,redis与Mem***d的区别。
项目完了,面试官开始考察一些C++基础知识
1.C++的子类虚继承两个父类的内存模型。
2.GDB的一些指令,问我看汇编指令我没打上来。。。QaQ,顺便问了我几个寄存器是干嘛的。
喜欢玩游戏吗?喜欢?嗯?你还是游戏婆罗门?
了解游戏服务器吗?了解一些?好来说说。
然后就是被虐了20分钟,因为我之前向一名学长(aov后台)学习过,答得不太好但是面试官对一些思路给与了认可,算是聊的比较开心吧。
其中涉及到了几万个数中找到自己的数的排名,业务流量的负载调优等。
一面结束。
二面,视频面:
应该是Leader面的我?简单的开场,自我介绍都没有,直奔主题:
1.上次哪些问题答得不好?我把上次关于游戏服务器的回答情况跟面试官回答了一下。
2.回去有看过吗?有
3.说一下。讲了很多自己对游戏服务器的理解,期间面试官会问你一些问题,比较尖锐,但是整个氛围很棒,有点感觉像是在讨论。
4.说说你项目的难点。从技术难点跟业务难点两方面做了分析,大概讲了10分钟吧:技术难点从服务器并发设计+数据库连接池设计讲的,业务难点是从云打印模块跟支付业务设计讲的(国外没有alipay wepay这么方便的东西T T)。
说完了面试官对我在数据库连接池的一些设计提出了修改建议,赶紧记下来。。。项目问题结束。
5.不错,用过STL吗?用过
6.vector实现讲一下。
讲了vector内存模型,分配器的实现,迭代器的种类(顺便讲了迭代器失效这类问题),提了一下traits机制。
面试官的技术问题差不多就这些,然后跟我讨论了下本科还有研究生期间学习的事,问我本科成绩,为啥没前10%,我说有些分心吧,本科除了学习写代码,参与了同人游戏的制作(原画),大三参加了一个设计创业团队做设计相关工作。
整个过程下来比较顺利,面试官让我回去等hr。
HR面,电话面:
居然是一面的面试官!【听声音听出来了,当时还是有点慌慌的】
围绕着大学生活讲了很多,虽然是HR面,但是也讨论了一些广义上的技术点【业务难点?技术难点?团队分工合作这类的】。
今天中午接到真·HR电话,确认了下信息,下午收到OFFER。
分享给大家,希望大家都能收获心仪的OFFER!加油!