秋招求职总结分享

前言

博主是某211渣硕光学工程专业,2022届应届毕业生,秋招的岗位为嵌入式软件开发工程师/C++软件开发工程师从实习到秋招,时间段大概为3月到12月,战线较长,大厂中厂小厂的offer都拿到了,包括:联发科、海康威视、大华、momenta、极米科技、海信、步步高、光峰科技、鼎桥通信、新华三、闻泰科技、道通科技、TCL、创维数字、中科创达、汇川技术等公司的offer,最后签下了某芯片公司的offer,目前仍在春招,寻找其他的工作计划,求职仍在进行中,在这里简单对自己的秋招进行个总结,实习经历的话,暂时未介绍,文章主要分为几个部分:

  • 背景篇:主要对自己的个人情况进行一个总结
  • 简历篇:主要对自己的简历进行一个分享和解析
  • 知识篇:主要对自己“备战”秋招所学习的知识进行分享
  • 建议篇:主要对将要毕业的同学给出一些建议
  • 面经篇:主要对自己秋招所投递的公司的面经进行一个分享

背景篇

博主是某211渣硕的应届生,硕士专业为光学工程专业,研究方向主要为光学应用(激光光谱学),有过两段实习经历。第一段实习经历为19年考研结束进行的实习,实习公司为某小公司(研发人员5人的小公司),实习岗位为机器视觉工程师。第二段实习经历为21年暑假进行的实习,实习公司为某安防大厂,实习岗位为嵌入式软件开发工程师。研究生期间没有参加过额外的比赛,也没有拿得出手的项目,大部分都是自学相应岗位的相应知识。
博主大概是从3月份开始找实习,然后相应的拿到了几个公司的实习机会,有大厂也有小厂,然后大概从暑假七八月份开始进行秋招,这里面包括一些提前批的公司。由于对于本专业和研究方向不是很喜欢,同时掌握的知识水平不足,我的秋招岗位就确定为嵌入式软件开发工程师/C++软件开发工程师

简历篇

简历是决定你能否进入该公司流程的敲门砖,所以简历是很重要的!!!
由于我的岗位是技术岗,所以我就从我个人的简历进行一个简单的分析和介绍,我的简历以下几个模块:

基本信息
教育经历
实习经历
项目经历
校园经历
专业技能

基本信息:这一部分的话,主要就是包括姓名、联系电话、邮箱、学历、求职岗位、GitHub、博客、照片等内容,而我自己的话也是只写了这些内容,其他的身高体重、户籍等其他内容都没有进行介绍。

教育背景:这一部分的话,就是对于你的毕业学校、学历、专业、主修课程和GPA进行一个介绍,我个人的话是没有加上GPA这一项(因为本身GPA不高),当然也可以将获奖经历囊括在这部分内容,大家可以自己选择。

实习经历:这一部分的话应该说是很重要的(当然如果没有实习经历的话,那就是下一部分内容更重要),我个人的话是刚好有两段实习经历,同时有一段很匹配的实习经历,所以这部分内容应该算是我简历中很重要的一部分。在这一部分的话,我主要是是对实习公司,实习岗位以及实习的工作内容进行了介绍,这里要很注意,实习的工作内容是实习经历中特别重要的一部分,所以大家在写实习经历的时候,可以看看实习经历该怎么写,要不然可能你的实习经历就相当于白写了。

项目经历:这一部分的话,应该说对大部分人来说都是最重要的,因为不是每个人都有实习经历,但是对于技术岗来说,项目经历肯定是需要的,而且是是重中之重的的。我个人的话,在这一部分主要是对于自己研究生期间所做的课题进行了一个介绍,因为我所应聘的岗位是嵌入式软件开发工程师/C++软件开发工程师,所以我在项目经历里面写的大部分都是相关的一些项目经历(博主自学的网上的小项目)。

校园经历:这一部分的话,对于技术岗而言,可能没有那么的重要,但是对于非技术岗,这一部分可能就很重要了。我个人的话,由于研究生期间基本没有参与额外的一些校园活动,所以只是对本科期间参与的学生会经历进行了一个简短的介绍(寥寥数字)。

