阿里、腾讯、百度、美团、商汤offer 面经
首先简单介绍一下自己的秋招情况:拿到了阿里云、微信、商汤、百度广告feed流和ai医疗两个部门以及美团打车的offer。都是工程类,base都在北京,其中,微信是暑期实习转正,具体待遇都还没谈。.一直以来在牛客获益良多,因此打算写一个面经,希望能帮助到大家。
先声明一下,我并不是什么大神,在提前批7月份的时候因为准备不充分,面头条还挂了。我的面经内容也不是列举我所遇到的面试题,而是从另一个角度谈一谈我面试的一些经验。
在简单介绍一下自己的背景,我硕士阶段研究的内容相对小众,做高性能计算。找工作的时候,我并没有局限于高性能计算,投的岗位基本上是C++研发。
在介绍成功经验前,先谈一谈失败经验--头条。头条是我第一个秋招面试,七月初,准备比较少,算法题只准备了剑指offer。后来也自然而然的挂了。但这次失败经验还是很值得的,让我知道了自己的不足。
总结经验。认为主要问题出现在以下几个方面:1)算法题刷的不够多,不够熟练。2)基础知识掌握的不够扎实 3)我个人最欠缺的一点(或者说忽略的一点),面试技巧。
针对第一点,我后来把LeetCode上的精选top面试题全刷完了,一些经典题甚至刷了好几遍,做到基本不需要思考就能写出没有bug的代码。这些常考题不多,我总共就刷了200+,后来面试碰到算法题基本都在这里面。
针对第二点,我看了全部C++ Primer、全部深入理解计算机系统、部分effective c++、部分modern effect c++、部分STL源码剖析、部分高性能Mysql。此外我还在b站看了侯捷老师的全套c++视频,清华向勇老师的操作系统。具体哪块比较重要,经常刷面经的话,大概也都了解。其中,前两本书有时间的话,我是建议全看完的。这也牵扯出一个复习方式的问题,有些人喜欢通过不断的面试、看面经找不足,这是短时间内提升的最快方法,但时间充足,我更建议按部就班把该看的书全看了。这样自己的知识点才更全面,理解更深刻,知识结构更清晰,效率反而更高。
针对第三点,我认为这是往往被忽略的一点。面试时间很短,每一面只有大概1个小时,如何在这么短的时间内让面试官觉得你很牛逼呢?所以,会介绍自己、推销自己是很重要的。但是面试官也不傻,所以解决一、二点是前提,打铁还需自身硬,此外最好能有三四个能拿得出手让别人找不出太大毛病的项目,基于star法则,事先准备一套条例有序的项目介绍。如果觉得自己的项目好,就要主动出击,主动去介绍,不要等面试官去问,尽量让面试节奏把握在自己手中(我面头条就是这种问题,我项目里好几个高性能计算的,自认为还不错,可面试官不搞这个,也没问,全程在问基础知识,问的多了很难面面俱到)。
在面其他公司前,我一腾讯师兄的话一语惊醒梦中人,大概是说,你有一个别人很陌生的项目不是坏事反而是好事,你把一个别人不懂的东西给人讲明白了让别人感兴趣了,这本身就是一个很好的展示自己的机会。
也是从那之后,我开始了自己的offer收割之旅。之后面这几家公司的时候,基本都是在自己的节奏中了,面得越多自己的控场能力就越强,一切都仿佛似曾相识。每一面,面试官会让介绍自己,这时候我就主动介绍项目。然后面试官会挑一个项目具体细问,因为每一面问的项目都会不同,这也是为什么建议大家准备三四个项目的原因,可以每一面的时候介绍不同的项目。介绍完项目后,时间过去三分之一多了,再把算法题和基础知识题扛住,面试就没什么问题了。介绍项目最好的一个状态是,你能把面试官从不懂到听懂到感兴趣到可以互相交流。我某一面的时候面项目,面试官懂一些高性能计算,问你们这个项目有什么问题可以改进的地方吗?我也没有刻意回避,就说了一些我项目目前遇到的问题,他听了之后,还建议我blabla……我们聊得有来有回;还有一次,我给面试官介绍完项目,面试官直接说,你们这个东西做的挺牛逼啊,这是我认为这些是聊项目聊得非常理想的状态了,给面试官留下了好印象。当然,这一切前提是项目要真的靠谱,技术细节你也真的懂,否则被问住了反而会更惨,所以技巧是要有,但东西也必须实事求是,100分的东西向别人展示的时候要让人家觉得确实是100分的东西。
当然也有例外,阿里部门leader面的时候,基本就是面试官全程控场,还好自己不是太水货……问的东西都给扛住了……
而且大佬们似乎都喜欢问一些比较宏观的问题,而不是问一些具体的知识细节。像我硕士搞高性能,微信实习做后台,前后有三个部门总监大佬问了我同一个问题:HPC(high performance computing)和RPC(remote process call)有什么区别。
此外有一段大厂的实习经历还是挺有用的,在面试过程中,我觉得微信给我的加成还是不小的。如果你也有大厂实习经历,一定要想好怎么充分利用。
以上,希望能对大家有所帮助!
#阿里巴巴##腾讯##百度##美团##商汤科技##C++工程师##面经#