嵌入式面经_快速通关嵌入式笔试_八股文_项目_一路冲关分享
111道嵌入式面试题答案汇总专栏链接 --> 《嵌入式/C++面试题解析大全》
1、个人经历
本人2020年毕业于广东工业大学研究生:许乔丹,有国内大厂CVTE和世界500强企业嵌入式/安卓开发
经验,从事过硬件开发/单片机/嵌入式Linux应用开发/嵌入式Linux驱动开发/安卓系统/安卓应用
等岗位。
2、嵌入式面试如何准备
嵌入式面试最重要的三大关是:算法题目+八股文+项目经验。
2.1 第一关:笔试
对于嵌入式岗位的校招面试,刷题是非常重要的。虽然嵌入式岗位的工作内容不同于纯算法岗位,但是算法和数据结构是计算机科学的基础,也是嵌入式岗位的基础。在面试中,面试官往往会通过算法题目来考察面试者的编程基础和思维能力,刷题的场景一般就两种:
- 正常面试流程第一关就是笔试题,自己在家里对着电脑做;
- 等你到了现场和面试官当面面试,面试官会给你一台电脑现场敲代码,甚至一张纸让你手写代码;
至于怎么准备,个人建议先刷一下一本叫做《剑指offer》的书,然后再去牛客网、力扣网刷题,能做到这几点就够了,至于看某家公司往年面试题是啥,其实必要性不是很高,也不用去辅导班,买算法题资料去学习,牛客网、力扣网足够了。
2.2 第二关:八股文
一般技术面试有两轮,第一轮侧重基础知识,也就是八股文,第二轮侧重简历,也就是项目经验。 那么,八股文如何准备呢?请看:
高效提高校招准备效率==》《111道嵌入式面试题目录及答案链接》
- 第一章 进程线程
- 1.1 进程线程的基本概念(9题)
- 1.2 并发,同步,异步,互斥,阻塞,非阻塞的理解(3题)
- 1.3 孤儿进程、僵尸进程、守护进程的概念(3题)
- 第二章 C/C++高频面试题
- 2.1 c和c++区别、概念相关面试题(20题)
- 2.2 继承、多态相关面试题 (15题)
- 第三章 网络编程
- 3.1 TCP UDP(7题)
- 3.2 三次握手、四次挥手(6题)
- 第四章 常见算法
- 4.1 排序算法(9题)
- 4.2 STL库相关(8题)
- 第五章 Linux操作系统常见面试题
- 5.1 Linux内核相关(12题)
- 5.2 其他操作系统常见面试题(12题)
- 第六章 单片机常见面试题(12题)
PS:嵌入式也要会C++相关的八股文哦,较大概率会问到。
2.3 第三关:项目经验
如果你找的是单片机,那就只要单片机的项目,如果你是嵌入式linux,你可以最多写一个单片机项目,其他都要写嵌入式linux的项目。
如果你找嵌入式linux应用开发工作,也可以写linux驱动项目,但必须有一个应用层的项目。
如果你找嵌入式linux驱动开发项目,最好也要有一个应用层项目,突出你对多进程多线程那些知识点有所了解。
项目数量2-4个,此时就需要靠过往的经验积累了,如果确实没有项目,可以向身边做嵌入式的同学请教一下,快速掌握,同时也分享几个项目供参考:
基于人脸属性识别的嵌入式电影推荐系统(嵌入式人工智能项目、可提供源码)
1)情况:为解决“信息过载”问题,提出基于人脸属性识别的广告推荐系统。
2)目标:独立负责,摄像头捕捉人脸并预测年龄、性别,显示屏可输入用户职业,系统根据此三大信息推荐8部电影并在显示屏显示。
3)行动:搭建RK3399开发板开发环境,通过OpenCV获取摄像头图像,Dlib检测人脸,采用WRN神经网络预测年龄、性别,结合基于用户的协同过滤以及决策树模型进行电影推荐。使用PyQt5设计人机交互界面实现职业获取和电影信息显示。
4)成果:在RK3399开发板可实时获取被推荐人年龄、性别、职业,据此推荐8部电影并将其电影名字和海报图显示在屏幕上。
基于Linux6818开发板的视频播放器(可提供源码)
本项目基于嵌入式linux6818开发板,制作一个音视频播放器。开发板移植安装好mplayer,我提前下载了5个mv,使用mplayer命令分别在5个视频里截取某一秒的画面,共得到5张图片,也就是所谓的视频缩略图,将5个缩略图显示在显示屏的右边,当作是播放列表,支持上下滑动浏览播放列表,点击其中某个图片,即可播放对应视频,并实现播放器常见的开始、停止、上下首、音量调节、进度调节、全屏、静音等功能。使用到多进程技术:有名管道、消息队列、信号量;使用到多线程技术:互斥锁、条件变量。
基于Linux6818开发板的智能车库项目(可提供源码)
没错,也是粤嵌6818开发板,搭配触摸屏、USB摄像头、音响,模拟实现真实场景中的智能车库常见功能:
- 实时视频监控
- 自动识别车牌
- 自动语音播报
- 停车计费
需要使用到V4L2子系统,FrameBuffer子系统、OpenCV、多进程多线程编程、ALSA子系统、智能语音引擎、网络编程、数据库编程等。
3、简历怎么写
网上有很多教你怎么写好简历的帖子,按我的经验,可以先完成以下三个原则:
- 专业技能:建议写6-8点,可以从boss直聘、猎聘等网址搜索嵌入式工程师,看看上面都有哪些专业技能要求,按照:精通-熟练-熟悉-掌握-理解-了解,的顺序去描述自己掌握的程度。举个例子,你看到岗位要求写着“精通Linux驱动”,你就可以改为“理解Linux驱动”,然后写在简历里,最终凑到6-8点;
- 实习经验是简历的王牌,你要是有实习经验就写上去,这是简历的王牌,没有的话那也无法强求了,需要从项目丰富自己;
- 项目经验:符合2个指标,一是必须与嵌入式相关,你找嵌入式工作,写了一个前端后台、人工智能的项目,面试官不会买单的;二是项目经验数量建议在2-4个,1个肯定是不够的,但写了5个真没必要;
我的简历顺序就是按个人信息-教育背景-专业技能-实习经历-项目经验-获奖情况,这样排序。至于个人评价、所修课程,可以放后面点,甚至不写上去。
结语
如果你能把《剑指offer》刷完,将上述我整理的111道八股文掌握,再整2-4个项目,那么你一定有机会卷赢本次校招。
本人从单片机开始做起,也发表过硬件专利,后续又转到嵌入式Linux,直到现在从事安卓系统/安卓App,如果各位友友对嵌入式/安卓岗位有疑问,欢迎交流~
牛客高级系列专栏:
嵌入式
- 想通关嵌入式面试,请看: 《111道嵌入式面试题目录及答案链接》
- 想多掌握几个嵌入式项目,请看:《6个嵌入式项目交流分享(附源码)》
安卓(安卓系统开发也要掌握)
- 想通关安卓面试,请看:《150道安卓高频面试题目录及答案链接》
- 想通关安卓系统面试,请看:《140道安卓系统Framework面试题目录及答案链接》
- 想进阶安卓开发,请看:《Android进阶知识体系解析_15大安卓进阶必备知识点》
- 想了解安卓APP完整开发流程,请看:《安卓APP完整开发流程》
- 想掌握安卓App性能优化,请看:《安卓性能优化讲解和实战专栏》
- 想掌握Gradle语法,制作Gradle插件,请看:《安卓Gradle语法解析和实践大全》