(小白)华为OD C++ 计算机产品线 全流程
时间线
- 2024.7.26 11:30-12:00 主管面
- 2024.7.25 18:00-19:00 技术2面
- 2024.7.25 10:00-11:00 技术1面
- 2024.7.19 hr资面
- 2024.7.18 综测
- 2024.7.17 机考
找OD的原因
本人考研失利,加之身体不适,不得已需要修养一段时间,错过了春招的窗口期。所以我是本科毕业了以后才开始找工作,当时在智联上随便投了简历,然后当天下午就收到了德科那边hr的电话,说我很合适(其实是因为我的院校是目标院校),问我要不要机考,然后我就答应了。接下来就给我发了题库,说刷了两周,就机考。我的简历非常烂,但是也是很顺利的走到了收offer的阶段,所以比我强还做过正儿八经的C++项目,又没有找到工作的想试试od的朋友们可以一试。我的项目并不是C++,所以od这边不是很看重你的项目经历,看重的是你的学历
机考
一共三道题,两道100分,一道200分,只要150分就算通过,也有人说非目标院校需要300分,这我就不知道了。所有的题在hr给的题库里都有原题,所以只要你肯刷,机考就没有问题。但是,题库里共有100多道题,两周全刷完太累了,建议把100分的啃一啃,200分随缘。100分的题难度介于********简单到中等之间。最重要的是机考的时候不要手忙脚乱(我就是有点紧张,发现自己的代码就过了一半的用例的时候就慌了),平时在自己的IDE上根据题目给的输入多写写输入的代码。
我最后机考240分,简单题都过了。
性格测试
给你三个选项,选出其中描述和你最符合和最不符合的两个选项,德科的hr会辅导你怎么选。
攻略
资面材料
- 身份证正反面拍照或者扫描;
- 英语等级证书拍照或者扫描;
- 学位证书,毕业证书拍照或者扫描;
- 教育部学历注册备案表+学位认证(学信网);
- 员工登记表(签名要电子签)
- 隐私协议签名
hr资面(10分钟)
- 自我介绍
- 职业规划。违心地回答:我想成为一个C++资深工程师,因为C++很难没有人敢说自己精通C++,所以要实现这个目标非常的困难,不仅需要有大量的C++项目经验堆砌,而且项目还要有足够的深度,才能起到量变质变的效果,刚好华为od这个岗位的项目不仅多,而且有足够的深度,与我的职业规划相吻合,所以我很愿意在这个岗位上工作。
- 其他offer状态。答:没有offer,因为比较重视这次面试,所以一直在准备。
- 家在哪里,为什么想去杭州(base)
- 兴趣爱好
- 工作生活中遇到的最大问题。答:就以我实习中遇到的问题为例,在实习中经常遇到的问题就是项目不能直接运行,原因有很多,比如我的电脑没有支持项目运行的环境,项目的输出不是我需要的输出,还有项目结构非常复杂,不知道怎么运行。我在解决这类问题时,首先是判断这个项目是否是我能短期内解决的,如果是,即使我对这个项目不了解,我也能通过自己快速的学习能力解决它。电脑没有支持项目运行的环境,那我就找这个项目需要什么环境,在翻看相关的文章进行安装;项目的输出不是我需要的输出,那我就阅读项目的核心代码,读不懂就百度,直到找到关键输出。如果这个项目复杂程度超过我的认知范围,我会求助身边的人,在这个过程中也会吸收他们传授给我的知识,帮助我解决类似复杂的项目。所以从这个问题中,我学会了怎么高效地查找资料解决问题、学会了从身边的能力更强的人身上学到解决问题的方法。
- 如果要你转测试能接受吗(本人有过一段测试实习的经历)
- ==反问==:部门情况
总结:不同的hr问的问题不尽相同,我这个hr搞得就比较快,甚至没问考研的事情(这会让我比较头痛)。只要把自己当作牛马来答就好了,不要有其他的自己的想法。
面试详情
技术1面(1个小时)
手撕题:给你一个m*n的矩阵,你在矩阵的(0,0)处,你的目标是走到矩阵的(m-1,n-1)处,你只能向右或向下走。
输出到达的路径和有几条路径。
- 看一下项目。看到我简历中有一个游戏相关的项目,让我运行看看,我没运行出来,但是给他看了我之前录下来的演示视频。
- 说说C++怎么实现多态。-》接着问:你提到了虚表,我想问问虚表多大,答:4个字节 -》再问:为什么是4个字节,答:不知道-》问:虚表存什么,答:函数地址-》问:虚表位置在什么地方,答:(我不知道,所以乱答)
- 说说你熟悉的STL容器,以及怎么实现的。
- malloc和new,free和delete的区别。答:我不太了解,我只知道malloc用在指针上多,new在对象上多。
- 进程和线程的区别。
- 进程间的通信方式。
- 线程间最简单的通信方式是什么,答:共享内存-》问:什么是共享内存-》问:怎么实现共享内存,答:不知道-》面试官解惑:全局变量。
- 什么是死锁-》怎么解决死锁
- 问项目。
- 开始手撕。题目很简单,就是递归回溯,但是太紧张了,甚至看错了题目,看成了上下左右都能走,结果给的用例就过了一个,但是面试官说思路是正确的也就给我过了。Tips:手撕在自己的IDE上写,他会给你两个用例,只要这两个过了,且思路没问题就过了,至于你的代码是不是正确的无所谓,但是少部分面试官会让在********上写,那可能就比较头痛,特别是这种可能会越界的题目。
- 另外,面试官确实非常友善,没有给我上压力,所以朋友们不用害怕。
技术2面(30分钟,表现灾难)
手撕题(**原题):
小红和小明在玩一个字符串元音游戏。给你一个字符串 s,小红和小明将轮流参与游戏,小红先开始:
在小红的回合,她必须移除s中包含奇数个元音的任意非空子字符串。在小明的回合,他必须移除s中包含偶数个元音的任意非空子字符串。
第一个无法在其回合内进行移除操作的玩家输掉游戏。假设小红和小明都采取最优策略。如果小红赢得游戏,返回true,否则返回false。
英文元音字母包括:a, e, i, o, 和 u。
示例 1:
输入: s = "beetcoder"
输出: true
解释:
小红可以执行如下移除操作来赢得游戏:
小红先手,她可以移除加下划线的子字符串s="beetcoder",其中包含3个元音。结果字符串为s="der"。
小明接着,他可以移除加下划线的子字符串s="der",其中包含0个元音。结果字符串为s="er"。
小红再次操作,她可以移除整个字符串s="er",其中包含 1 个元音。
又轮到小明,由于字符串为空,无法执行移除操作,因此小红赢得游戏。
示例 2:
输入: s = "bbcd"
输出: false
解释:
小红在她的第一回合无法执行移除操作,因此小红输掉了游戏。
提示:
1 <= s.length <= 10e5
s 仅由小写英文字母组成。
- 问项目。你在项目中遇到的印象最深刻的bug是什么,怎么解决的。
- 看你简历上写的熟悉windows,linux Shell编程会吗。答:不会
- 说说你熟悉的STL容器,以及怎么实现的。答;我比较熟悉map,map底部实现是一个哈希表,解决冲突用拉链法。问:你确定你说的是C++吗,据我所知,map解决冲突不是拉链法,你看过底层源码吗(完了我裂开了,我看了很多八股都是说拉链法啊,人晕了)答:啊?那是我学艺不精了。
- 开始手撕。这个题目非常非常非常的简单,如果你想通了的话。巧了,我没想通,我愣是看了半天没看明白题目说了什么,但是这个面试官非常友好而且很有耐心地给我解释这个题目,还给出了一半的思路,就差把答案告诉我了,但是我还是没想通,甚至请求换题,但是面试官就准备了一道题,然后又和我解释了半天,我才恍然大悟。这个题目是这样的,题目中的非元音字母是无用的,只需计算元音字母即可,如果元音字母总数是奇数,那么小红一定赢,因为可以一次性全部取完字母,小明没得取,如果元音字母总数是偶数但不是0,小红也一定赢,因为她可以一次取只剩一个字母,那么小明就取不了偶数个字母了,所以只有0的情况下,小红会输。我没想出来纯属想的太复杂了。
- 2面真是灾难级表现,能过的原因有很大的运气成分,因为面试官生病了,所以想着赶紧结束,也没有问我太多八股就手撕了。
主管面(20分钟)
- 自我介绍
- 你说你比较熟悉c++,那你说说你知道的c++特性。
- 你在项目遇到的bug是什么,怎么解决的。我的回答中涉及到了线程不安全,他问我如果给你一个vector,怎么验证线程不安全,人晕了,所以大家不要乱答。
- 你做过项目的组织人,那你说说你是怎么和队员沟通的。
- 如果你的队员和你意见不同你会怎么做
- 看过源码吗,以你最近做的东西举例说说
- 你怎么看加班(主管想听你说正常工作时间能完成的任务没必要加班)
- 反问
收Offer
问我13k愿不愿意去,最后我还是想找游戏相关的公司,所以就拒了,也算是积累了宝贵的面试经验,特别是我这种面渣。
#OD##华为##面经##复盘面经#