华为OD面经 Java软开 Base东莞(已OC)
先介绍下本人基本情况:非目标院校,双非一本,二战考研失利gap一年,无工作、实习经验(debuff拉满)
2024.05.10 机考
D卷,2 easy+1 mid,两个半小时。按照现在的风评,非目标估计要350才好说话一点。重点考察范围:字符串处理、dfs、dp、二分查找、二叉树相关...(具体可以看一下CSDN的题库,但是里面的答案仅供参考,有些都不一定是AC的题解)
做机考之前建议把牛客的华为机试100来道题过一遍,太简单的可以跳,重点把握字符串的各种处理方法、搜索、动态规划以及一些经典例题解法。此外,LC和CSDN题库也可以作为参考,有几率碰原题。但是碰到原题也要按照自己的思路写,因为会代码查重。
我的第一题是个简单的字符串处理,重点考察split方法,没什么说的;第二题,《最后一个有效字符位置》,考察双指针的字符串遍历,感兴趣可以搜一下;第三题,《二叉树的广度优先遍历》,依据二叉树的中序+后序遍历结果建树,利用队列完成bfs遍历;这题难在你必须了解二叉树,很难去暴力蹭分。dp不会写,优化搜索不会写,我们可以用暴搜尝试取分。但是这题需要了解二叉树中、后序遍历序列的特点,熟练的话几乎是背板题,没看过可能直接寄了。(我一开始在分左右子树的时候写错了逻辑,第一遍提交WA 0分,还剩30分钟,慌得要命🥶)最后有惊无险,400通过了。
机考结束后紧接着选地区、部门,然后要了一大堆HR资面的材料。
2024.05.11 综测 / 性格测试
这个网上也有好多辅导啦,最容易出错的点应该就是压力释放方面,“让自己时刻保持忙碌、喜欢工作繁重”不能说明你热爱工作,只是代表你压力大;反之,“我很容易放松自己”应该要选......另外,领导能力相关的别选😂好好做个踏实的打工人。
2024.05.13 17:30 HR资面
邮件通知,提前点击邮件里面的链接下载wemeeting,做好调试。
HR大概问题:自我介绍、空档期、家庭情况、如何看待加班、期望薪资......基本就是了解一下个人情况,如实说就好。
最后再加个反问环节,总共15min。第二天早上通知,HR面通过。
2024.05.20 16:00 技术一面
技术面没那么好约,人多的时候就需要排队了,加上我自己要求稍微推几天,想多复习下,于是就20号才进行技术面。我是16号收到技术面邮件的,而且一次性收到“一面+二面”两个通知,都安排在20号。
技术一面,一上来先手撕代码,wemeeting共享屏幕用本地IDE做,面试官会把题粘贴在聊天框里,不过应该都是LC原题。一面手撕LC《 3. 无重复字符的最长子串 》。AC,然后面试官让我解释下思路。
接下来做代码分析题,全部都是单选题4选1,分析代码运行结果,面试官放ppt,我说思路+答案。题目考察的全部都是Java的内容,不涉及框架、数据库等内容,具体包括:多线程、排序、异常、方法调用、IntegerCache、==与equals等,好好复习下Java基础应该都没问题。我20分钟大约做了8个题,慢的要命,不过好在面试官也不催,就静静地看着我盯着屏幕做题做完也没说对与错。
最后用ppt给了三个八股题:IntegerCache原理、数据库索引失效+最左前缀原则、Java常用的加密技术。
整体来说一面挺简单的,全程没聊项目,总共1h,面试官秒录结果,对接人就立即通知了一面通过。(按照规章,对接人是不可以告知技术面具体评级的,所以我也只能靠猜,一面应该是个不错的结果)
2024.05.20 19:00 技术二面
恢复“常规”的面试流程
首先自我介绍,然后问了问项目亮点,针对简历中写的项目内容进行了一番盘问。写在简历里面的项目要熟悉哦,如果问一些实现细节说不清楚的话,可能就不太乐观了。这部分我表现的还可以,一顿输出就完事了
但是接下来问八股,被拷打了我前期的准备时间有限,所以很多Java八股没有背,也没写在简历上,但是面试官逮着一顿问,有点猝不及防,大概只答上来了50%,可能还不到,人已经红温了只能是说,会的就尽量多说点,不会的就表明虚心的态度,然后可以尝试着聊聊自己初步的理解,尽量往自己熟悉的方面扯一下。
到这里,我已经感觉不妙了,人也不是很清醒。
后面面试官给了算法题,通配符问题,经典DP,可以参考LC《 44. 通配符匹配 》。看到题的一刻我活过来了,因为太经典了,题都没看清咔咔按DP模板一顿写。结果这题是个通配符问题的变式:*只能匹配与前一个字符相同的0~n个字符!!意思是,如果模式串是a*cd,那么*只能匹配0~n个字符a,例如:如果目标串是aaaacd、acd...就匹配成功,abcd就匹配失败。
做完的时候我本以为是力挽狂澜了,结果挽了坨大的,被面试官点出审题错误,悬着的心终于死了...面试官点出错误之后,我立刻有了修改思路,记录一下*的前一个字符是什么就好了。但是面试官没给修改机会,哎。
二面彻底裂开,总共50min。结束之后根本不求结果能有多好了,只求能通过,完事给个加面的机会吧😖
两个小时后通知二面给过,但是评级不一致,加面,预料之中。
2024.05.23 19:00 技术三面
形式和技术二面都一样:自我介绍、项目、八股。不过这次好一些,二面结束之后回去恶补了一波Java基础八股,虽然也问了一部分简历上没写的、我不会的,但是整体还凑合,答上来70~80%。
三面手撕代码简单到爆,大致就是:判断一个数字当中有没有"4"和"18"。int转String,然后contains方法判断是否存在子串,几行代码就秒了。但是我当时不知道哪根筋抽了...contains原本都写出来了,但是我忘了方法的参数类型,然后删掉又改成挨个遍历字符...代码解释的时候面试官都笑了🙃不过也没事,AC就行了。
三面只能说中规中矩,八股回答的有缺陷,手撕不是最优解。由于手撕代码太简单了,三面总共30min(脑子不短路还能更快点)。
自此🙂可以先总结一下 技术面的特点:
|
三面的结果等了特别久,催了两次,27号才告知通过,有一点点拖进度。
2024.05.30 11:45 主管面
主管忙到爆炸,一直在开会。第一次通知29号下午电话面试,我硬等到晚上19点,结果被告知主管抽不出时间,推迟到30号上午了。接着第二天等了一上午,快12点的时候终于是接到了电话。
主管面和HR面有重叠问题,我的主管面流程如下:自我介绍、空档期解释、近期还想不想考研、项目介绍、项目重点解决了什么问题、项目亮点、项目代码量、职业规划、你为华为面试准备了多久、期望薪资。
当然,不同部门、不同主管、不同面试者,问题可能都不一样,这里分享一些我看到过的其他问题,可以挑一些准备一下:如何看待加班?面试失败怎么办?有其他offer吗?华为狼性文化了解吗?华为价值观了解吗?你是怎么沟通协作的?最有成就感的一件事?学校的知识现在还有用吗?你的优缺点?了解应聘的部门吗?遇到问题是怎么解决的?第一份工作看重什么?你为什么想来华为?你如何创新?...
我的主管面很快就结束了,总共15min。31号上午反馈通过,正在等待部门反馈具体薪资。
(2024.06.01 星期六 首次总结发布,后续会更新流程进展。)
2024.06.01晚 流程进度更新(告知薪资+已提交offer审批)
对接人反馈了薪资评定情况:最终给到了我在主管面当中所表达的期望薪资,不多也不少。对于我这种debuff拉满、技术面表现中规中矩的应届选手来说已经比较满足了。
这里提供一些信息吧:
- 许多面经说,流程中会有一个“对接HR帮忙谈薪”的环节。经过我自己的流程证实:这个环节因人而异、因部门而异、因对接HR而异。显然,我就没有二次谈薪这个环节。主管面之后,主管领导直接根据我的“学历、机试成绩、技术面报告+评级、期望薪资”敲定了offer的薪资,随即进入了offer审批环节。
- 想尝试多要一点的同学,尽量在HR+主管面的时候就适当地表达一下诉求。但是一定要基于自身的面试表现,在正常的OD薪资框架内合理地谈薪议价,因为不排除“要求过高+言辞果决”直接被挂的风险。
- 部门主管在评定具体薪资的时候,原则上是综合考虑,但是最主要的评定依据仍是“技术面报告+评级”。
- 当然,对于有工作经验的朋友来说,“工作年限、跳槽频率...”等因素也会影响薪资水平:工作年限越久,越容易拿到高评级、高薪资;跳槽过于频繁,则有可能会被当作不稳定因素挂掉......此外,某些部门会严格限制30%的薪资涨幅,要提前打听清楚。
目前正在等待offer审批。本人应聘的是终端BG,对接人说审批时长在1~2周都是正常的,希望是好事多磨吧,耐心等待了。
2024.06.06早 流程进度更新(offer审批通过)
对接人通知offer审批通过正式offer预计2~3天后下发,下发后对接人应该就会通知体检了。
另外初步确定了一下入职时间。
2024.06.07晚 流程进度更新(收到offer)
历时近一个月,终于尘埃落定了
任何事情都要辩证看待吧,我也很清楚这份工作的利与弊。基于我的个人情况与职业规划,权衡之后,这或许是我目前最好的选择。
祝各位一切顺利
(希望我的经历可以多多少少帮助到您更多问题可以留言交流。)
#od##od面经##华为od#