干货 | 非科班C++后台实习面经

论坛 期权论坛 期权     
校招薪水   2019-7-28 00:23   3186   0
[/url]
点击上图,立即进群!

作者:Evila
已获得原作者授权,著作权归原作者所有

一、个人背景
楼主本科某211计算机科学与技术(空间信息与数字技术)专业。硕士某C9地理信息专业,也许有大佬了解这个专业。本科因为是计算机学院的,因此一些专业课都接触过,考了个软件设计师的证,参加过一次全国计算机仿真大赛(没拿到名次)。研究生期间用python写了互联网地图爬虫、新浪微博爬虫,参加了一次游戏开发竞赛(Unity + C#),3月以来学习C++网络编程,读STL源码剖析,复习操作系统、计网、数据库原理等知识。刷题不多,参加了两届蓝桥杯软件设计竞赛(去年省三、今年省一)。因此,这是一篇非科班渣硕的实习面经。楼主目前拿到海康威视C++研发、亿联网络C++研发、华为(不知道部门)、腾讯CDG后台开发(hr口头offer,保佑并祈祷oc)。




二、实习面试过程

01

华为 (线下面试)


如果楼主没记错的话,楼主参加的是华为勇敢星实习招聘的第一批笔试,AC了2.5道,4月10日前往南研所面试。面试过程不是特别好吧,主要原因就是等太久。记得通知给我的是10点30一面,楼主9点就到了,然后在南研所的阶梯教师等到11点30才通知进去面试。楼主在华为招聘官网上申请的是IT产品线和CloudBU,其实对华为的部门分配没有认真的去了解过,因此这也是楼主在投递华为的过程中比较不好的一点。一面坐下后,面试官首先表明自己是数通部门的,楼主当时脑子里对这个部门并没有印象,但还是愉快的和面试官聊了起来……


1.面面试官对楼主简历写的网络爬虫问了很多,几乎每个爬虫都认真的去问,大概包括你如何改善爬虫的速度,答:多线程/多进程(python);继续问那么你是如何验证多线程比单线程速度快的呢?


答:没有测试…,因为楼主的互联网地图爬虫是与科研论文所需相关,当时要改善速度的原因是因为论文需要,因此达到论文需求后楼主就没有继续改进。但解释完后,楼主补说后面会设置程序计时器来对一组数据进行测试,然后得出多线程和单线程的速度差别…。随后又聊了新浪微博的反爬虫,然后楼主问面试官:华为做爬虫吗?(头铁的人才会这么问吧),面试官笑了一下说不做,然后说我就是看看你有没有认真做项目,对你自己做过的事情了不了解。然后聊了一下楼主学的C++网络编程,面试官没有再发问了。随后面试官介绍了一下华为数通产品线,说主要做嵌入式、C语言开发,然后面试官说我先给你过了,然后你去等着吧。此时楼主内心是觉得太轻松了,怕评级太低,就突然对面试官说:您不问问C/C++基础吗?(又是头铁发言),面试官笑着说:你都准备好了,我还有什么好问的呢?然后所有人午休了,楼主又等了3个小时……


2.面的面试官应该是数通部门的领导了,不怎么笑,气氛有点尴尬,自我介绍了一下还没说完。面试官问你这个专业是干嘛的,楼主解释了一下后,面试官说:你应该去找滴滴啊、高德啊,为什么要来华为啊?这个问题确实应该提前准备一下,因为华为不是互联网的定位,也许通常会问面试的同学为什么要来华为不去互联网?此时楼主并没有很好的回答方案,就只是夸了一下华为,说想来锻炼一下。然后聊了一下C++网络编程,其实是楼主主动介绍的。但面试官听完楼主介绍后,就开始说他们部门是做什么的,有点像讲课一样把以网络的7层结构为基础介绍了数通的产品,楼主就点头,然后面试官说某一层的时候,楼主把常用的协议说出来。随后聊了实习地点,是否会转正等。


4月10号面试完后,4月11官网显示录取排序,状态吗6.0,楼主南研所第二批开奖拿到offer(属于比较菜的)。
02

海康威视 (视频面试,1面技术+2面hr)


海康没有笔试,楼主投的是C++研发总部,base杭州。一面技术面,一共持续了30多分钟吧,自我介绍后面试官主要问C++网络编程这块。
1、 客户端和服务端用socket通信的主要流程。楼主把C++socket API的函数说了一遍,包括bind(),listen(),connect(),send(),recv() 和 I/O复用的模型select()。
2、 select()工作原理,有什么限制和优点。
3、 有了I/O复用,为什么还需要socket???socket存在的意义是什么???
4、 聊游戏项目,面试官主动讲他上大学的时候也和同学一起做游戏。然后楼主就把参加的游戏项目和面试官讲了一遍,包括游戏中一些小设计等。
5、 反问问题:楼主讲了海康给的实习具体工作内容,面试官说是负责海外的平台开发,会涉及到视频流的网络传输,让我回去看rtp协议和其它相关内容。
6、 Hr面就是聊聊天,问问家里,问问遇到过什么挫折?
4月30结束hr面试,5月8日接到offer。
03

亿联网络 (视频面试,1面hr+ 2面技术)


整体面试体验做好的一次,发offer的hr小哥哥人也很好,而且不催我接受offer
亿联也没有笔试,楼主投的是C++研发,base厦门。亿联有自主研发的在线视频和语音的软件,因此面试是通过这个软件进行的。一面hr面,主要聊天内容集中在是否想来厦门。
二面技术面,时间过的有点久了,属于聊天式的提问,主要集中在计算机网络这里,包括TCP的连接状态,网络编程的方法等。记起来一个:send()函数执行成功是否代表数据发送成功了?楼主当时有点慌乱,回答的是通过send()函数的返回值来判断是否执行成功,但其实面试官问的是数据传输是否成功了,应该从发送端通过send()函数发送数据到接收端的内核缓冲区中这个角度阐述答案。然后问了一个冒泡排序的思想?然后面试官非常nice的说,应该没有问题,你还有什么问我的?
二面结束的第二天早上就有hr小哥哥加我wx,告知offer随后发到邮箱啦!
随后和hr小哥哥聊了很多,因为加了微信,hr小哥哥告知他们公司只招30个人,听到这里楼主觉得还挺幸运的,看到牛课上一些关于亿联公司的评价都还挺不错的,办公环境好啊之类的,所以大家如果感兴趣的话,推荐参与这家公司的面试!
04

腾讯 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!

推荐阅读:



一个没有任何套路的求职公众号


长按识别关注校招薪水


校招薪水,是面向全球高校学子的校招薪资交流以及求职互助平台。平台致力于校招薪资的透明化,给招聘信息做减法,在提供高可信的薪资查询服务外,鼓励大家远离焦虑,避免套路,减少踩坑,让广大校招求职者更加专注于求职这件事情。目前平台已经累计提供了数千万次免费薪资查询服务,累计合作无套路信息推广企业达数十家,在国内外名校学子中口碑极佳,公众号跟小程序用户数已累计突破30W。校招薪水,用薪相随!校招实习以及雇主品牌宣传合作请添加微信:zjuerdream。
辛苦整理,喜欢的盆友告诉我在看哦
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:15
帖子:4
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP