华为、腾讯等企业面经分享
华为、腾讯等企业面经分享
从大学到现在,一直断断续续的在做着c++开发的工作。也参加了华为、腾讯、今日头条等不少的公司,也拿了一些不错的special offer,但是一直没有认真的写一篇面经。
最近比较有时间,准备好好的总结一下,希望能帮助到需要的人。这里可能只能大概的写一下面试的流程和范围,具体的问题和答案,可能后续会专门写一个帖子。
我是17年的本科应届毕业生,这份面经可能只能帮助到华为13-14级或腾讯t2.2以下这个水平的朋友,对做开发很多年的“老猴子”可能帮助不大,赶时间的建议左右绕行。
华为
岗位:c++后台开发
面试性质:校招
面试流程:在线笔试 + 性格测试 + 技术面 + 综合面
在线笔试
在线笔试题是三道比较简单的编程题,分值好像是100、200、350,第一道一直都是字符串处理,第二道是动态规划的题目,第三题是个比较简单的树。题目很简单,需要注意的主要是边境条件和异常场景。对与c++来说,如果不做好这些特殊场景的处理,很容易导致堆栈溢出,需要特别注意的是一旦出现这种段错误,全部用例都会不通过的,拿不到分的。
据说在线笔试的通过分数是100分,因为华为除了开发,还需要大量的测试、运维、技术支持的相关人员,所以对编程要求不会太高。但是这里要提一下,后面我看了定级的标准后,发现这个机试分数在350分以上是有助于拿到special offer的,所以还是很有用的。性格测试
做完笔试后不久吧,大多数人都会收到性格测试的链接,个人感觉这个测试很好通过,只要不是前后矛盾,拒绝团队合作,完全不愿意奋斗的问题都不大。技术面
华为校招的技术面是在一个酒店的大堂进行的,面试是一对一进行的,面试官应该是华为15级的开发人员为主。
最先问的是一些c++语言相关的问题,主要是什么c++ 和c 的区别、介绍下c++的多态,static有什么作用之类的问题,这些东西任何一本c++的基本教程上应该都有,这里还是推荐下《primer C++》 《effict c++》
然后是问了下操作系统的相关问题,问会不会使用linux,介绍下你理解的死锁和解除死锁的方法。简单的说了下就可以了,没有深入的追问。
再接着聊到了数据结构和算法。只记的问的是你知道哪些排序算法,然后问就巴拉巴拉把知道的都说了一遍,并手写了快速排序(如果说真要准备一个排序算法的话,完想一定是这货)
最后聊的是大学的项目经历,如实说就好,其实面试官也是过来人,都知道很多同学简历里那些什么管理系统、通讯录什么的是什么玩意,千万别吹过头来哈。如果有国创 srp 这样的项目最好,你做的东西比如音频、图像处理、机器学习什么的面试官很大概率是不懂的,他们可能会抓住他感兴趣的一个点问,如果这部分确实是你做的,一定要抓住机会详细的介绍,如果你并不熟悉的话,直接说这个不是自己负责的,并说明下自己主要是负责哪一部分的。综合面
综合面是紧接着技术面进行的,如果你面完技术面就没人通知你下一面都话,那么可能就gg了哦。综合面嘛,个人感觉完全就是吹水啊,因为没有单独的hr面,很多本应该由hr问的问题都在这聊了。
需要注意的几个问题就是:
为什么不准备考研,选择工作啊?
为什么选择华为,不选择bat?
网上说华为工作压力大,加班多你怎么看?
这些问题没有放之四海而皆准的标准答案,大家可以在自己心里先想想这些问题,同时也要认真想一下自己是否真的适合华为?
总结
华为是一家伟大的公司,但是并不是适合所有人的公司,这里也包括我本人,这是后话了。总的来说,面试的难度不大,但是要拿到special offer机试满分+面试评价全a + 国创、srp项目经历 + 个人专利 + 社团干部 + 奖项,最终拿到的就是网上流传的那个18*16的special offer。其实华为这个国际化的平台对应届生还是挺不错的,加入华为做一只有狼性的哈士奇吧!
shopee
岗位:go后台开发
面试性质:社招
面试流程: 技术一面 + 技术二面 + hr面
写在最前:可能大多数小伙伴都没听说过 shopee这家公司,这里简单介绍一下,shopee成立于2015年,是东南亚最大的电子商务平台,其母公司Sea是腾讯游戏的海外发行商。
技术一面
shopee的后台主要是Python 和 go 的,因为我主要是做c++后台的,shopee看了我的简历,安排的面试内容基本都是c++的,感觉这个很贴心。也就是说shopee可能不会很在意你原来使用的语言。
面试过程节奏十分紧凑大概一个小时,面试官态度非常好,面试题目都是事先准备好的,主要分以下几个维度:
基础语法:就是几段代码,主要问题都是出在一些对象的生命周期上以及一些引用使用不当上,可以说非常基础,从事过c++开发的人肯定能全部找出来的
算法:一个复杂链表的复制,详细解法可参考《剑指offer》
手写代码:写一个string类 除了注意复制控制 没什么需要特别注意的
mysql数据库: 什么是索引? 索引的底层实现?一堆sql哪些能用到索引?
操作系统: 常用的进程间通信方式,进程的调度方式 怎么写一个守护进程什么的
计算机网络:cookie 和 session 的用法和区别
项目经历:聊了好久自己的工作经历
大概就是这些吧,剩下的记不住了技术二面
大概一面二三天后,接到二面的邀请,二面聊的就比较宽了。主要是围绕着你的工作经历在聊,什么zookeeper,docker的使用原理什么的。go的协程的原理及调度什么的,总之没人什么具体的技术问题,就是很广泛的在聊天。感觉面试官的水平极高,给我的感觉是各个领域都有较为深入的了解。唯一问了一个算法是多关键词的匹配问题。hr面
主要是问了下职业规划,以及为什么考虑换工作的原因,以及期望薪资。问完之后主要就是在介绍shopee和画饼。值得一提的是shopee真的非常有钱,目前我和我朋友拿到的offer开的价格都是在我们要的价格之上,根本没压价。
总结
shopee是一个初创公司,但作为阿里lazada的主要竞争对手,后台不硬怎么行。她的总部在新加坡,深圳的团队只有200人左右,正在高速扩展中,对于做python或go的同学,绝对是一个很大的机遇。
腾讯
岗位:c++后台开发
面试性质:社招
面试流程: 技术一面 + 技术二面 + 技术三面 + hr面 + 主管面
- 技术一面
技术一面是电话面试:先是让你做一个简单的自我介绍,然后介绍了一下他们部门的情况。简单问了下为什么考虑换工作的原因后进行了一个简单的基础知识的面试,我还记得的问题大概有这些:
const的用途?
malloc/free 和 new/delete 的区别?
c++的内存分配?
static的作用?
进程间的通信方式?
线程同步的方式有哪些?
tcp 和 udp 的区别? Tcp 如何保证可靠?
是否了解io多路复用?
vector的底层实现?
如何实现一个守护进程?
mysql的索引的底层实现?如何保证sql能使用索引?
tcp的三次握手?四次挥手的时候如果服务端处于last-ack状态,一直没收到客户端端确认信息会怎么处理?
(这些问题的解答后续会单独进行总结,这里写真是太占篇幅了)
技术二面
面试地点在腾讯大厦,这一面很奇怪,基本没问什么技术问题,主要是问了几道智力题。包括烧绳子啊,切一刀平分中间有空的长方形纸片,1000瓶酒里面一瓶有毒问要用几只小白鼠才能找出毒酒,一些逻辑推理的题目(就是 a说 “xxxxxxxxx” b说 “yyyyyyyy” c说 “wwwwwwww” 只有一个人说真话,找出来之类的题目),鉴于这些智力题总体来说说难度真的不大,所以二面基本上是在欢声笑语中度过的。技术三面
主要在手写了算法,题目是如何判断两个链表是否相交,若相交找到其交点。(这里需要考虑的是链表是否有环,大家有兴趣试一试,不是那么简单)以及如何设计并实现一个内存池。这两个问题回完之后,就又回到了熟悉的吹水节奏,问平时如何学习新技术,什么时间能入职之类的问题。hr面
血崩般的面试,hr一上了就问原来的绩效,说什么很一般云云的。并且一直在强调,现在的年轻人没恒心,干不了多久就跳槽,工作未满一年,只能当成应届生处理。拿个计算器一直在那里算,说你现在的薪资太高了,这边给不到的哦。结果最后问在报薪资要求的时候就报了一个很保守的值,结果那货二话不说就说没问题。我才感觉哪里不对劲,我艹被套路了。主管面
真是完全聊人生,没什么经验好分享的。就一个比较有趣的问题大家可以思考一下:聪明与善良,谁更重要?
总结
不说了,反正腾讯大家都知道,怕被喷,求放过
这里就先分享一下这三家公司的面试经验,后续有时间的话我在补充下头条、大疆等其他公司的面试经验。
最后,本着结交更多朋友的目的,我与华为、腾讯、阿里、头条、shopee等公司的hr一直都有联系,如果有需要内推可以加一下微信:532273194