网易杭研院C++内推,拿到offer,我也来水一下面经
统一回复:录取offer已经发到邮箱,价格比想象的高一点点。
看着大家都在分享面经,我也来水一贴。。。
简单起见,用M表示面试官,A表示我的回答。
电面:
大概下午五点左右,正在撸代码,突然收到一个电话说是网易内推面试,问我方不方便,当然说方便,然后我说我去楼下接,约好两分钟后打过来。
M:你介绍一下自己吧。
A:基本上按照简历上来,学校专业,研究方向,项目经验,技能啥的。
M:进程通信的方式。
A:管道、消息队列、socket、共享内存。
M:解释一下管道吧。
A:(胡乱说了一通,哈哈。。。)
M:windows和Linux进程通信有什么不同?
A:不太清楚,对windows编程不熟悉。
M:平面上有很多点,要找一个半径最小的圆包含所有的点,怎么做?
A:篇幅较大,就不详细说了。
M:介绍一下C++11的基本特性。
A:Lambda、变参模板、auto、decltype、constexpr、智能指针、列表初始化、正则表达式、线程库、静态断言、委托构造。。。(反正把书上看的都给解释了一遍)
M:shared_ptr和unique_ptr的区别。
A:一个共享,一个独占引用对象。
M:weak_ptr有什么用?
A:和shared_ptr配合使用的,具体没用过,有些忘了。
M:回调一个对象的成员函数,但是这个对象可能已经不存在了,怎么办?
A:用智能指针吧。
M:什么智能指针?
A:shared_ptr。
M:那如何知道对象不存在了呢?
A:。。。不太清楚。
M:这个就是刚才你不清楚的weak_ptr的用处了,可以判断对象是否还存在。
A:谢谢,学习了。
M:知道模板吗?
A:知道,标准库大量采用了模板技术。
M:恩,我们知道,模板是一种很强大的技术,你知道模板主要有什么缺点吗?
A:1. 模板是一种编译期间生成代码的行为,无法进行断点调试,所以很容易产生bug;2. 大量使用模板会造成代码空间膨胀,极大的延长了编译时间。
M:我没什么问的了,你有什么问题吗?
A:我想知道我目前做的工作是数据挖掘,去面研发岗会有什么劣势吗?
M:我们比较看重可塑性,知识反而是其次的。
A:我没什么问题了。
M:好的,那如果有消息会在一周左右通知你。
一个周之后,收到电话通知到杭州现场面,结果发现高铁没票了,尼玛,果断南京转车。
现场一面:
本来约好三点钟面试,结果等到了快四点吧,一面官感觉比较水,做网易云音乐的。。。
M:你介绍一下自己吧。
A:。。。(看着简历说了一通,等会儿总结里面介绍一下我的感受)
M:如果来网易,你期望做什么工作?
A:我想做一点偏研发的。
M:客户端还是服务器?
A:后台吧。
M:那可能要转Java了,一般我们都用Java做后台。
A:我无所谓,不过Java不太熟。
M:恩,这个没关系,我们会对新人进行一个月培训,你有什么问题吗?
A:你是什么部门呢?
M:我是做网易云音乐的。
A:是吗?哈哈,我天天都用诶,我认识一个浙大的学弟发起了一个开源的网易云音乐Linux客户端。
M:那个我好像听说过。
A:你们工资大概是什么水平呢?
M:大概16个月吧,看部门不同,今年硕士应该在12-13之间,去年有部门效益比较好,最后算下来到了17个月。
A:我没什么问题了,谢谢你!
一面总结:感觉一面看人品,有现场面的同学写了好几个算法数据结构的题目,我好像就是在吹牛?哈哈。。。我的感受就是让介绍自己的时候,多说一些,然后重点说自己的项目,我重点说了一个大数据调研的项目,然后把他引入了这个项目,然后我们就在这上面聊了很久,时间拖够了,他也就没啥问的了,所以后来我们就聊天了。
现场二面:
又等了许久,迎来了二面。本来以为一面水过去了,二面要难一些,
我还在看KMP呢。结果二面也没让我写代码,很不爽的感觉有木有!
M:介绍一下你自己吧。
A:(怎么都有这个问题?又开始扯了。。。)
M:你印象最深的项目是哪一个,你觉得有什么收获?
A:我印象最深的是在XX(某国内一线互联网公司,具体不说是哪一个了)实习的项目,在里面做大数据的统计、分析与调研,之所以印象深,是因为我给出的数据关系到领导决策,从而直接影响我们的收入,对数据的精准性要求非常高,我觉得这个经历培养了我的严谨性和责任感,我必须对我给出的数据负责,如果出错,我会非常自责,而且我也会非常谨慎的验证我给出的结果。
M:你是如何保证数据的准确性的?
A:经过非常多的测试,首先,我在跑hadoop之前,会本地测试代码有没有bug,然后会写一个脚本与之进行double check,然后我会在集群上跑一天的数据,再通过另外一个脚本跑一天的数据,对比,如果没有差别,再跑全部任务,通过多次测试得出的结果基本上就不会出错了。
M:说一说你对C++11的理解吧。(简历上有写C++11)
A:我觉得C++11就是填坑。
M:也不能说是填坑吧。
A:恩,简单说是填坑,如果再进一步看的话,带来了一些语法糖。。。(较长,此处省略。。。)
M:我看你的简历,感觉你开发和算法都在做,比较杂,如果你来网易,想做什么样的工作,为什么?
A:(一面也问过类似的问题)我想做后台,因为做过C++、数据挖掘、网络爬虫方面的项目,但是没接触过后台,想接触一下这方面的技术,我本身也对研发很感兴趣。
M:你有什么问题想问我的吗?
A:网易旁边房价如何?(其实我很想问丁老板的猪养好了没。。。)
M:我们周边也就一万多吧。
A:那你们加班比起bat是什么水平呢?
M:我们也有加班,但是和业内比起来算是中下水平吧。
A:我没有问题了,谢谢你!
M:恩,你去休息一下等三面吧。
二面总结:感觉就是要自己抓住主动权,不停的说,我老是重点给他说大数据的项目,他是做研发的,也不太懂,感觉就是我抓住了节奏,然后给他讲各种高大上的概念,什么二价拍卖、流量实验、拍卖策略啥的。。。然后他相对来说就问得比较温和了。
现场三面:
本来以为三面就是HR面了,结果虽然是HR面,但是旁边还有一个问技术的,而且一来就问我不会的,差点吓尿了。。。
HR:你期望年薪是多少。(要不要上来就这么直接)
A:20W以上吧。
M:你知道索引是用什么数据结构实现的吗?
A:不太清楚,我知道数据库是用B树实现的。
M:为什么用B树?
A:B树在磁盘查找次数上会比较少。
M:具体原理知道吗?
A:不知道。
HR:我看你在XX实习,有offer吗?
A:有了。
HR:口头还是正式?
A:周五刚给的正式offer。
M:你最熟悉的项目是哪一个,为什么?
A:(怎么都问这个问题。。。又重复了一遍)
M:你是怎么保证数据准确性的?
A:(见二面)
HR:为什么不考虑XX公司,来网易呢?
A:一线城市压力太大,而且我个人比较喜欢研发,XX公司给我的是数据挖掘岗位。
M:你对算法熟悉吗?
A:还行吧,学过。
M:学过就算了。
A:没事儿,可以问。
M:你最熟悉的是什么?
A:C++吧。
M:说一说volatile关键字的作用吧。
A:防止编译器优化,比如在多线程程序中。。。(省略两百字)
M:我没问题了。
HR:你有什么问题?
A:。。。我来杭州因为没买到直达高铁,在南京转车,可以报销吗?
HR:(无语。。。)这个你去前台问吧,不归我们负责。
A:那我没什么问题了。
HR:如果通过,我们会在一周到两周之内通知你结果。
三面总结:完全没想到HR面还有技术,差点就不会了,不过还好我又靠实习项目给水过去了。。。
然后出去之后工作人员就带我去食堂吃晚饭了。
总结:通过和别的同学交流,我觉得对于项目经验不够丰富的同学,基础知识就比较重要了,会问一些手写代码的题目、操作系统、TCP/IP啥的;对于项目比较丰富的同学,在介绍自己的时候,就重点介绍自己的工作,把时间拖够,面试官也就没啥时间问你了;对于所有同学,都得有一项自己拿得出手的,无论编程语言、算法、TCP/IP、Linux都可以,这样你就可以把面试官引入这个话题。
最后,祝大家offer拿到手软!