华为车BU软件开发一、二、三面面经
部门:车BU
9月20日 10:15
一面(60min):
1、自我介绍
2、实习情况介绍,根据我实习情况提问,问一个系统的启动流程、可信启动的理解之类的。然后面试官说自己对这块不是特别了解。
3、主要是用C和JAVA是吧?我们部门业务你熟悉吗?我说理解,简单讲了一下。然后他介绍说部门只用C和C++,C主要是底层驱动,C++中间层。
4、你对系统启动流程熟悉吗?讲一讲大概流程(疑惑,最开始介绍实习的时候讲过一次)。
5、介绍一下内存结构?(栈、堆、方法区,我讲的JAVA的哈哈哈哈哈)
那系统进入内存以后,起来了,CPU是如何和内存进行通信的?(我回答,一般是进程和CPU内核通信吧?从用户缓冲区读到内核缓冲区)
面试官说这个回答偏上层,那具体是怎么实现的?(我回答这个我不太了解了)
面试官提示说指针,我接着描述指针指向内存的地址,然后可以将数据读取出来进入CPU寄存器中。
面试官说我回答得大概,没有深究了。太惨了。
6、那你知道CPU的高速缓存吗?一级二级三级cache,(懵逼了,回答没用过。后面发现是接着上一个问题问的,数据需要先读入缓存)
7、C语言程序具体执行的过程了解吗?
(我回答程序也存在内存中,指针指向内存,然后CPU读取到了程序执行,讲了函数执行压栈之类的),
面试官说我说的是宏观层面,
问CPU执行代码的流程,提示了我说乱序执行,我回答,是指的流水线指令吗?他说是的,于是我说了一下流水线指令的概念,吞吐量高之类的优点。
然后他反问,那流水线执行和串行执行相比,缺点是啥?我说从逻辑上串行执行更容易理解,如果出现问题了,流水线执行就比较难分析问题。
然后他又问,那么如果出现问题了,你应该怎么分析呢?我说平时调试的时候,主要用断点分析。
他说那个太上层了,问我程序指令级别的执行流程之中,如果出现问题,那应该怎么处理?
我说我没有调试过,然后他说,难道你没遇到过像越界之类的问题吗?
我说遇到过,会出现程序跑飞之类的情况,但是大部分时候我编码的问题都是在编译阶段就体现出来。面试官笑了笑(我也笑了、苦笑)
8、C语言编译流程了解吗? (终于有一个会了,详细描述了预编译、编译、汇编、链接四个阶段。)
9、那静态库和动态库是怎么加载的?(该死的,这个忘记了)我说我不太记得了,但是我实习的时候,有用过Makefile添加过一些库。
10、面试官听到makefile,反问,那你们当时实习的时候,项目应该不大吧?我回答几十个G,他大吃一惊,说那应该是包括第三方库吧?
我说是的,除了第三方库以外,也有几个G。然后面试官说,那你用过cmake吗?我回答实习项目里有,但是我编译的时候都直接编译bash脚本的。
笔试题:三元组 (leetcode15)
看到这个题目很庆幸,因为之前一直觉得这个题目一个暴力就解决,没必要做,但是看到leetcode做的人很多,于是耐下性子看了看优化的部分。
优化为:先排序,再循环降重。三个循环,一旦最外层循环的nums[i]>0,说明可以直接返回,因为后面不可能凑出三个数相加等于0。
但是面试官说,只能用C和C++做。
我吐了,于是第一次用C刷题的经历献给了华子一面。
题目中没有用到什么复杂的数据结构,但是我卡在如何给二重指针赋值返回结果。(C语言刷题还是好麻烦……)
时间到了,于是我表示没写出来,但是说了思路,面试比较满意,说,嗯嗯,你思路是对的,而且还做了很多优化。
果然,偶尔的不经意的学习,会起到意想不到的效果!
反问1、二面还需要继续做题吗?回答说需要,我就表示自己需要练习一下C语言刷题。
9月20日 15:15
二面(40min):
1、自我介绍
2、介绍华为实习经历,很详细。一面基本上实习就是一笔带过。二面实习经历具体描述了一遍,可信启动、签名校验之类的。
3、让我描述系统启动流程(bios->OS kernel)、linux系统启动流程(inti进程-启动级别-用户登录)。
4、问我对于C语言的理解,为什么技术栈是C语言和JAVA?(因为我的项目是嵌入式系统+前后端分离项目)未来学习规划是什么?(学C++)
他问如果用C,那基本上就是很底层的,那么为什么还要学习C++呢?我被问蒙了,然后他给了一个台阶,
问你学C++是为了以后业务,还是说扩展自己呢?
我接话,扩展自己,因为自己对于真实工作还不是特别了解,因此想要多学一点,到时候也可以选择。
目前有什么学习计划?(目前主要在写论文)
笔试题:判断四个点是否构成正方形(leetcode593)
当时弱弱问了一下,可以使用JAVA写吗?没想到面试官同意了。
第一次做这个题,首先的思路就是计算对角是否都为90度,这个思路是没错,但四个点不一定按照顺序排列,于是卡死了。
时间已经过了一半,另外想到一个思路,确定一个点,计算这个点到其他三个点的距离,如果是正方形,必定满足勾股定理。
结果只过了90%,这个时候我面试的教室来学生准备上课了,好吵,搞得我无法集中,我和面试官说我的思路,然后突然之间知道问题出在哪里了
我只判断了角度,没有判断四个边长,题目要求是正方形,而剩下几个案例都是长方形,于是我说“可以麻烦给我五分钟再写一下吗?”
面试官同意了,可周围人太吵了,我压根无法集中,于是放弃了,就说不好意思,我这边太吵了,我无法集中。
反问:
1、具体业务。 智能驾驶MDC,OS层、传感器层、中层数据处理等等。
2、主管面大概什么时候? 让我去问HR。
总结:华为面试官很友好,问的问题很深入,我的知识储备不太够…………
1、自我介绍
2、实习情况介绍,根据我实习情况提问,问一个系统的启动流程、可信启动的理解之类的。然后面试官说自己对这块不是特别了解。
3、主要是用C和JAVA是吧?我们部门业务你熟悉吗?我说理解,简单讲了一下。然后他介绍说部门只用C和C++,C主要是底层驱动,C++中间层。
4、你对系统启动流程熟悉吗?讲一讲大概流程(疑惑,最开始介绍实习的时候讲过一次)。
5、介绍一下内存结构?(栈、堆、方法区,我讲的JAVA的哈哈哈哈哈)
那系统进入内存以后,起来了,CPU是如何和内存进行通信的?(我回答,一般是进程和CPU内核通信吧?从用户缓冲区读到内核缓冲区)
面试官说这个回答偏上层,那具体是怎么实现的?(我回答这个我不太了解了)
面试官提示说指针,我接着描述指针指向内存的地址,然后可以将数据读取出来进入CPU寄存器中。
面试官说我回答得大概,没有深究了。太惨了。
6、那你知道CPU的高速缓存吗?一级二级三级cache,(懵逼了,回答没用过。后面发现是接着上一个问题问的,数据需要先读入缓存)
7、C语言程序具体执行的过程了解吗?
(我回答程序也存在内存中,指针指向内存,然后CPU读取到了程序执行,讲了函数执行压栈之类的),
面试官说我说的是宏观层面,
问CPU执行代码的流程,提示了我说乱序执行,我回答,是指的流水线指令吗?他说是的,于是我说了一下流水线指令的概念,吞吐量高之类的优点。
然后他反问,那流水线执行和串行执行相比,缺点是啥?我说从逻辑上串行执行更容易理解,如果出现问题了,流水线执行就比较难分析问题。
然后他又问,那么如果出现问题了,你应该怎么分析呢?我说平时调试的时候,主要用断点分析。
他说那个太上层了,问我程序指令级别的执行流程之中,如果出现问题,那应该怎么处理?
我说我没有调试过,然后他说,难道你没遇到过像越界之类的问题吗?
我说遇到过,会出现程序跑飞之类的情况,但是大部分时候我编码的问题都是在编译阶段就体现出来。面试官笑了笑(我也笑了、苦笑)
8、C语言编译流程了解吗? (终于有一个会了,详细描述了预编译、编译、汇编、链接四个阶段。)
9、那静态库和动态库是怎么加载的?(该死的,这个忘记了)我说我不太记得了,但是我实习的时候,有用过Makefile添加过一些库。
10、面试官听到makefile,反问,那你们当时实习的时候,项目应该不大吧?我回答几十个G,他大吃一惊,说那应该是包括第三方库吧?
我说是的,除了第三方库以外,也有几个G。然后面试官说,那你用过cmake吗?我回答实习项目里有,但是我编译的时候都直接编译bash脚本的。
笔试题:三元组 (leetcode15)
看到这个题目很庆幸,因为之前一直觉得这个题目一个暴力就解决,没必要做,但是看到leetcode做的人很多,于是耐下性子看了看优化的部分。
优化为:先排序,再循环降重。三个循环,一旦最外层循环的nums[i]>0,说明可以直接返回,因为后面不可能凑出三个数相加等于0。
但是面试官说,只能用C和C++做。
我吐了,于是第一次用C刷题的经历献给了华子一面。
题目中没有用到什么复杂的数据结构,但是我卡在如何给二重指针赋值返回结果。(C语言刷题还是好麻烦……)
时间到了,于是我表示没写出来,但是说了思路,面试比较满意,说,嗯嗯,你思路是对的,而且还做了很多优化。
果然,偶尔的不经意的学习,会起到意想不到的效果!
反问1、二面还需要继续做题吗?回答说需要,我就表示自己需要练习一下C语言刷题。
9月20日 15:15
二面(40min):
1、自我介绍
2、介绍华为实习经历,很详细。一面基本上实习就是一笔带过。二面实习经历具体描述了一遍,可信启动、签名校验之类的。
3、让我描述系统启动流程(bios->OS kernel)、linux系统启动流程(inti进程-启动级别-用户登录)。
4、问我对于C语言的理解,为什么技术栈是C语言和JAVA?(因为我的项目是嵌入式系统+前后端分离项目)未来学习规划是什么?(学C++)
他问如果用C,那基本上就是很底层的,那么为什么还要学习C++呢?我被问蒙了,然后他给了一个台阶,
问你学C++是为了以后业务,还是说扩展自己呢?
我接话,扩展自己,因为自己对于真实工作还不是特别了解,因此想要多学一点,到时候也可以选择。
目前有什么学习计划?(目前主要在写论文)
笔试题:判断四个点是否构成正方形(leetcode593)
当时弱弱问了一下,可以使用JAVA写吗?没想到面试官同意了。
第一次做这个题,首先的思路就是计算对角是否都为90度,这个思路是没错,但四个点不一定按照顺序排列,于是卡死了。
时间已经过了一半,另外想到一个思路,确定一个点,计算这个点到其他三个点的距离,如果是正方形,必定满足勾股定理。
结果只过了90%,这个时候我面试的教室来学生准备上课了,好吵,搞得我无法集中,我和面试官说我的思路,然后突然之间知道问题出在哪里了
我只判断了角度,没有判断四个边长,题目要求是正方形,而剩下几个案例都是长方形,于是我说“可以麻烦给我五分钟再写一下吗?”
面试官同意了,可周围人太吵了,我压根无法集中,于是放弃了,就说不好意思,我这边太吵了,我无法集中。
反问:
1、具体业务。 智能驾驶MDC,OS层、传感器层、中层数据处理等等。
2、主管面大概什么时候? 让我去问HR。
总结:华为面试官很友好,问的问题很深入,我的知识储备不太够…………
由于认识部门内部的人,所以整个面试安排其实都是比较固定的,一面还没面就安排二面了。
21号为止部门所有人才面完,内部说主管面得10月去了。
华子一定要收了我啊!没有你我可怎么活啊!
============================
更新
============================
============================
9月26日
主管面:求一个好运!
9月26日 17:00
====================
更新
====================
三面(25min):
面试官感觉好会说话,特别和蔼,对着我笑。
1、自我介绍。(需要给身份证、学生证)
2、在研究生期间,是如何在海量数据中,找到自己想要的数据?(知网上查找,通过关键词锁定论文,然后通过作者锁定学校、导师,然后就可以专门寻找到这类研究方向一致的论文。)
3、课题是如何确定的?开题了吗?(我一直强调和导师的“沟通”,导师给一个大方向,然后自己去找资料,最后再沟通,确定自己的开题。)
4、有没有和导师发生冲突?如何解决的?(某些观点的我认为做不了,导师觉得可以做,然后我就会和导师讨论,反正一定强调“沟通”)
5、学校项目一般是几个人一起负责?我说三个,那有没有和他们发生冲突?(同理,也是强调“沟通”,以及查找资料等)
6、最遗憾的事情?(没能拿到一等奖学金,自己尽力了)
7、有没有争强好胜的一面?(有,比如学习上,尽力了,还是没办法拿到一等奖学金;羽毛球上,想要胜过对方,之类的。)
8、最近读的有关于技术类的书籍(我很诚实回答了JAVA,但是是很久之前,最近学习其实都是通过博客之类的,学习操作系统啥的。)
9、自己学的知识,怎么运用和保存的?(我回答写博客,还有word文档,时不时拿出来复习。)
10、你觉得怎么样学习效率最高?(在实际项目中学习,根据具体业务针对性学习,提升是最快的。)
11、在学校里有没有遇到过,因为自己的问题,导致整个团队进展不下去?(开始压力面试了,我就说遇到过,解决办法就是利用可以利用的时间,加班加点去完成,毕竟这是我负责的模块。)
12、在学校怎么排解压力的?(打羽毛球,表明自己很爱运动。)
13、研究生期间感觉压力如何?(我说压力肯定有,但是也使得我变得更加优秀。)
14、导师、师兄等认为课题没达到要求,你怎么看待这些压力?(我说有,导师每周都会开会,会进行沟通,调整大方向,自己虽然有压力,但是也努力去做好,利用空闲时间加班加点做好。面试官表示自己读研期间也有这种压力。)
15、今年就业形势不好,如果我们不录用你?你会怎么办?(首先表明华子是我心仪公司,如果不录用,我肯定会沮丧一段时间,毕竟自己的能力没有呗认可,但是不能自暴自弃,还是得振作起来,如果后续有机会,我还会继续投递华为,如果没有机会,那我只能投递其他公司了。)
16、华为的理念,以奋斗者为本、以艰苦奋斗啥啥的。你怎么看待这个理念?(平台大,给了普通人机会,通过自身努力改变自己命运,获取自己的奖励啥的,总之就是很认可!)
17、家人沟通情况?家人怎么看待你来华为工作?(老一辈人眼中华为被美国制裁,通常和民族绑定在一起,总之非常支持!)
18、工作地是东莞,MDC有杭州和东莞,你为什么选择东莞?(1、离家近 2、实习过,在松山湖的感觉?,在松山湖的感觉超爽的啦,这里人讲话又好听,我超喜欢这里!)
没有反问,直接结束。
1分钟后,变成一路绿灯了,放个图,求个好运!!!!!
更新
====================
三面(25min):
面试官感觉好会说话,特别和蔼,对着我笑。
1、自我介绍。(需要给身份证、学生证)
2、在研究生期间,是如何在海量数据中,找到自己想要的数据?(知网上查找,通过关键词锁定论文,然后通过作者锁定学校、导师,然后就可以专门寻找到这类研究方向一致的论文。)
3、课题是如何确定的?开题了吗?(我一直强调和导师的“沟通”,导师给一个大方向,然后自己去找资料,最后再沟通,确定自己的开题。)
4、有没有和导师发生冲突?如何解决的?(某些观点的我认为做不了,导师觉得可以做,然后我就会和导师讨论,反正一定强调“沟通”)
5、学校项目一般是几个人一起负责?我说三个,那有没有和他们发生冲突?(同理,也是强调“沟通”,以及查找资料等)
6、最遗憾的事情?(没能拿到一等奖学金,自己尽力了)
7、有没有争强好胜的一面?(有,比如学习上,尽力了,还是没办法拿到一等奖学金;羽毛球上,想要胜过对方,之类的。)
8、最近读的有关于技术类的书籍(我很诚实回答了JAVA,但是是很久之前,最近学习其实都是通过博客之类的,学习操作系统啥的。)
9、自己学的知识,怎么运用和保存的?(我回答写博客,还有word文档,时不时拿出来复习。)
10、你觉得怎么样学习效率最高?(在实际项目中学习,根据具体业务针对性学习,提升是最快的。)
11、在学校里有没有遇到过,因为自己的问题,导致整个团队进展不下去?(开始压力面试了,我就说遇到过,解决办法就是利用可以利用的时间,加班加点去完成,毕竟这是我负责的模块。)
12、在学校怎么排解压力的?(打羽毛球,表明自己很爱运动。)
13、研究生期间感觉压力如何?(我说压力肯定有,但是也使得我变得更加优秀。)
14、导师、师兄等认为课题没达到要求,你怎么看待这些压力?(我说有,导师每周都会开会,会进行沟通,调整大方向,自己虽然有压力,但是也努力去做好,利用空闲时间加班加点做好。面试官表示自己读研期间也有这种压力。)
15、今年就业形势不好,如果我们不录用你?你会怎么办?(首先表明华子是我心仪公司,如果不录用,我肯定会沮丧一段时间,毕竟自己的能力没有呗认可,但是不能自暴自弃,还是得振作起来,如果后续有机会,我还会继续投递华为,如果没有机会,那我只能投递其他公司了。)
16、华为的理念,以奋斗者为本、以艰苦奋斗啥啥的。你怎么看待这个理念?(平台大,给了普通人机会,通过自身努力改变自己命运,获取自己的奖励啥的,总之就是很认可!)
17、家人沟通情况?家人怎么看待你来华为工作?(老一辈人眼中华为被美国制裁,通常和民族绑定在一起,总之非常支持!)
18、工作地是东莞,MDC有杭州和东莞,你为什么选择东莞?(1、离家近 2、实习过,在松山湖的感觉?,在松山湖的感觉超爽的啦,这里人讲话又好听,我超喜欢这里!)
没有反问,直接结束。
1分钟后,变成一路绿灯了,放个图,求个好运!!!!!
============================
10月9日更新
============================
刚刚来了电话,和我交流了一下个人情况,包括家庭、个人择业、目前Offer等情况。
因为和HR吃过饭,交流很多次,因此也没和我说网传的那些稳定人心的话。
问了我国企开的薪资,以及比亚迪开的薪资,还说了比亚迪给的挺高,并且还是MDC的甲方,挺不错的。
我还是表示想去华为,问了问细节情况,他表示目前快要提交审批了,都是保密流程,不能说。
只告诉我有希望,但说没办法保证100%可以拿到Offer。并且吐槽说我学校三方下的太早了,留给学生考虑的时间都不多……
我问流程安排,他说流程和往年差不多,都要等到十月底、十一月初才准确的答复。
感觉我的排序可能并不是特别高,可能需要前面有人放弃Offer才能轮到我,突然好慌,需要好好考虑一下要不要all in。
=============================
10月12日更新
=============================
现在才正式入池子,好难顶,希望月底能有结果……
=============================
10月28日更新
=============================
车BU正式消息啥没有,有同学投递车BU另外部门,说月底有答复,同样也啥消息没有。 润了润了,与华子无缘咯~