【经验分享】金九银十招聘季,嵌入式软件面试经验

前言/背景

    虽说金九银十,但其实很多大厂在7、8月就已经开始在学校里抢人了。那么如何在众多同龄人中脱颖而出呢?这里准备了一些面试相关注意事项,希望可以帮到大家。
    本人15年毕业,进入一家企业工作至今,一直从事嵌入式软件相关的工作。虽然个人参加面试的不多,也就毕业参加的几次面试,后面也没去过别的公司。但在公司后面几年,也多次以面试官的身份去面试应聘者,所以对于面试这个话题,我更多的会以面试官的角度来谈谈,面试官更喜欢的是哪种应聘者。

偷偷告诉你,内人原本也是招聘科HR哦~~

面试流程

招聘流程:

校招
宣讲会:宣讲会->笔试->初面->技术面->综合面
双选会:初面->宣讲会->笔试->技术面->综合面

社招
电话面试/现场初试->笔试->初面->技术面->综合面

    各阶段视公司情况来定,公司小一些的,可能就没有综合面,但大部分情况都会有初面跟技术面。

  • 初面

    由HR或非本专业人员进行面试,会考察一些基本信息及专业匹配度,不要以为HR就不会问专业相关的问题,有些专业岗位面试久了,一些专业问题的答案还是清楚的。
    这里尽量表现自然点,放松,对面试官表现出尊重,可以把面试官当成老师或长辈来看,跟长辈交流应该有经验吧。专业一点的面试官,一般也会先让你放松心情,以考察你真实的能力。(压力测试型的面试除外)另外就是要提前了解要面试的公司,了解公司大致做什么产品之类的,对HR来讲这是个很大的加分项。

  • 笔试

    可能会有两套题,一套综合题,跟考公务员差不多,只是为了测试是否具备一些常识。一套是专业题,为了测试专业基础。
    笔试要么靠够硬的基础能力,要么就只能刷题。大部分公司不会自己出题,一般都是直接网上找的现场的题目,所以笔试多了会发现,做的试题大同小异。有些公司其实更看重个人的发展潜力及悟性,所以基础不够踏实的情况下,刷题是跳过笔试环节进入技术面试的最快途径。

  • 技术面

    由公司该专业骨干进行面试,重点考察个人专业基础能力及发展潜力,专业问题问的深度就看面试官的面试能力。
    一般对于简历上写的项目经历,自己要先熟悉整个项目的过程及技术细节,最好在面试前,先梳理所有项目的技术框架。面试官一般会抽出简历上的某一个项目让你详细说明,包括里面的技术要点,你在项目中所担任的角色等。专业的技术面试官,为了探寻你的能力底线,一般会在同一个问题一路深入,如果都能答出来最好,深入到一定程度后答不出来也很正常,不用紧张,按真实情况回答就行,千万别想着不懂装懂糊弄过去,弄巧成拙会导致给面试官的印象大打折扣。

  • 综合面

    由公司领导层进行面试,从个人专业度、发展潜力、稳定性等方面,综合考虑判断岗位匹配度。
    这个看领导风格跟公司组织架构,存在一定的运气成分在里面,应届生还好,跟组织架构关系不大,领导更多的就是看发展潜力跟稳定性。

资料总结/刷题指南

    其实对于题目,很多公司都大同小异,公司小一点的估计都直接网上拷贝的题目,而大点的公司一般会有自己的题库。嵌入和C语言的题目,归根结底,考的还是基础。

翻译

    做嵌入式的应该都知道,经常要跟英文文档打交道,所以基本的英文能力要有,起码可以看懂英文手册。

C语言

  • 指针

    重中之重,C语言入门可以不需要指针,但要精通C语言,指针是不可逾越的鸿沟。

例题:

定义指向整型的指针p。
答:int *p;

定义指向整型指针的指针p。
答:int **p;

定义指向10个整型数组的指针p。
答:int *p[10];

定义有10个元素的指向整型的指针数组p。
答:int (*p)[10];

定义一个指向函数的指针p,函数有一个整型参数,返回值为整型。
答:int (*p)(int);

定义一个指向函数的指针p,函数有一个整型参数,返回值为指向整型的指针。
答:int *(*p)(int);

求以下p的打印值。
int *p = (int *)0x20000008;
p++;
printf(“p = %x\n”, p);
答:32位系统下,p值为0x2000000C;64位系统下,p值为0x20000010。这一道题三个考点,一是int类型,在不同位数的操作系统下,数据类型长度不同,32位系统为4字节,64位系统为8字节。二是指针的偏移,指向int类型的指针自加1,实际偏移地址为数据类型的字节数。三是十六进制的表示,之前很多粗心的小伙伴都是知道前面两个点,却败在最后的进制转换,所以做题一定要细心。

注:函数指针是个好东西,建议不止是刷题,也要牢牢掌握它的用法。

  • 数组

    一维数组多维数组,一般会跟内存分布和指针一起考察。
例题:

假设int a[3][4];定义的是一个三排四列的表格,现在想要给第二排第一列赋值为10,应该怎么做。用两种方式表示。
答:
1、a[1][0] = 10;
2、*(((int *)a) + 1 * 4 + 0) = 10;
首先考察的第一点是数据下标为当前序号-1,第二点就是二维数据的空间分布结构,a[3][4]表示的是3个4元素的一维数组,内存里还是按一维的形式进行存储。

  • 循环

    一般也就考个执行顺序跟执行次数,考点不多。
例题:

求以下打印值是多少?
signed char a, b = 0;
for (a = 0; a < 60; a++){
b++;
if (b >= 50){
break;
}
}
printf(“a = %d\n”, a);
答:a = 49,这里面的执行顺序是,第一次进入循环前,先执行a = 0,后面循环体先执行判断a<60,满足则进入执行部分,执行b++和判断b>50,结束后再执行a++,当循环遇到break,即b为50时,直接退出循环,不再执行a++,所以此时a的值比b值小1。

  • 数据类型,优先级

    坑特别多,如果实在答不出来,就在技术面的时候跟考官解释,自己实际不会这么写(现实中这么写真的会被打死),然后给出自己的写法。当然前提是还能进入技术面。
例题:

以下代码打印的结果是什么,为什么?
unsigned int a = 10;
signed short b = 5;
if (b - a > 0){
printf(“b > a”);
}
else{
printf(“b < a”);
}
答:打印b>a,因为有符号和无符号整型数据混合运算时,会默认升级为无符号类型,即5-10=-5转成无符号数,最终是个大于0的一个很大的数值。如果要按原本的数据类型实现b<a的目的,可以在运算时增加强制转换,即写成if ((signed int)(b - a) > 0)

  • 编译题

    考察题目理解,基础的逻辑思维及代码编写能力。这个只能靠平时多练,没办法速成。
例题:

给你一个10个元素的数组,对其元素进行从小到大的排序,写出排序函数。

给你一个10个元素的数组,去掉其中的最大最小值,并求出剩余元素的平均值。

推荐可以到“力扣”上去刷刷题,提升下编程能力。## 嵌入式

  • 单片机

串口、IIC、SPI时序图
中断:中断的机制,使用中断需要注意的点
端口类型:上拉、下拉、开漏、推挽

  • 操作系统

多线程/任务、信号量、邮箱、事件

个人经验总结

    个人因为只有一次面试经历,也讲讲吧,那时候刚毕业,因为本身基础不好,又没去刷题,所以是很怕笔试的。几次笔试的经历也是验证了我的忧虑(只要一笔试就没有下文),直到来到现在这家公司。刚进来也是让我做笔试题,其实看到试卷的时候我就想着没机会放弃了,但本着跑了这么远的情况下,还是坚持把试题做完,而且因为前面也做过很多次笔试,有些题多多少少还是有点印象。
    那会公司还不是很大,人不多,流程没那么严,面试官(也就是我之前的老大)直接进行技术面,老大拿着试卷一道道过,让我解释这么做的思路,一路下来错题很多,不过整份卷子还是有亮点的,就是后面的编程题。题目很简单,只是说实现一个函数,功能是去掉一个数组里的最大最小值,并求出剩余值的平均值。(到这里你可以先思考一下,如果是你,会怎么做)虽然试卷里我只给出一个方案,但面试的时候,我说出了自己的考虑:题目没说要去掉多少个最大最小值,所以这里有两种处理方式,一种是按去掉一种的方式来,一种是去掉所有相同的最大最小值。另外还需要考虑数组个数不足三个的情况。
    基本讲完题目,也就是对我的一些面试,就大概持续了1个小时(是的,你没听错)然后老大说要去打个电话,应该是去跟领导确认情况,回来后,整个人开朗了好多,balabala开始跟我讲公司的情况,这里基本就有感觉应该是被录取了,对老大的感觉也还挺好的。在回去的路上就接到领导的电话,说是被录用。
    整个过程,从到2点到公司开始笔试,做了1小时的题目,面试讲题目花了1小时,老大跟领导汇报了十来分钟,了解公司情况用了40多分钟,结束回去的时候差不多5点了。
    其实从面试的时间来看,可以看出一个公司对人才的重视程度,当然公司做大之后也不一定有那么多精力和时间去面试。

总结

说到底,面试看的就几个方面:

1、专业基础能力及匹配度
2、发展潜力,也就是学习能力及悟性
3、稳定性,也就是家庭、性格等一切对工作稳定性的因素

针对以上几点,可以得出面试加分项:

  • 比赛经历。–专业基础加分项
  • 实验室经历。–专业基础加分项
  • 自己个人兴趣做的小项目。–专业基础加分项
  • 学校考试成绩。–潜力加分项
  • 现场编程思路清晰。–潜力加分项
  • 技术热爱度。–潜力/稳定性加分项
  • 发展规划。–稳定性加分项
  • 对面试的准备及对公司的了解。–态度加分项

寄语

    找工作就像爱情一样,也是需要缘分,希望大家都能找到自己心仪的工作。如果对面试有什么疑惑,也可以评论区留言一起交流交流。

猜你喜欢

转载自blog.csdn.net/u012749085/article/details/126250073