本人西电研究生,实验室并不是搞嵌入式的,纯属个人爱好,普普通通,绝非大佬~
其实华为面试并没之前想的这么难,过程还是比较easy的,至少比某些bat大厂的面试要平缓轻松很多。
选择意向:
4月初就拿到了华为西北地区菁英计划(优招)的菁英贴,然后就是各个部门一直打电话以及去参观交流,最后因为个人想做芯片和操作系统,所以选择了华为终端芯片(小海思)
提前交流:
5月份的时候就已经参加过一次线上交(mian)流(shi),是一个大佬级别的专家亲自面试,上来先手撕代码:有效的括号
接着开始连环炮发问了...
1.“这道代码题你用到了栈对吧,那么讲下平时项目里什么地方会用到栈?”答:OS上下文保存
2.“堆和栈的区别,各自用在什么地方”?
3.“进程和线程有什么区别?”
4.“相同进程的多个线程可以共享什么资源?”
5.“多进程或多线程同步可能会造成什么问题?”
6.“死锁和优先级反转,分别说下是如何造成的?”
7.“中断和信号量的区别和各自的底层实现原理?”
8.”中断向量表一般放在哪里,它有什么用?“
9.“segmentation fault的原因是什么?对应的中断向量表的哪一个异常向量?”
10.“什么情况下会栈溢出?如何避免?”
然后项目的东西一个字都没有问,然后就结束了
笔试:
参加的6月份实习笔试(并没投实习),三道编程题,说实话真挺难的,只做了400多分,有道题实在做不太出来...
一面:
应该是7月9号,参加的是提前批最早的一批面试,当天排序第一个。
面试官先是复盘了一下笔试:这道题的思路是怎么做的?有没有其它方法可以做,比如动态规划?讲下动态规划的一般解题思路技巧(我是个搞嵌入式的菜鸡...咋一直问动态规划)
然后就很轻松了,由面到点的对每个项目问了一下,介绍下里面的工作量,并且对里面的知识点(操作系统、 驱动、算法这几个大类知识点)进行简要的考察。
比如:操作系统中,过多的时间片进行轮转会影响实时性,这里该如何解决?
总共大概20多分钟就结束了...非常快
二面:(一面十分钟以后):
面试官比较喜欢笑,感觉性格很幽默。
上来先寒暄了两句,然后对项目里的一些东西做提问,但是比一面蜻蜓点水般的提问要更细致一些,要求结合项目的背景、技术路线、难点去做简短的描述,也是对表达能力的锻炼。
后面看着项目要问完了,他问我还想聊啥?我说做嵌入式的,不然聊聊操作系统吧,然后就此开始讨论。
“操作系统有哪几种锁?”
“如果我在中断里想和一个用户进程做同步,该使用哪种锁?”
“如果中断里一定要使用会造成阻塞的锁,那么系统会怎么样?为什么?”
“在编程的时候使用锁应该注意什么?”
最后到了紧张刺激的手撕代码环节...好家伙...《接雨水》,这是个leetcode hard难度,而且我没做过,但还是侥幸做了出来hhh
总共大概30分钟不到就结束了...非常快
三面:(一二面两天以后):
面试官一看就是个大leader,亲和力和压迫力并存...
1.“你是做软件的,那么对整个芯片设计制造的工艺流程有了解吗吗?” 还好平时跟微电子的哥们玩的多,能答个七七八八
2.“对我们部门的业务方向熟悉吗?” 还好平时跟HR聊的比较多,也能答个七七八八
3. “如何看待现在国内外的芯片行业形势?” 还好平时看新闻刷知乎比较多,能答个七七八八
4. “项目里哪一个最有成就感?遇到了什么困难?” 这个就巴拉巴拉说了
5. “做实际产品的代码和平时学校里写代码,最大的区别是什么?”
6. “你做项目的动机是什么?为了钱?为了提升?还是为了啥?”
7. “以后进华为以后的职业规划,以后自己想创业吗?”
又交流了一下,对不同架构芯片生态发展的看法,就差不多了
最后有幸得到了这位大佬的赞许,愉快的结束了此次面试~
总结:
总体流程还是比较顺利的,原本考察的东西其实也不难,现在就朝思暮想的盼着华为提前批开奖~
在等待offer的过程中又陆陆续续面了一些该公司,截至到今天已经拿了10+个 offer了吧,其中包括腾讯、字节、百度、VIVO等(有些我前面写了面经,如果需要可以参考)
不过最期待的其实还是华为,希望开奖时有一个好的结果,希望能为半导体行业做出自己的贡献,许愿~
全部评论
(10) 回帖