一面技术面(1个小时):
- 自我介绍:
- 讨论在阿里做的项目(项目中用到的设计模式、项目中用到的技术HSF服务、metaq等)围绕我在阿里做的项目问细节,因为项目中有线程池并行异步执行的,所以问到了线程池的问题,让我手撕出原先项目中关于线程的代码(如何建立线程池,如果异步并并行执行等等)(这一块主要围绕项目问了很久,问的比较细致)
- 手撕代码,(三数之和的变形),撕完之后运行成功之后
- 对上面手撕的代码进行改进,用Stream对里面的一部分逻辑进行改进
- 问java8之后的东西,比如正则表达式等
- 讨论笔试的题,随机那就第二题,问你的实现思路,然后说:时间有点长,让你进行改进,说改进思路。
二面技术面(1个小时):
- 自我介绍
- 讨论项目:
项目一:中科院项目一:你怎么使用图像处理算法解决机器检测人体不准确的问题,我说了主要用了透视变化和倾斜校正等技术,继续问技术细节。
项目二:中科院项目二:无人驾驶轨迹预测,问实现的细节,模型,输入输出等细节
项目三:阿里项目二:你在零售通智能调拨项目中,怎么解决搜索不稳定的问题?
我:技术调研以及选型之后,使用精卫和odps等等。。。 继续问精卫和odps问题。。
手撕代码:没见过的,有点难,撕了很久,最后还好还是撕了出来。
三面主管综合面(45分钟)
- 先做自我介绍
- 找一个你做的项目,结合说一下你是怎么做的,主要用的什么技术等(我本来想说在阿里做的项目的,但是他打断我了,希望我讲一讲我的无人驾驶项目,是怎么做轨迹预测的,问的很细致。)
- 说一下,你是怎么解决问题的,就是你解决新问题的方式。(刚开始我说了一个大概的思路,但是他说我的方式和你的不一样,但是我并没有着急,我还是坚持了自己的想法,并且我举出了一个典型的例子,来说明自己是如何解决问题的,比如我在阿里解决搜索不稳定的问题,首先我接到需求之后,我会先搞清楚为什么会产生搜索不稳定的问题,比如当时用的是openSearch搜索引擎,首先会对openSearch做一个简单系统的学习,然后会对阿里系列的搜索引擎做一个调研,会把它们的优缺点都罗列总结出来,然后进行对比,看看哪一个搜索引擎它具备的优点正好可以满足我的需求,同时它的缺点我还可以接受的,然后选出来再进行下一轮的技术选型,选完之后最后就是运用技术进行需求的实际落地了。。。)然后他一直点头...可能表示认可把。
- 我觉得你做的无人驾驶的成果其实可以做AI研发了,为什么投的是技术研发,你要不要调换一下? (我说,不了,在投递岗位之前我已经做好分析以及进行深入思考过了,我觉得技术研发可能更加适合我。)
- 你最熟悉的语言是什么?(我:Java python matlab 都可以 因为这些语言都是经历过项目落地的,所以正常开发是没得问题的)那c++呢?(我:我不是太熟,因为平时接触使用的比较少。)
- 那你觉得在开发你的最大缺点是什么?你又是怎么做去弥补你的缺点呢?(我:我想了想,觉得也不能太真诚,我就说我觉得我在技术开发上最大的缺点可能是对C++语言不是特别的熟把,因为之前接触的比较少,但是我觉得编程语言只是一个工具,我觉得你要熟悉一门语言,那其它的语言如果需要使用的话,那学习起来也是很快的,所以这一点我并不担心。然后弥补的话,我觉得不断地学习是必须的,但是边学边用边总结边沉淀也是非常重要的,尤其是在我这个应届生的阶段。需要及时不断地进行沉淀总结。)
- 计算机的体系结构你都了解么?(我:了解一部分)那你说说,我。。。那你了解cache命中率么?(我:了解一点)那你在写代码的时候,有去考虑这点内存分布以及命中的问题么?(我...我说,我现在可能只是基于需求去落地代码,所以还没到那种程度,所以还没考虑。。)好,没事。
- 你怎么看待华为的文化的,艰苦奋斗理念以及加班文化的?可以接受加班到几点?一个星期加班几天?(我:先开夸了一波,然后说:自己本身走到现在这一步就是一个典型的艰苦奋斗的代表,所以内心是是十分的认可华为艰苦奋斗的理念的。我自身本身生活是比较规律的,所以一般到十点半是属于正常的情况。如果需要赶项目的话,就根据实际需要进行调整。
- 你现在回想一下,你现在的状态和你去年给自己定的计划,有没有完成去年的计划,完成度如何?(我:如果打分10分的话,我给自己打9分。因为在刚刚读研究生的时候,就已经规划好了自己大致三年的计划了。研一做什么事情,研二做什么事情,什么阶段搞论文,什么阶段去企业实习,自己一开始就有规划,所以现在是稳步按照自己当初的计划,一步一步的去执行。不仅按照自己的计划去执行了,而且效果也非常好,我觉得可以从我的成果可以有力的进行说明。)
- 我们MDC部门岗位有东莞和杭州,你选哪个?( 我好犹豫,停顿一分钟..我说东莞把,他看我有点犹豫,说没关系的,选哪个都可以,我想了想,说:就东莞把,杭州我已经待过了,我想体验不同的城市!)他笑了..
Over!华为面试完美结束。当天下午收到通过的消息。开始泡池子~~
总结:
- 没有围绕java进行问Java的知识,主要围绕项目进行展开,问项目细节,问项目实现的技术,问技术里面知识以及如何进行改进等。
- 很灵活,基本不问死的知识,让你随机手撕代码...
- 主管面,有点意外,因为别人说一般都是探讨人生,但是我发现我这边不是的啊,面试官年龄大概45-50,所以觉得气氛比较严肃,而且问问题很犀利,还有我觉得尽可能的诚实把,就是会就是会,不会就是不会。不要不懂装懂把,觉得领导们嗅觉很敏锐的。然后尽可能的贴近华为的文化理念吧。(如果你想拿下华为的话。。)
- 要尽可能的坚持自己的想法,除非你的想法真的不对,要不然就要无惧压力,坚持自己!不要摇摆不定,模棱两可。