专业技能:这一部分的话,就需要格外注意了。因为对于技术岗而言,专业技能是一个面试官比较关注的点。我个人的话是罗列了一些自己本身掌握的专业技能,同时对于自己的一个语言能力进行了说明(四六级/雅思托福)。

注:
我个人的简历中没有将获奖经历列入简历中,不代表简历中不需要,因为我个人没有什么亮眼的获奖经历(哭啦!!!)。如果同学的获奖经历很亮眼,比如说acm、robomaster、挑战杯、电赛等比赛,完全可以将获奖经历放在校园经历或者额外独立开一个栏目进行介绍和说明,这部分内容同学可以进行自我选择。

知识篇

对于我所应聘的岗位而言,嵌入式软件开发/C++开发会有一些共同的知识,在这里就把我所学习的内容进行一个说明,大概需要掌握以下知识(本来应该用思维导图进行展示,但是暂时没有时间去整理,所以先以文字说明):

软件基础
C语言
C++
数据结构和算法
操作系统原理
计算机网络技术
计算机网络原理
单片机原理
微机原理
计算机组成原理
Linux操作系统

硬件基础
数字/模拟电子技术
电路基础
电路原理图
电路仿真

开发工具基础
Linux操作系统
Linux命令
Shell
Git/SVN
Vim
GCC
交叉编译工具

学习路线

在这里,我将嵌入式学习分为三个阶段,分别是基础学习阶段、嵌入式应用编程阶段和嵌入式底层开发阶段
基础学习阶段就是一个打根基的过程,同学一般需要学习C语言、C++语言、数据结构和算法、Linux操作系统、计算机网络技术、计算机组成原理和一些基本的数字/模拟电子技术等内容就可以,该部分内容是整个嵌入式学习的基础,重中之重!!

嵌入式应用编程阶段就是一个进阶的过程,同学一般需要学习系统平台编程,需要学习网络编程、系统控制、内存管理、多任务编程和图形化界面编程等内容,同时需要结合不同平台进行项目的开发,比如说ARM+Linux平台的项目开发。

嵌入式底层开发阶段就是一个“成神”的过程,同学一般需要进行内核和驱动代码的学习,这个学习内容是一个很负责的过程,包括系统移植、内核开发和驱动开发等,这个过程一般来说可能需要工作后才能进行一个深入的学习,我暂时还没有进入到一个正式的学习,所以暂时不展开说。

上面提到的一些基础知识很广泛,对于即将找工作的同学可能过于广泛,所以同学要定位好自己的方向,因为嵌入式本身分为好些个方向,比如有纯硬件的岗位和软件/软硬结合的岗位,对于这两种岗位会有不一样的侧重点。而对应的岗位也会有很多,比如说嵌入式Linux工程师、嵌入式应用工程师、嵌入式系统工程师、嵌入式内核工程师和嵌入式驱动工程师等等,而基于不同的开发平台,又会有嵌入式单片机工程师、嵌入式FPGA工程师、嵌入式DSP工程师、嵌入式ARM工程师等岗位,这些岗位由于开发平台不一样,也同样的存在一些学习重点的区别。

书籍资料推荐

C语言:《C Primer Plus》、《C语言程序设计》《C和指针》、《C陷阱与缺陷》、《C专家编程》

C++语言:《C++ Primer》、《STL源码剖析》、《Effective c++》

数据结构和算法:《大话数据结构》、《数据结构与算法分析—C语言描述》、《剑指offer》

操作系统:《现代操作系统》、《深入理解计算机系统》

计算机网络:《计算机网络》、《TCP/IP详解 卷1:协议》、《图解TCP/IP》

计算机组成原理:《深入理解计算机系统》、《计算机组成原理》

Linux操作系统:《鸟哥的Linux私房菜》、《Linux命令行与shell脚本编程大全》

