【腾讯】C++岗-非科班渣硕面经(CDG口头offer)

个人背景:

楼主本科某211计算机科学与技术(空间信息与数字技术)专业。硕士某C9地理信息专业,也许有大佬了

解这个专业…。本科因为是计算机学院的,因此一些专业课都接触过,考了个软件设计师的证,参加过

一次全国计算机仿真大赛(没拿到名次)。研究生期间用python写了互联网地图爬虫、新浪微博爬

虫,参加了一次游戏开发竞赛(Unity + C#),3月以来学习C++网络编程,读STL源码剖析,复习操作系

统、计网、数据库原理等知识。刷题不多,参加了两届蓝桥杯软件设计竞赛(去年省三、今年省一)。

因此,这是一篇非科班渣硕的实习面经。楼主目前拿到海康威视C++研发、亿联网络C++研发、华为

(不知道部门)、腾讯]CDG后台开发(hr口头offer,保佑并祈祷oc)。从2月末以来每天光临牛

客,收获良多,因此写此面经一方面总结自己,一方面回馈牛客。

腾讯CDG 事务型开发 (3轮技术+1hr)

就在楼主准备抉择上述3个offer的时候,腾讯突然发来了面试邀请,楼主都不知道腾讯捞了,果断接

受邀请,第二天下午2点牛客网视频面。戏剧性的一幕还是躲不掉,楼主当时以为只要能视频就可以

了,结果拿了个ipad就准备在牛客面试,没想到ipad是不行的,要pc端…,当时心里万念俱灰,没想到

面试官看到楼主没有进牛客的面试房间,一个电话打了过来询问情况,楼主如实说明后,面试官说那改

到下午6点吧。太感人了!腾讯怎么有这么好的面试官!

一面 (一小时20分钟,牛课视频)

这一面是楼主面腾讯经历过最紧张,压力最大的一次。首先面试官是超级好的,只是楼主自己没有自

信,说话小心翼翼。

1、 自我介绍,每个项目都深挖。网络爬虫中生产者消费者模型介绍一下,新浪微博反爬虫怎么做的,游戏中一个著名的A*寻路算法了解吗?(楼主恰好了解一些)

2、 C++语言方面看过哪些书? 答:C++ Primer、 STL源码剖析。

3、 STL源码剖析是侯捷的那本吗? Vector如果和哪个数据结构最相近?答:数组。Vector的内部结构是

怎样的?答:连续的内存分配,3个迭代器,begin、end、end_of_storage;vector的存数据和取数据

的时间复杂度是多少?答:只能push_back,复杂度是常数,并补充查找元素的时间复杂度是O(n),然

后看到面试官有点头笑!Vector的扩充机制说一下?为什么是2倍扩充,1.5倍不可以吗?答:楼主其实

不是特别清楚,只说×2的话比较利于计算机计算,还有内存碎片上的考量。面试官没继续问了。

4、 STL中的list和哪个数据结构最相近?答:双向循环链表。存数据和取数据的时间复杂度?答:随机

访问时间复杂度是O(n),支持push_back和push_front.

5、 还用过其它容器吗?答:map,unorderedmap. 内心猜测其实面试官应该就是想问这两个。然后

主动说map的底层是一颗红黑树,unorderedmap底层是哈希链表。面试官继续问,红黑树是什么?

答: 平衡二叉排序树,因为高度平衡,因此不会出现某一只手臂过长(侯捷老师原话),因此一般的操

作时间复杂度都位置在O(lgn)。继续问,哈希表的冲突解决方法?答:开放地址、哈希链表、再哈

希。补充,开放地址法又分为顺序探测、二次探测等。

6、 内存池了解吗?楼主回答了STL中的内存池设计。

7、 操作系统看过哪些书?答:操作系统基本原理(楼主也不知道有没有这本书),王道考研操作系

统。面试官问为什么看考研的书,答:这本书的知识调理清晰,很适合复习…。

8、 多进程和多线程之间的区别?经典问题…

9、 操作系统的进程调度策略?楼主这里卡了1分钟左右,然后想起来是什么先来先服务、短作业优

先、优先级优先。楼主还没说完,面试官打断问:先来先服务和短作业优先适用于哪种类型的操作系

统?楼主又卡了1分钟,答:不分时操作系统(当时真想钻进地缝…)

10、 Linux熟吗?答:不是很熟,了解过shell脚本的语法。面试官没继续追问了。

