华为面试记录
2021年8月底投的简历,先有一轮机试,机试三道还是四道算法题来着,很残酷,都没写出来,都是只过了百分之四五十,时间复杂度高了,超时过不了,但还是收到面试了。
第一轮面试在2021年9月11号上午10点半,面试时间很短,就作了个自我介绍,然后简单聊了聊项目,也没问细节,就开始手撕代码,面试官出题,对一个方阵顺时针旋转90度,这个题目因为以前做过,还有点印象,用最快的方法,十分钟左右就写完了。然后面试官叫我讲解代码,我说就是把方阵分成旋转对称的四个部分,遍历这四个部分,将值进行交换。整个面试过程可能不到20分钟,估计是算法写的好,面试官很满意。下午就开始二面了。
下午四点开始进行二面,先是自我介绍环节,然后问我做过什么项目,回答在研一的时候和校内导师做过一个校企合作项目,然后是对项目的介绍,这次面试官就对项目问的比较仔细了,会问难点,我当时犯了致命错误,我说也不怎么难,主要是对语言和框架的不熟悉,是在做中学,因为项目用的golang语言,gin框架。(太直了,太直了!)然后又问还有没有其他项目,我说还有用到了spark大数据处理框架,处理深圳市出租车数据,从而获得深圳市道路的路网速度信息,这个没有怎么细问。然后对照我简历,问我redis和rabbitMQ是什么,用到了什么原理,这个大意了,我之前记得很清楚,过了段时间又差不多忘了,然后回答得不是很好,问道了linux系统内核态和用户态得区别,没答出来。手撕代码环节,题目是判断能否去掉一棵二叉树的一条边,使二叉树变成两棵权值和相同的二叉树,我一个后序遍历,又是不到12分钟左右写完了,面试结束,最后还是挂了,问了原因,面试官的评价是,算法能力较强,但对项目理解不深。
周一接到电话,说二面挂了,但是因为一面面试官给的评价很高,愿意再给我一次机会,再面一下二面,周二又准备二面。因为知道二面主要还是问项目,我特意在周一的时候回顾了自己做过的项目,吸取上次的教训,介绍一遍项目后,面试官问我有什么难点,我说在项目中遇见了跨域问题,然后把这个问题产生的原因,解决的方法讲解了一遍,然后问还有什么难点没有,我说我负责的后端在登入登出模块,鉴权方式的选择令我印象深刻,然后又把鉴权方式有哪些说了一遍,自己选用的又是哪一种方式。问还有没其他项目时,我把处理出租车数据的项目又说了一遍。然后手撕代码,求环形序列中子序列的最大和。我tm写错了,但自己写的测试用例还是过了几个,面试官也没仔细看,匆匆给我一些提示,就结束面试了,我还以为又难了,这次是算法环节出了问题,没想到面试结束十分钟不到,我一查官网,竟然给我过了。
之后还有主管面,希望能给我过吧,许愿offer,保佑。