嵌⼊式软件⼯程师2021⾯试指南
作者简介
2021应届本⼆,⽬前年薪20,在某⾏业头部⼤⼚从事嵌⼊式多媒体开发(⾳视频应⽤⽅向)。
由于没有耀眼的学历,学习的资料和企业实际应⽤有些偏差,2020年⼤三时秋招处处碰壁,当时最⾼只有10k,于是抛开薪资选择了⼀个⾃认为不错的⽅向进⾏实习。
努⼒终有回报,实习半年,毕业三个⽉后,拿到了当前⾏业⼏乎所有头部公司的offer。其中包括海康、⼤华、宇视、新华三、紫光、萤⽯、华晨等等。
⾯试前准备
资料推荐
这份⾯试指南涵盖了95%以上应届⽣⾯试可能遇到的问题,如果真的想拿⾼薪,那么建议你好好研究。
你可以去csdn上付费,也可以联系到他免费给你(别问我要)。
要不要刷笔试题、⼒扣
摘要:要刷笔试题,⼒扣刷不刷看你要⾯的公司考不考。
笔试题因⼈⽽异,基本上应届⽣没有漂亮的项⽬经验,所以应届⽣的⾯试中⼏乎所有公司都会让你做题,由于我有实习经历,⽽且项⽬我做了⼀⼤半,简历丰富,所以我没有刷题。
还有⼀点就是收集信息,⽐如某公司⼀共⼏轮⾯试,有⼏轮笔试⾯试,笔试题难度。这个需要你到⼀些相应的社去了解,⽐如下⾯的图
这个是我资料的时候加的,都是应届⾯试的同学,要加的话那个资料的主⼈。
如果你的学校⽐较好,有计划冲击华为、微软那些公司,那么你就需要提早准备起来。
由于没有好好准备笔试,电话⾯试问到项⽬问媒体层知识乱杀,⼈家邀请我到线下给我做了套22年的笔试题,我有挺多做错的,尴尬的很。不过笔试做不出来也没啥⼤问题,offer该给还是给,薪资压点
企业资讯获取
1、学校资源
学校、学院就业⽹站,宣讲和招聘信息,招聘会等
2、企业官⽹
⼤中型企业招聘官⽹、。
3、招聘APP
我⽤的boss,其实都可以,但建议⽤当下⽐较⽕的
4、社资源
在这种应届⽣⾯试的社⾥,你可以知道某地的嵌⼊式类型公司哪些⽐较好,有什么坑,有没有笔试,薪资标准等等资讯,我⾮常推荐⼤家看相关社
简历制作
很多细节在我推荐的那个⾯经⾥⾯有
这⾥我讲讲我的⼼得,如何针对性的去写个⼈技能
⾸先要确定⾃⼰的⽅向,⽐如
做路由相关,那么你就要着重写上⽹络相关的知识
做应⽤相关,就着重写应⽤相关的知识
做驱动相关,那么就着重写驱动相关
道理⼤家都懂,⾸先写上⾃⼰会的,然后再到你想要的⽅向的龙头企业,以它作为参考去写你的简历以下⾯这个为例
你的简历应该如下
熟练掌握C/C++,具有良好的编程规范
熟练掌握linux应⽤层编程,⽂件IO、标准IO、多线程、多进程、SOCKET⽹络编程
熟悉H264、ACW、PCM等常⽤⾳视频编码标准
熟悉RTP、RTSP传输协议
了解RTP、PS封装
具有XX平台XX年开发经验
这么样的简历完全匹配,能够匹配⾏业龙头企业的要求,那么⾏业中游企业的要求也可以满⾜
再举⼀个例⼦
简历如下
熟练掌握C/C++,具有良好的编程规范
熟悉Makefile/shell脚本编写
熟练掌握linux应⽤层编程,⽂件IO、标准IO、多线程、多进程、SOCKET⽹络编程
熟悉XXX版本内核
了解xx汇编、xx汇编,能够通过反汇编快速定位并解决问题
具有XX平台XX年开发经验
两个例⼦写的很粗糙,⼤家懂意思就⾏,根据⾃⼰的⽅向写上相关知识点
不会怎么办?
总归有不会的,学就是了。简历匹配可以让你有⼀个⾯试的机会,能学到什么程度⾯试聊到什么程度就可以了,⾯试官知道你不会就不会再为难你。
简历上的东西你多少得说出来,如果简历写上了你⼀点答不出来就GG。
先有⾯试机会再说
去不去外包
⽹上讨论很多⼤家⾃⾏参考,我直接说我的结论
如果实在没有选择了,可以去外包。缺钱的话,可以第⼆第三份公司选择外包,不缺钱,有选择的余地就不去
建议在最开始⾯试可以先投外包进⾏⾯试练习
跟华为搭边的百分之九⼗都是外包
嵌入式多线程编程
⾯试
⾃我介绍
⼀开始肯定让你⾃我介绍开场
1、如果学校好就介绍⼀下⾃⼰哪个学校毕业的;学校不好就说⾃⼰是xx级毕业⽣
2、在学校做的项⽬,做的⽐赛/项⽬
这⼀点尤其重要, 介绍你项⽬的同时要给出⾯试官问你的空间。⽐如说,“在项⽬中我解决xxx问题/xxxbug定位/学会xxxx知识”,如果⾯试官顺着你说的问你,你将这些准备好的问题正确的回答上,算⼀个好开头
3、阐述你对他们公司这个⽅向很感兴趣,想在这个⽅向进⼀步去钻研
技术⾯试
⾯试官对你项⽬的了解肯定不如你,所以主动权在你⼿上
如果⼀开始介绍项⽬的时候,⾯试官没有顺着你给出的点来问,那么⼀般情况如下
1、介绍⼀下项⽬框架、逻辑、项⽬做了多久
2、你在项⽬中的职责,贡献的代码量
3、具体问项⽬中某⼀个模块的实现
4、再具体到某⼀个技术点
5、有的⾯试可能不会限于你简历上的,会循环34问到你不会为⽌
还可能有,⾯试官遇到啥问题搞不定,要做什么需求,然后问你的思路
6、你在项⽬中解决的最难的bug
重要,体现你的能⼒。在别⼈说加打印的时候,你聊栈溢出;别⼈说项⽬逻辑的时候,你聊整体框架问题
7、和同组成员如何合作(代码管理)
8、代码风格
9、零散的问⼀点基础知识,如C相关内容
10、反问。建议问⼯作内容,要不要经常出差
上⾯列出的12涉及到的细节⼀定不能被问倒,最开始的⼏个问题都是来判断这个项⽬是不是你做的,⼀旦被问倒,说明你没做过
回答的注意点如下
1、不要结结巴巴,这样会让⾯试官觉得你沟通、表达能⼒不⾏
2、不要问什么答什么,⽐如问到你线程detach,你聊完了可以聊聊关于线程属性、遇到的bug,线程和进程对⽐。
问什么答什么会让⾯试官感觉很累,如果他说⼀个技术点,你把这个技术点⽐较重要的内容说出来,他对你的好感就会增加
3、不要说的太流利,太过于流利会让⼈感觉你在背书,适当停顿假装思考
4、答不上就说不会,不要硬答
5、答不上的内容你可以引申⼀下,⽐如⾯试官问我项⽬中有没有⽤到cache,我说没有,然后讲了⼀下cache是什么,有什么⽤,可
能可以使⽤的场景,相关的还有⼀个violiate关键字
这样就算没答出来还是可以化被动为主动
6、不经意间体现你的优点,⽐如介绍项⽬框架的时候你是怎么思考的,怎么样可以增强项⽬的扩展性;你发现了哪⾥的代码设计的不
好,为什么;如何团队合作;如何定位bug;项⽬的不⾜
总的来说,⾯试的时候要主动⼀点,⾯试官没义务去发掘你的亮点,在⾯试的过程中尽可能的展⽰⾃⼰
⾯试的过程也是你考察公司的过程,包括⾯试官的风度、问题的专业程度等
苏州科达的⾯试官是给我感觉最好的,问题有深度,你不会了还给你台阶,全程友善。
⾏业某龙头给我压⼒⾯试,每次问道我不会的,挖个坑我踩了,就搁那笑,⽓死我了!
具体技术细节在我推荐的⾯试资料⾥,⼤家⾃⾏学习,我会在后⾯的⽬录列出我被问到⽐较多的问题
⾯经中的部分内容如下
HR⾯
有的公司HR⾯会刷⼈的,⾯试前可以问问看⾥的⼈,不要犯病⼀般都没问题
之前⼀个哥们,被问未来规划,他来⼀句要去创业,然后挂在HR⾯
HR⾯的可能问题如下
1、什么时候⼊职
2、籍贯,异地的话,为什么决定来这个城市发展
我⼀般回答⼥朋友在这(不管有没有都可以说)
3、未来规划
我⼀般回答在当前⽅向深耕两三年,先成为项⽬中的⾻⼲成员(别犯病)
4、如果和领导观点冲突怎么办
⼀般要回答,视野不同,领导在⾏业更久看的⼀定更远,保留意见,⽐较领导和⾃⼰看待问题的⽅法(⼀般公司想要服从的⼈,但是也有例外,⼤疆就喜欢激进的)
5、决定在公司待多久
我⼀般回答,贵公司在⾏业内属于领导地位,我希望在贵公司长远发展,我也喜欢这座城市,⼥朋友在这,家⾥条件不错,有计划结婚后在公司附近买房
6、⽗母是做什么的
就是问家庭条件,是不是会在这座城市长久发展,我⼀般都是往家庭条件不错的⽅向回答
7、为什么从上⼀家公司离职
别说上家公司坏话,我回答是项⽬完结没有新项⽬,现在闲了,⼈员流动较⼤,项⽬组就只有我⼀个⼈
8、能不能接受加班
不管它要不要求加班你都说能接受,明确说不能接受会让⼈觉得你没有抗压能⼒(决定养⽼除外)
⽬标公司是否加班可以通过⽹络获取,我也传了⼀份,可以免费下载
9、反问
五险⼀⾦,住房、餐补、通信、交通等补贴,补贴是否包含在⼯资⾥
⼤概问题就是上⾯列的,总结就是往积极的⽅向回答,不要说负⾯内容
我的⾯试经历
由于我确定了⾃⼰的⽅向,投的细分⾏业公司问的都差不多,所以直接合起来讲了
我感觉⼀⾯有点压⼒⾯试的意思,每⼀个点追着我问,问到我不会为⽌,⼀般⾯试是半⼩时,超过半⼩时就没什么问题了。⽐如这家公司⼀⾯问了很久,⼆⾯就问了20多分钟然后开始类似hr⾯试的问题,三⾯HR,之后发offer。
下⾯总结⼀下这段时间被问到的问题,从简介绍
基础
由于我简历的重点是项⽬,所以基础问的少,项⽬经历不够丰富的应届⽣⾃⾏通过我推荐的⾯经进⾏学习
负数是怎么存在内存⾥的
在计算机中,数据都是以正数的补码的形式存在的。正数的补码是其本⾝,负数则是以其本⾝的正数的补码的形式存在的。
有没有遇到过bus error
没遇到过,但是我知道他的起因和排查⽅法
进程的虚拟内存空间实际上是对物理地址的⼀个映射,通过mmu实现,页表管理,操作系统和编译器会⽤内存对齐来做优化,通常就是4字节对齐,所以int,float这种类型的起始地址都是4的倍数,⽽short的起始地址是2的倍数,double的起始地址是8的倍数,假如此时对⼀个不是4倍数的地址a进⾏解引⽤ (int *) a,就可能会出现总线错误,这个出现的情况还要具体看是哪⼀种操作系统。总线错误⼀般不会出现,出现的情况多半是使⽤了指针的强制转换