普通一本(本硕),嵌入式软件开发岗,收到小米、联发科、浙江大华、汇川技术、英威腾、上能电气、富士康、格力offer。最高28w,最低减半。
以下开始讲述一些我找工作的经验,希望对大家有帮助(觉得有帮助的,记得点个赞关注走一波,谢谢大家)。
一、简历篇
(1)个人联系方式
简历的话要把电话,email这些重要的信息放到显眼的位置,方便联系。
(2)技能掌握
常用“熟悉”,“精通”慎用(精通应届生就不要用了)
“了解”的话适用于只是看过一点书,只是一种浅尝辄止的感觉,比如你只是通过刷了刷面经,了解了一些面试常见的问题,那么这种就应该用了解。
(3)荣誉奖励
奖学金,优秀干部,竞赛获奖,paper啥的都往上怼,多多益善。
(4)项目
项目篇很重要,基本面试的第一个环节都是扣你的项目。
项目一定要准备1到2个亮点(难点),就是你曾经做项目遇到什么问题,如何解决的,解决思路和方法面试官很喜欢听。
做过项目或者有实习经历的,面试很容易成功,因为你是确确实实做过东西,而不是瞎编的。
问项目过程中,一般会先问你这个项目是干什么的,什么产品或者什么功能。整体代码框架分为几层,你主要做什么。是单独开发还是和同事一起开发,遇到过什么问题,如何解决的。
二、简历投递篇
(1)公司官方网站网申
学历不好的,不建议这走这条路,容易被刷,985/211也有一定几率被刷。
(2)内推
关注“牛客网- 互联网求职神器和备考学习平台”的内推信息,都是真实可靠的,虽然不一定免笔试,但是可以保证你简历不被刷。
微信公众号“ 互联派 ”也有很多内推的信息,值得关注。
(3)内推完之后的添加个人信息
强推“牛客网简历助手 助手介绍_牛客简历助手”——简历一次填写,N网闪填__牛客网
爽的一批,谁用谁知道,你填写完牛客网的简历助手,进来其它求职网站的时候,可以把插件调出来,如果调不出来,多点几下,自己摸索哈。这样可以省时省力,不用每个公司都把自己的简历写一遍。
(4)我基本上投了100份简历,有这个岗位的大公司我都投了个遍。混到了40个笔试机会,所以基本上所有嵌入式方面的题目我全部都见过了。你也可以海投,一般笔试时间不会冲突,我九月份每天都有笔试,十月份也有十几场笔试。
三、笔试面试篇
提前批:一般公司的提前批是免笔试的,这个机会一定要抓住,提前批不耽误正常网申流程,相当于多了一次机会。(其实你每次应聘都是会有记录的,现在的面试官可以看到你所有的过往的面试记录,但我觉得影响不大,但有的公司也会看,提前批不过,正式批直接刷)(提前批每年六七月就开始了,一定要注意,很早的)
笔试:就算你内推成功了,也会有极大可能笔试。其实笔试题吧,你把《程序员面试宝典》《剑指offer》刷一刷,杭电OJ刷一刷,然后把字符串变换、队列和栈、双向链表的插入等基本数据结构会写,问题不大,然后感觉这些公司的笔试题也就那么回事。
面试:面试这个就看平时积累了。电话面试视频面试其实还是有一定操作空间的,现场面全凭自己实力。所以你自己简历上面的项目和技能,不可以瞎编,一定是自己做过,了解技术框架和技术细节。
HR面试:一顿跪舔就行,就是你们公司真好,你自己罗列个123哪里好;女朋友,有也说没有(也可以说有,女朋友就在xx公司的地方上班/上学,很紧);父母不干涉决定;薪资,普遍薪资就行。总之就是求生欲强一些,面试之前去他们公司官网看一下他们公司的产品。
四、笔试面试题目
嵌入式其实是一个知识比较杂乱的岗位,软件你要懂,硬件你也要懂;底层要懂,做应用开发的话上层也要懂。
第一章进程线程的基本概念
1、什么是进程,线程,有什么区别
2、多进程、多线程的优缺点
3、什么时候用进程,什么时候用线程
4、多进程、多线程同步(通讯)的方法
5、进程线程的状态转换图 。什么时候阻塞,什么时候就绪
6、父进程、子进程的关系以及区别
7、什么是进程上下文、中断上下文
8、一个进程可以创建多少线程,和什么有关
9、进程间通讯:
(1)管道/无名管道(2)信号(3)共享内存(4)消息队列(5)信号量(6)socket
10、线程通讯(锁):
(1)信号量(2)读写锁(3)条件变量(4)互斥锁(5)自旋锁
第二章C/C++面试题
1、new和malloc的区别
2、 malloc的底层实现
3、在1G内存的计算机中能否malloc(1.2G)?为什么?
4、指针与引用的相同和区别;如何相互转换?
5、C语言检索内存情况,内存分配的方式
6 、extern”C” 的作用
7、头文件声明时加extern定义时不要加,因为extern可以多次声明,但只有一个定义
8、重写memcpy()函数需要注意哪些问题,(strcat strncat strcmp strcpy)哪些函数会导致内存溢出
9、 char和int之间的转换;
10 、static的用法(定义和用途)static静态变量,只初始化一次
11 、const的用法(定义和用途)
12、const常量和#define的区别(编译阶段、安全性、内存占用等)
13 、volatile作用和用法
14、有常量指针 指针常量 常量引用 没有 引用常量
15、变量的作用域(全局变量和局部变量)
16、sizeof 与strlen (字符串,数组)
17、经典的sizeof(struct)和内存对齐(一字节对齐)
18、const * char 与 const char *
19、inline函数
20、内存四区,什么变量分别存储在什么区域,堆上还是栈上。
第三章网络编程
1 、TCP、UDP的区别
2 、TCP、UDP的优缺点
3 、TCP UDP适用场景
4、 TCP为什么是可靠连接
5、OSI典型网络模型,简单说说有哪些;
6、三次握手、四次挥手
第四章常见算法
1、各种排序算法的时间空间复杂度、稳定性
2、各种排序算法什么时候有最好情况、最坏情况(尤其是快排)
3、冒泡排序
4、选择排序
5、插入排序
6、希尔排序
7、归并排序
8、快速排序
9、二分法查找的原理
第五章Linux操作系统常见面试题
1、 Linux内核的组成部分
2、用户空间与内核通信方式有哪些?
3、系统调用read()/write(),内核具体做了哪些事情
4、系统调用与普通函数调用的区别
5、内核态,用户态的区别
6、 bootloader内核 、根文件的关系
7 、Bootloader启动过程:
8、 linux下检查内存状态的命令
1、大小端的区别以及各自的优点,哪种时候用。(判断大小端的三种方式)
2 、一个程序从开始运行到结束的完整过程(四个过程)
3、什么是堆,栈,内存泄漏和内存溢出?
4、堆和栈的区别
5、死锁的原因、条件
6、硬链接与软链接的区别;
7、虚拟内存,虚拟地址与物理地址的转换
8、计算机中,32bit与64bit有什么区别
9、中断和异常的区别
10、中断怎么发生,中断处理流程
11、 Linux 操作系统挂起、休眠、关机相关命令
12、编译优化选项 -o
13、在有数据cache情况下,DMA数据链路为:外设-DMA-DDR-cache-CPU,CPU需要对cache做什么操作,才可以得到数据
14、linux中改变文件属性的命令:chmod
15、linux中查找文件中匹配字符串的命令:grep
第六章 单片机常见面试题
1、ROM与RAM
2、 IO口工作方式:上拉输入 下拉输入 推挽输出 开漏输出
3、请说明总线接口USRT、I2C、USB的异同点(串/并、速度、全/半双工、总线拓扑等)
4、I2C协议时序图
5、单片机的SP指针始终指向:栈顶
6、I2C总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。
7、FIQ中断向量入口地址
8、全双工总线类型
9、SPI四种模式,简述其中一种模式,画出时序图
第七章 其他面试题
1、讲一讲冯诺依曼和哈佛体系的区别
2、讲一讲二叉树和红黑树
3、http默认端口号:80
4、面向对象编程的三大特性,以及重载的意思。重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。
5、linux中mysql数据库默认的端口是:3306
6、反转链表的代码补全
7、判断回文(首尾相同)
输入abcba 返回true
输入abc 返回flase
8、C语言编程中,单片机平台,一般有.c和.h文件,如果一个人在.h文件中定义了一个变量,会有什么后果。(讨论编程习惯的问题,我一般是只在.h文件中声明函数,不会做变量定义;另外,编程中每一个模块都会有对应的.c和.h文件,最终的总程序自己定义一个comm.c和comm.h去调用各个模块,这样的习惯我觉得还行)
9、if语句中如果是或运算( | ),第一个条件满足时,第二个条件还会判断吗。或运算的话,当然不会,因为 0|1=1,中断了
10、IIC、SPI、UART通信协议的作用和区别,以及为什么用这个不用另外一个进行通信
11、用变量a给出下面的定义
a) 一个整型数;
b)一个指向整型数的指针;
c)一个指向指针的指针,它指向的指针是指向一个整型数;
d)一个有10个整型的数组;
e)一个有10个指针的数组,该指针是指向一个整型数;
f)一个指向有10个整型数数组的指针;
g)一个指向函数的指针,该函数有一个整型参数并返回一个整型数;
h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数
答案:
a)int a
b)int *a;
c)int **a;
d)int a[10];
e)int *a [10];
f) int a[10], *p=a;
g)int (*a)(int)
h) int( *a[10])(int)
接下来放几张图片,看到图片你就知道考的是什么:
具体的题目细节,公众号后期会整理。
嵌入式软件开发可投递公司整理如下:
手机厂(华为、小米、oppo、vivo等),安防厂(海康威视、浙江大华),芯片原厂(联发科、紫光展锐、华为海思、全志科技,北京君正等),家居家电(美的、海尔、格力),医疗(迈瑞、理邦仪器),电脑厂商,还有一些互联网巨头是有嵌入式岗。奇安信、大疆、汇顶笔试、深信服、京东 、CVTE、百度、美团、思科、乐鑫科技、远景、奇虎360、网易、科大讯飞、 商汤科技、小马智行、富士康、深圳安信可、汇川技术、锐捷、 星际荣耀、英威腾、浙江中控、深圳康冠科技、艾为电子、深圳麦格米特、长沙景嘉微、萨基姆通讯中国深圳有限公司、杰发科技、上能电气、盛弘电气、中联重科、易事特、阿里、图森、滴滴、海浦蒙特、宇视科技、软通动力、广联达、TCL、蔚来、京东方、海信,还有一些国企和研究所。
如果喜欢我的文章,欢迎关注、点赞和转发,下面可以留言~~~
本文分享自 嵌入式Linux系统开发 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!