2020-5-20华为暑假实习嵌入式软件开发一面记录

今天早上很忐忑的等待华为的面试,但是其实还是比周一第一次面试的时候要放松不少,一方面有了之前的准备,另一方面有了周一的经历,心里也不是那么害怕,大致知道问题的难度在哪,人可能就是对于没有经历过的事情才会产生恐惧吧。下面就讲讲面试馆问的一些问题,作为一个总结。

首先先是一通自我介绍,我讲的时候面试官一直盯着电脑,有些面试官会低头看简历,这次自我介绍要比周一时要好,虽然过程中有卡壳,但是总体上不是那么的紧张了,这是好事情。

然后,面试官问的第一个问题是笔试的分数为什么这么低,有什么原因吗?这个问题我就直接如实回答了,做的项目是嵌入式的,接触硬件更多,控制外设什么的,数据结构与算法这块接触的不多,但是最近都一直在补。

第二个问题是那你认为嵌入式软件开发和通用软件开发有什么区别?第一点嵌入式与硬件打交道,和硬件联系更紧密,第二点是嵌入式的资源相对更少,flash和ram都没那么大,第三点是低功耗方面。然后面试官就问低功耗你确定是软件能决定的?我就狡辩了一下应该是硬件支持,然后软件来控制,决定要不要支持低功耗,面试官就纠正了我说的,说应该是系统方面决定的,不是软件决定的。

接下来继续问嵌入式资源比较少,你指的的是空间还是时间,我说空间,然后面试官就问空间和时间上在项目中有哪些方式?我就懵逼了,支支吾吾上时间上用实时系统RTOS,空间上讲不出来。然后面试官就说做项目还没考虑到优化,只是把代码写完了就完了,我说主要是功能代码,完成功能,没考虑到优化。

然后换个话题问嵌入式的难点在哪?我说要懂芯片的工作原理,外设的使用,怎么配置寄存器让外设在想要的模式下工作,第二个方面就是要去学习RTOS,GUI库这些已有代码的一些机制,理解他们怎么工作。前两点是基础,其实这里应该补充业务代码相关的内容,比如熟悉业务逻辑。

下一个问题你做项目中遇到的困难或者印象深刻的地方有什么?这个问题幸好提前准备了,讲了一个是学习RTOS方面的,一个讲了做项目中自己的一个失误的教训,然后让具体描述一下什么情况,就给介绍了,后面又问以后如何保证,就从教训的方面答了怎么保证。

在下一个是问C语言中有哪些需要注意的地方,脱口而出指针,然后让说具体有哪些场景,我就讲了malloc和free指针的时候的问题,然后继续问局部变量和申请的有啥区别,回答局部变量函数调用完成就释放了,存储在栈上,申请的在堆上,调用完成还在,其他函数还可以访问这个地址。

最后就是手撕代码,面试前最担心这个环节,因为和通用软件开发都是在软件开发岗位下,非常担心直接给搞个什么动态规划之类的题目,结果还好面试官是做嵌入式的,理解我们嵌入式在这方面的薄弱,就出了一个链表删除的题目,数据结构之前还是接触了一点,对于链表操作还算熟悉,知道原理,然后就开始在纸上写起来。最后写完了,面试官看了看说代码可读性不是很好,哈哈。

然后就问我有没有什么问题,我就问了三方面,实习工作内容,对于数据结构和算法以及C++有什么看法,还有就是嵌入式软件工程师如何提升自己。

最后就结束面试了,然后收到了进入下一轮的通知,哈哈,也是运气好。综合来看华为的面试还是比我周一面试的那家要难很多,我没想到项目内容居然一个字都不问,问的都是大面的对于嵌入式的理解,这方面的问题如果没有一点积累,还是没那么容易能打上来的。最最后希望二面顺利吧。

你可能感兴趣的:(面试)