华为OD机试第一次做很难,我第一次接触这个机试,三道题一题不会,要想通过,前期不去LeetCode上刷题那是不可能的,好在这次面试有个华为的人事全程对接,可能是od那边真的很缺人,他们急迫想招人进去,然后给了一份常考机试题的答案给我了,一百多道,我大概花了5天时间,全部敲了一遍,机考链接给下来,有7天有效期,如果准备准备不充分的千万不要尝试去做,没过有6个月的封禁期,实在是得不偿失。
下面重点讲一下本次7轮面试的面试题以及注意点:
第一轮 机试
说明机试第一和第二题一般对应LeetCode上的中等题,第三题为困难模式,总分400分,通过180分,也即是2道中等题搞出来基本就过了
第一题:
第二题:LeetCode第152题
第三题LeetCode第65题:
第一轮三道机试,我最终应该拿到280,测试的时候 第一道100%通过,第二道测试100%通过,第三道40%,那么总分就是280分,这样机试第一轮就过了。
第二轮 性格测试
性格测试也是机试,可不要小看性格测试,我有个同事机试过了挂在性格测试上面,为什么这么说呢,性格测试,是在测试你是否和华为的价值观相符,测试之前请好好了解一下华为的企业价值观,无非就是华为是数字型企业,你将从事数字化工作,
华为奉承奋斗者文化、狼性文化、奉献文化,你将吃苦耐劳,能在重压之下成长,明确自己在公司的定位,做技术就专心做技术,不要朝三暮四的,等等吧,一共102道选择题,每组2道,一共51组,每组选出一个最符合你的描述,选出一个最不符合你的描述,时间是30分钟内做完,非常难选,你稍微选错了,就无缘了,反正你选的是要尽量要仔细,把自己的价值观往华为公司的价值观上靠拢,这样被淘汰。我选完手心冒汗,因为太难做出选择,不过最后还是通过的。
第三轮 技术面试第一轮
性格测试通过以后才是真正的技术面试了,面试事宜视频面试举行的,面试时候保持环境安静,不要太吵了,影响面试体感,穿着上正式一点,上身穿件带领的寸衫吧,面试前提前15分钟进入房间测试语音和摄像头,电脑视频面试的,所以保证你的电脑是带摄像头的,因为面试官要共享你的电脑屏幕,让你手撕一道算法题,我第一轮那个面试官人很话不多,上来就是,你先写一道算法题吧。题目如下:
手撕算法有时间限制的,一般在15分钟就要写完,超时直接挂
写完以后,就开始正式进入提问环节了,首先进行自我介绍
自我介绍无非自己受教育经历、工作经历,其中你说的时候要注意你的项目描述,
一般建议这样描述,项目背景是什么、项目主要解决了什么问题、项目的主要介绍架构、项目前、后端、运维分布使用了什么技术栈、项目的人员规模、你在项目里担任的角色(一般就说核心开发人员,核心二字请务必加上)、
最后描述下你在项目里遇到重难点技术问题你是怎么解决的,我一般会说前后端跨域怎么解决的、分布式系统全局session怎么解决的、第三方登录、单点登录、分布式事务怎么控制的、事务一致性怎么保证的、缓存穿透、击穿、雪崩分别怎样保证的、mysql的分库分表怎样设计的等等,最好有这块的经验,不然很难。
我介绍完大概10分钟吧,你说完,请补充一句,我的个人学习和工作情况就是这样的,请问您还有什么需要了解的吗?这样就平滑过渡到面试官的发文环节了
第一轮技术问题
1、说下java集合,以及他们之间的区别(很多,详细说)
2、说下get和post的请求之间的区别
3、熟下MVC模式设计原则和好处
4、说下servlet是不是线程安全的
5、说下SpringMVC的主要组件以及请求流程(6个组件,11个流程,务必牢记)
6、讲一下mysql的优化原则,已经索引失效的场景,以及为什么会失效
7、讲一下spirng 的IOC和AOP的原理
8、讲一下redis的数据结构,以及你在项目中的使用场景有哪些
9、讲一下Sringboot自动注解的原理,已经他的启动原理
10、讲下数据库的隔离级别,脏库、幻读、不可重复读,分别是什么概念
11、讲下hashMap和hashTable的底层实现以及底层的扩容机制
12、讲下你项目中遇到的困难,以及你怎样解决的
然后面试官向你发问,你有什么问题想问他,精心准备几个吧
你可准备的问题如下:
第一轮面试持续时间70分钟
第四轮 技术面试第二轮
本轮技术面试是一位中年面试官,很严肃,这一轮不是先手撕代码,还是先自我介绍,说辞如上,这里不再赘述。直接到发问环节
第二轮技术问题
1、说下双亲委派原则以及类加载机制,双亲委派有何好处
2、你说你做过架构设计,那你的输入是什么,输出是什么,UML设计原则讲一下(卧槽,这种题我哪儿会,我都听蒙了,输入输出,UML,完全没搞过呀,不知道就说自己不知道,输入就说需求文档,输出就说prd文档,UML设计干脆说自己没搞过,就说自己架构图是简单的png图片)
3、讲一下你项目怎样进行单元测试的,输入输出又是什么?(这边我又听蒙了,可能这就是小厂和大厂的区别吧,规范都没有,我傻乎乎的说,我们用postman进行整个模块测试,单元测试很少,业务场景用不上)
4、说下hashMap的底层实现,以及扩容机制
5、你们项目里怎样对代码进行质量把控,又是输入输出,我说我们用sonar代码检测质量工具进行分析的,然后针对需要的优化的代码会尽心提示,然后他又问,你这个检测工具界面是什么样的,你看什么指标,我的天,追到这里就看你有无实际的项目经验,然后他又说你这里的异常代码,有哪些,你项目中的异常都有哪些,说5个,并说出出现场景、我说了5个 数组越界异常、空指针异常、算术异常、类转换异常、类找不到异常等等
6、你刚才说sonar检测代码,那为什么在编辑CICD的时候不单独拉取一个流水线进行检测呢,我的理由就是一条jenkinsfile文件集成多个步骤,主要为了节省共工作量,然后后面,他针对我的K8S集群和CICD流水线部署做了一些建议,你虚心接收就行了
7、好了,咱们来写一道算法题,题目如下,15分钟内完成
写完后,让我问他几个问题,我还是问了技术一轮面试问的问题
总结,这一轮面试明显吃力很多,面试时间持续60分钟,这一轮面试侧重点在于对你简历上的项目进行深度发掘,深追你项目问题,算法题,我自己写的时候测试用例三,不满足,面试官提示了很多,最后才写出上面的答案,主要是自己算法太菜了,也太难了,不过后来他还是当面说,这一轮放你过,此时我终于松了一口气。
第五轮 华为HRBP
经历技术一轮和二轮面试 也是华为那边的对接人事为了缓解氛围,来一轮HR面试,面试形式也就是视频面试,
这一轮面试,首先是自我介绍,因为人事面试,所以呢,会重点关心你为什么离职的原因,就照实说吧,第一次因为疫情公司倒闭,第二次因为想去华为公司,无奈学历不够,经验来凑,只能社招进华为OD,然后就疯狂舔华为公司,想过,你懂得,就说他是技术创新高低,中国高科技公司的一面旗帜,从新闻得知华为公司多牛逼,以一个公司的力量对抗超级大国美国的制裁,依然业绩坚挺,等等反正就是往好的方向说,我说完,面试官心里乐滋滋的,然后说我这种人特别适合来华为OD干,
最后呢他简单聊了一下OD和自营的区别,整体上无非就是,自营有股票,OD没有股票,工牌和华为一样,在一起办公,技术氛围好,成长快,压力大,工资不低,然后就问我期望多少薪资了,整体而言,整个过程都在一种轻松的环境里度过的,面试持续时间30分钟
第六轮 部门技术主管面试
这一轮面试时间很仓促,因为要协调面试官的面试时间,形式也是视频面试,这一轮部门主管面试,延续技术二轮面试一样,氛围紧张,上来也是手撕一道算法题,LeetCode第64题,如下
做完后面展开发问:
第三轮技术问题
1、介绍项目,不再赘述
2、讲一下常用的springcloud组件
3、讲一下,soringboot的自动配置原理
4、Mybaties的一二级缓存有什么区别、原理、怎么开启,画一下你项目里的mybaties的一二级原理图
5、JVM内存模型说下,分别存放什么
6、GC的整个流程讲一下
7、monitor gc 、Major GC 、Full GC的区别,以及常用参数
8、Spring Bean 的生命周期
9、HashMap 和 hashTable 区别?
10、线上服务 CPU 很高该怎么做?有哪些措施可以找到问题
11、JDK 中有哪几个线程池?顺带把线程池讲了个遍
12、线程池的异步编排使用场景,以及线程池的参数
13、Concurrenthashmap 是怎么做到线程安全的?
总结:部门主管面试持续时间75分钟,重点也是聊了项目,至于后续的常见问题和二轮面试并无区别
第七轮 综合面试
这一轮面试持续时间大约为35分钟,一共提问了8个问题
综合问题
1、项目架构设计你的输入输出是什么,UML设计原则是什么?
2、技术选型你是怎么考虑的,有哪些因素,我的回答,技术成本、技术开源社区活跃度,讲一下这些场景你的实际应用
3、你认为你最大的优势是什么
4、你对华为公司有哪些了解
5、你未来的工作方向
6、你在杭州为什么选择来上海
7、你认为你自己有没有被不公平对待过,说一下你的真实想法
8、你有家人或者朋友在华为上班吗?
总结
整个面试走完大概花了5周时间,昨天通知我提交审核材料,如果审核通过,offer就会下来,如果offer能下来,我在补充od的福利待遇吧。
面试是综合性的,面试官问你的问题,没有标准答案,面试的过程看中的是你的表述能力以及是否自信,总体上有个积极乐观、开放自信、衣冠得体、基础扎实、心态健康的人能容易面试成功,自信非常重要,我在面试第一轮的时候,让我手撕代码,我差点放弃,有时候面试坚持住了,可能就成功,总之,IT行业不是养老行业,技术迭代太快,唯一能顺应时代发展的唯有努力学习,不断提升。
最后说下,简单聊下工作岗位的问题,现在的趋势是,在工作岗位整体不变的情况下,每年仍有1000多万应届毕业生加入进来,争抢好的工作岗位,如果自身学历、专业并不占优的情况下,请看清形式,深度了解自己在这个竞争潮流中的所处的地位,如果你没有合适的大厂offer,华为OD是你比较好的选择之一,工作无非就是为了挣钱养家,所以有时候别放不开你的面子,能挣钱的工作就是好工作,先让自己活下来,再去讨论自己要过得更好的话题,好了,我的面试经验就写到这里吧。
“面经哥”已累计3000+条真实面试经验,期待你的加入~