11、 说一下内存碎片,外碎片和内碎片?经典问题

12、 计算机网络看过哪本书?答:谢希仁的那本计算机网络。

13、 TCP/IP的网络分层说一下,相关协议说一下…

14、 Ping命令的基本原理?答:ICMP,发送主机发送echo请求,接受主机回复echo报文。

15、 Select和epoll的区别?各有什么特点?经典问题

16、 看到你说你参加过一个程序设计竞赛?答:蓝桥杯,参加了2届,随后开始聊比赛,面试官曾经也

应该是打比赛的。然后居然还问我,你今年这次比赛都AC了哪些题??? 楼主尽力去回忆了几道题。

然后主动说自己的不足,dp掌握的不扎实啊、数论了解不深入啊等等。

17、 算法竞赛都看什么书?答:买过算法]导论、刘汝佳的算法竞赛指南。面试官给了一些竞赛的建

议,然后说竞赛对一个人的成长帮助很大,等等。

18、 数据结构应该很了解吧?答: 应该还不错。问了快排的实现原理,是否稳定,平均、最坏时间复杂

度。怎样避免最坏时间复杂度的情况?答:随机选择哨兵。

19、 还了解什么算法?楼主这里有点懵,不知道怎么回答。就说:DP、DFS、BFS、字符串算法、并

查集、博弈论、欧几里得算法…,这里超级紧张,好怕面试官深问,但还好没继续问。

20、 目前的C++代码量?编程过程中一般如何调试?

21、 反问问题。问为什么被面试官捞了起来?(哈哈,楼主内心就还是觉得很意外) 然后面试官给了学

习建议,介绍了CDG的业务。

还有一些没有完全记下来,虽然面试官人很好,但聊到后面楼主都麻木了,幸运的是,面试结束后很快

就看到,状态变成了复试!

二面 技术电话面 (30分钟不到)

1面结束第二天,就约了2面,可能是时间比较靠后了吧,面试官们工作效率超级高。二面只面了不到

30分钟,自我介绍都没介绍完,就被打断了。接着对楼主硕士的专业表达出了些许不满意吧。

主要对楼主简历上的C++socket网络编程项目进行简单的提问吧。

1、 socket编程方法

2、 网络粘包的处理手段

3、 内存池如何设计

然后就要结束了,楼主以为要凉了,就急着向面试官说,可不可以再提问(头铁…),面试官无奈加问:数

据库了解吗?索引是什么?

楼主回答了索引,并扩充了一点知识。然后反问问题,结束二面。10分钟后,发现状态变成了hr面!

太惊喜了,一度以为要凉了!

Hr面 微信视频面,53分钟

是的,你没有看错,hr面了53分钟。二面结束第二天,hr打电话过来约微信视频面试,然后楼主和hr

小姐姐面了53分钟,具体内容是常见的性格方面和做事能力方面的考量吧。然后告知,加一轮交叉

面。是的,并没有结束,压力超大的交叉面

GM/EVP/面委 电话,40分钟

时间是周一早上9点,接到了面试官电话,也是CDG部门的面试***会面试官。自我介绍后,直接发

问。面委一般会一次性问多个问题,然后听我统一回答。

1、 TCP和UDP的区别,TCP的拥塞控制和流量控制方法。经典问题

2、 多线程和多进程区别,虚拟内存介绍一下。经典问题

3、 数据库的索引,事务和mysql相关介绍一下。经典问题

4、 Main函数执行之前还会执行什么?

5、 网络编程中,如何解决数据传输的安全性问题?加密算法了解吗?

6、网络爬虫的工作流程,如何解析网页结构,如果解析jason和XML,你自己补充着说!

前3个问题,楼主回答了很久吧。4和5不是很了解。面试官可能觉得楼主的项目并不出众,没必要深挖

了。

反问环节,结束面试。

补充一下,楼主腾讯提前批挂了一次,正式批参加笔试,做的是游戏开发的卷子,ac了2道题…

面试完成后,10分钟状态从GM/EVP/面委又变成了HR面,然后过了10分钟变成已完成!随后楼主联系

hr小姐姐,小姐姐告知所有环节通过。又过了一天,给了口头offer。一个星期的时间,经历了腾讯4轮

面试,收获良多!在这里祈祷offer call!

更新:

5月24日收到offer!

发表评论

后才能评论