注:
上面的只是一些基础的知识储备,也就是处于基础学习阶段,对于应用编程阶段和底层开发阶段,我个人还没有进行一个深入的学习,但是还是有其他的书籍推荐,像《UNIX网络编程》、《POSIX多线程程序设计》、《嵌入式Linux应用开发完全手册》、《深入理解Linux内核》、《Linux设备驱动程序》、《Linux驱动开发入门与实战》等等。

建议篇

因为我个人本身是更倾向于就业,所以对于就业外的建议,暂时无从建议,同学可以从其他博主那里获取更专业的意见。这里只对于秋招的同学,根据自己的经历,然后给出相应的一些建议:

1 嵌入式软件开发是选择纯软件还是软硬结合?

首先的话,这个问题应该是很多人纠结的问题。但其实,大家忽略了一个点,那就是嵌入式软件开发实际上没有完全意义上的纯软的区分,一般来说只会分为应用程序和驱动层,但是其实这两个都需要和硬件相联系。可能同学和我当初一样,会觉着那些电路分析很难,然后电路原理图看起来费劲,但是其实如果你真正的进入到嵌入式软件开发这个岗位,你都离不开一些硬件的支撑,所以如果同学是奔着秋招找纯软件开发的话,我更建议直接去学习Java、C++,然后秋招找那些像前端、后端开发的岗位,那个是真正意义上的纯软件开发,而且对应的一个学习门槛也更低。而如果同学想要找的是嵌入式行业,那我还是建议,硬件基础和软件基础都学习,这对于你在面试和以后的工作中都会有很大的帮助。

2 需要去报名培训班?
这个问题,我个人应该是很有感触去回答这个问题。因为当初我在进行学习的时候,也是考虑过是否要报名培训班进行系统的学习,但是后面由于钱包有点空,还是选择了自己学习。其实在我自己学习的过程中,出现了很多问题,就比如没有一个系统的规划,同时也没有得到很好的一个指导,导致自己最后学的也是半桶水。所以,我个人觉着,如果同学有条件同时真的有意愿去学的话,我还是建议去报培训班,但是要报那种线下的或者是直播的那种形式的培训班。如果说只是单纯的视频培训班,然后还是需要靠自己自觉去学习的话,我还是不建议报班。因为现在网上已经有很多学习资源,虽然说盗版不好,但是其实我们可以收集到很多培训班的网课视频,所以同学自己可以去斟酌下,看是否报班学习。个人建议,直接找网络资源进行学习!

3 什么时候开始学习和秋招
越早越好!!!越早越好!!!越早越好!!!
重要的事情说三遍!
对于学习,自然是越早越好,这个大家应该可以理解。
有些同学可能会疑问,为啥秋招越早越好呢。其实这个问题,在我一开始的介绍中就提到了,我的秋招历程很长,从三月份的实习到暑假七八月份的提前批再到九十月份的正式批,我都参加了。实习让我大概了解了自己的一个知识欠缺点,提前批让我更快的拿到offer,同时也相对而言更轻松。我的第一个秋招offer应该是八月底就拿到了,但是据我所知,有些同学更早就已经拿到了字节等大厂的offer,所以秋招我建议越早越好。另外就是,可能有些人会问,提前批挂了会不会影响秋招,其实有可能会,也有可能不会。比如你提前批表现得太差的话,但是你正式批相对于你提前批,提升很大的话,面试官看到了你提前批的面评,其实会给你加分,因为你这段时间有了提升。但是如果你正式批和提前批一样,表现得很差,面试官就会觉着你这一段时间毫无进步,那么肯定就会给你的面评进行一个不好的反馈。所以这个问题同学真的不用担心,毕竟提前批就类似于多给了自己一个进大厂的机会,而且还可能是免笔试,那不比正式批千军万马还要参加笔试的强?

面经篇

整个秋招的话,我个人是投递了100来家公司,同学不要向我学习!!!真的有点累而且繁,这其中还包括一些自己其实一点也不了解甚至不想去的公司,以至于后面发了面试通知也不参加。所以同学可以有针对性的“海投”,针对自己感兴趣的公司和相应的岗位进行投递,这样会更加的有效率。
在该部分,我先大概介绍下我面试过的一些公司和嵌入式行业的一些公司推荐。
嵌入式软件开发公司推荐
手机厂:(华为、小米、OPPO、vivo、荣耀等)
安防厂:(海康威视、大华、宇视科技等)
芯片原厂:(联发科、高通、紫光展锐、华为海思、全志科技、AMD、NVIDIA等)
家电:(美的、格力、海尔、奥克斯等)
医疗:(迈瑞医疗、联影医疗、开立医疗等)
光学厂商:(奥比中光、舜宇光学、光峰科技等)
电脑:(联想等)
还有一些互联网公司和AI公司,例如:阿里、腾讯、百度、大疆、字节(也有硬件岗位)、美团、中兴、TP-Link、百度、寒武纪、商汤科技、长江存储、理想汽车、小马智行、景嘉微、京东、小鹏汽车、蔚来汽车、地平线、汇顶科技、乐鑫科技、cvte、深信服等等公司,同时还会有一些国企和研究所,也都招嵌入式岗位。

面经问题汇总:

一 进程与线程
1、什么是进程、线程?
2、进程与线程有什么区别
3、多进程、多线程的优缺点
4、进程和线程的使用场景
5、多进程、多线程通讯的方式
6、进程线程的状态转换图
7、什么是父进程和子进程
8、父进程和子进程的区别
9、说明什么是上下文切换
9、进程能够创建多少线程,取决于什么
10、并发、同步、异步、互斥、阻塞和非阻塞的概念
11、什么是线程同步和互斥
12、线程同步和阻塞的关系
13、孤儿进程、守护进程和僵尸进程是什么

二 C/C++
1、C和C++的区别
2、new和malloc的区别
3、指针和引用的区别
4、数组和链表的区别
5、static关键字的用法
6、const关键字的用法
7、volatile关键字的用法
8、const常量和#define的区别
9、变量的作用域
10、strcat、strncat、strcmp、strcpy哪些函数会导致内存溢出,如何改进
11、sizeof和strlen的区别
12、什么是内存对齐,内存对齐的作用
13、struct和union的内存对齐规则
14、内存四区,什么变量存储在什么区域
15、inline函数
16、C++的特性
17、多态实现的条件和实现的原理
18、析构函数、构造函数和虚函数
19、重写、重载和覆盖的区别
20、什么是成员初始化

三 网络编程
1、TCP和UDP
2、TCP和UDP的区别
3、TCP和UDP的优缺点
4、TCP和UDP的适用场景
5、OSI典型网络模型
6、为什么TCP可靠,UDP不可靠
7、URI和URL区别
8、三次握手和四次挥手
9、为什么是三次握手,为什么是四次挥手

四 常见算法
1、每种排序算法的时间空间复杂度和稳定性
(冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序)
2、vector和list区别
3、vector和deque区别

五 Linux操作系统
1、Linux内核组成
2、Linux系统组成
3、用户空间与内核通信方式
4、系统调用和普通调用的区别
5、内核态和用户态的区别
6、BootLoader、内核、根文件的关系
7、BootLoader启动的过程
8、程序运行的过程
9、堆和栈的区别
10、死锁的原因和条件
11、Linux下检查命令状态的命令
12、内存泄漏和内存溢出
13、硬链接和软链接
14、中断和异常的区别
15、中断处理流程
16、虚拟内存、虚拟地址、物理地址的转化
17、UART、IIC、SPI、CAN、USB、RS232、RS485的区别
18、基本的Linux命令
19、硬实时系统和软实时系统
20、cache、mcu、内存的关系
21、ROM和RAM
22、CPU内部结构
23、CPU内存/虚拟内存 、硬盘/磁盘的关系
24、IO口工作方式

你可能感兴趣的:(零散项目,经验分享,嵌入式硬件,stm32,单片机,arm)