共计 7592 个字符,预计需要花费 19 分钟才能阅读完成。
秋招是每个在校学生都要经验的一个阶段。本篇文章记录了本人的秋招历程。秋招投递公司 23 家,简历被刷 1 家。口试 / 测评挂掉 3 家。至今无音讯的 8 家。取得 Offer 的公司有小米,兆易翻新,全志科技,浙江大华,海格通信,京信通信,景嘉微电子,广州朗国电子,北京华大电子,中国长城科技团体。已签约浙江大华。最初播种了一个称心的 Offer。前事不忘,后事之师。心愿本人总结的这些内容能对前面筹备秋招的同学有所帮忙!
1. 自我介绍
本硕双非,本科电子信息工程,硕士电子与通信工程。导师申请的我的项目中有一部分须要用 Stm32 实现,所以本人在硕士期间接触 Stm32 比拟多。过后也思考到,如果只会 Stm32,找工作可能会比拟吃力。而本人对嵌入式底层的内容也比拟感兴趣。所以,在研二的时候每天花一点工夫来学习下驱动开发,当前找工作打算从事底层驱动开发相干的内容。
2. 秋招筹备
2.1 Linux 驱动
在 2019 年 12 月的时候,根本就把韦东山老师的第二期课程学习了一遍了,尽管在学习过程中有很多不明确的,但也保持看了一遍。把有疑难的中央记录了下来,打算前面再缓缓的去深入研究。
韦东山老师讲的课程的确很好,然而对于根底不太好的可能会比拟吃力,很容易劝退。过后思考了下,本人为什么听不懂呢,哪里有欠缺?咱们对本人应该有一个清晰的意识,我从 Stm32 转驱动开发,劣势就是我对于根本的硬件原理都比拟相熟,欠缺的是对于 Arm 架构的深刻理解,操作系统和计算机组成原理的基本知识。所以,这个时候发现自己听不懂的状况下,有些问题搞不明确,先不要深究,前面能够缓缓补。
往年疫情在家,在 3 月份的时候,对照本人之前的学习笔记和遗留的疑难,把之前学过的内容又看了下,当看第二遍的时候,对于很多问题也能够想分明了。
思考到驱动这块没有做过具体的我的项目,我就对照着韦东山老师的移植 Uboot 的视频,本人移植了一遍。(S3C2440 移植 uboot 之编译烧写 uboot)本人对于 Uboot 的启动流程也就很相熟了。超详细分析 Bootloader(Uboot)到内核的启动流程(万字长文!)既然打算把这个写在简历上,就要把这个启动流程搞得特地明确, 有些根本的源码也是要晓得的(比方,如何初始化 NAND FLASH,时钟如何配置的)。而且,写在简历上的面试官肯定会问的。
2.2 Arm 体系与架构
对于 Arm 的体系架构这部分是肯定要看的。举荐一本书,杜春雷老师写的《ARM 体系结构与编程》,这本书其实就是 ARMV7 开发手册的中文版,很多内容都是手册外面的。书的话不肯定都要看,学习过程中,哪里不理解再去查书,成果可能会更好。
2.3 数据结构与算法剖析
数据结构与算法的内容时秋招中的重中之重,口试必考,面试必考。所以这部分要好好筹备。
数据结构的话本科也没学过。4 月份的时候开始在家,从根本的链表,二叉树,堆,队列,字符串,排序算法,查找算法等根底内容学起。过后参考的材料是在网上找的一本 PDF。外面蕴含了根本数据结构的算法的实现。对着 PDF 材料边看边了解,本人入手去实现了一遍。刚开始学习数据结构的内容,肯定要多画图,像链表的内容,不画图有时候可能不太好了解指针是如何指向的。总之要找到适宜本人的学习形式。
图论的内容比拟难,如果不打较量,能够间接跳过(只针对嵌入式开发的同学)。还有字符串的 KMP 算法也比拟难了解(其实刷题 Leetcode 题目之后就会发现,字符串匹配的题目解法很多,不肯定要 KMP)。也能够先不看。
对于我写的一些数据结构的内容,能够在数据结构与算法剖析专栏中看到。大家能够参考下。
此外我还整顿了下数据结构中比拟重要的内容,在面试中肯定要达到能够在白纸上写的程度。具体如下图所示。
在学习完根本的数据结构与算法的内容之后,接下来就是刷题了。我本人是在 Leetcode 上刷的题目。因为工夫无限,我刷题一开始的策略是依照 题目类型 去刷题(参考了知乎各位大佬的刷题策略),次要内容集中在了链表,二叉树,字符串,数组这四个局部。把这部几个局部呈现频率高的题目都总结了进去。各个局部频率总结链接:
【leetcode】高频题目整顿_所有题目汇总篇(High Frequency Problems, All Problems)
面试 leetcode 题型总结
刷题过程中会遇到一些特定算法的题目,比方滑动窗口,双指针,动静布局等。遇到这种题目,能解决的先解决掉,不能解决的前面能够依照 算法类型 对立解决。
最初,在口试的时候,很多公司的大题的口试零碎其实并不是像 Leetcode 一样只写个子函数就行了,而是和 ACM 比赛的类型一样,须要本人解决输入输出。这部分肯定要提前练习。如果不相熟零碎,口试的时候尽管有思路,然而也写不进去。倡议提前相熟下输入输出。
OJ 在线编程常见输入输出练习场
2.4 C 语言
C 语言这部分的话,能够上网搜寻一些面试中常常问到的内容。这里也举荐一本书,何昊老师写的《程序员面试口试宝典第三版》(不要找错了)。这本书是针对 C /C++ 程序员的,次要介绍了面试过程中常常问到的问题,整体的内容偏差底层,问题解释的也比较清楚。然而有些中央有谬误,看的时候要留神。能够加书前面的 QQ 群,向作者反馈谬误。
C++ 语言,平时用得少,我这部分就没筹备,给不了大家意见。在面试中好几次问到我 C ++ 的指针援用之类的基础知识,只能和面试官说 C ++ 内容用得少,不相熟。不过,这并不会成为面试官最初是否要你的决定性因素(只针对嵌入式底层来说)。
2.5 操作系统 & 计组
这块是我的软肋,好多概念不太懂。不过在学习驱动的过程中,我把这些概念也都整顿了一些。具体文章能够看上面的内容。
你真的懂 Linux 内核中的阻塞和异步告诉机制吗?(花了五天整顿,墙裂举荐!)
面试官让你讲讲 Linux 内核的竞争与并发,你该如何答复?
S3C2410 MMU(存储器治理单元)详述
Linux 内核中断顶半部和底半部的了解
谈谈过程上下文、中断上下文及原子上下文的一些概念
对于操作系统的一些常识,同样是整顿了网上常见的一些面试题目。这份嵌入式软件开发知识点总结一共有 13W 字,涵盖了 Linux,C 语言,Arm 体系与架构,操作系统,计算机组成原理等方方面面的常识。我在秋招过程中问到的问题,在外面根本都能够找到。这份材料给了我很大帮忙。材料放在了公众号【嵌入式与 Linux 那些事】中,大家能够关注后回复“秋招大礼包”收费自取。
![在这里插入图片形容](/img/bVcLQWa)
2.6 我的项目教训
如果本人做过一些我的项目的话,倡议写两到三个本人做过的我的项目,次要从以下几个方面介绍:
项目名称:基于 XXX 的 XXX
集体角色:我的项目负责人 / 模块负责人
起止工夫:2020.3~2020.6
我的项目形容:次要介绍我的项目次要内容,4 句话即可。
编程语言和环境:gcc3.4.2,Ubuntu16.04,S3C2440 开发板
负责事宜:写本人做了哪些内容,第一,XXXX;第二,XXXX;第三,XXX;
如果没有做过我的项目,能够去找一些开源的我的项目做一下(韦东山老师第三期的视频中有相干我的项目的介绍),比方移植 Uboot,数码相框等(韦老师最新的 IMX6ULL 开发板曾经有了更加高大上的我的项目,也能够写在简历中)。然而不要找那种烂大巷的,比方 XXX 管理系统,五子棋,贪吃蛇。说实话,这些货色再怎么做,一听这个名字面试官就会没趣味了。
咱们也能够适当“包装”本人的我的项目,我这个我的项目是导师申请的国家自然科学基金我的项目(或者 XX 省科技重大专项)的一部分,这个我的项目次要是实现 XX 技术的攻关。我这个我的项目是和 XX 部队(XX 高校)单干的我的项目,咱们负责 XX 局部。这么一写的话“品位”是不是就下来了呢?然而这里不是让大家在简历中去造假,在简历中造假是不能承受的,这是一个人根本的道德底线!
本人写上去的我的项目肯定要搞清楚,弄得明明白白。有好几次面试中,面试官让我讲你做的这个货色原理是什么。因为原理比较复杂,所以面试中,我都是边画图边讲,波及到的公式还要进行推导,为什么这样做,都得给面试官讲清楚。如果他没有听懂,那就是咱们没有讲清楚。
说了这么多,其实次要就是弄清楚这几个问题:为什么做这个我的项目?一共几个人做?你是什么角色?你做了哪些局部?你认为最难得中央是什么?如何解决的?最初播种是什么?。
事实上,咱们所做的货色是什么,面试官并不太在意,毕竟公司做的货色比咱们要简单的多,比照公司的产品来说,咱们的几乎太 low 了,咱们所做的可能只是个“玩具”而已。面试官次要考查的就是我的项目的 真实性 和咱们的 表达能力。
也能够参考下其他人整顿的
如何在面试中介绍本人的我的项目教训
2.7 其余
至于其余内容,次要有以下几个方面吧。
1. 不要放过任何一次和面试官聊天的机会(发哥和我说的,受益匪浅)。
往年疫情在家的时候,求教了发哥对于校招找一份什么样的工作,嵌入式软件工程师的职业规划等问题,非常感谢发哥在早晨十点多手打了 1000 多字解答我的纳闷。特别强调了,在校生要抓住校招的机会,提前准备,多和面试官聊聊天。和发哥聊完后本人对于整个行业有了更分明的意识,谢谢发哥!
多面试!多面试!多面试!重要的话说三遍!看到有适合的公司要尽早投递,不要到前面没有 HC 了。
比方我投递华为是在 9.10 号。口试在 9.14。尽管口试过了,测评也过了。然而这个时候其实有点晚了(也可能和投递的部门有关系)。部门的 HR 和我说,他们第一批的面试曾经完结了,领导要求这段时间要造成闭环。第二批还会有一些 HC,然而在 10 月之后了,而且名额也不会太多了。相同,投递其余部门的同学,在 9.19-9.24 这周都收到了面试告诉。
其刚开始前几次面试必定会有些缓和,手足无措。然而当你面了三五场之后,你就会发现,面试官问的货色都是差不多的。我在 9 月中下旬,最多的一天面了 4 场。有句话说得好,吹牛 X 吹多了,前面也就很天然了。
2. 答复问题肯定要有逻辑性!先抛出论断,再分要点答复。
比方,面试官问你平时你是如何学习专业知识的?以什么样的形式?
答:学习的模式次要分为两种 : 一种是在学习的过程中解决疑难,以解决问题为导向 。比方,在移植 Uboot 的过程中,我会想到为什么要敞开 I -Cache,D-Cache 等,敞开中断等(这里能够抛出这些问题,以防前面会问),遇到这些问题我就会记录下来,而后上网去查资料。在解决这些问题的过程中,可能会遇到其余的问题,持续查找相干材料,直到最初都搞清了。 第二种就是零碎的学习 ,如果有比拟短缺的工夫,我会去拿着像 Arm 体系和架构,深刻了解计算机系统这些书去一点一点的读。去了解这些内容。 以上就是我日常的一个学习形式。
3. 自我介绍。
自我介绍是面试中必不可少的局部。面试官个别会利用自我介绍的工夫来浏览下你的简历。倡议筹备一个 一分钟的自我介绍和三分钟的自我介绍。我在面试小米的时候,面试官间接打断我,说自我介绍简略一点,要不前面没有工夫写代码了。
我的自我介绍次要是三局部,第一局部 是开场白,名字,学校,业余,应聘岗位,应聘该岗位的起因。第二局部 是我的项目教训的简略介绍,这里肯定要简洁,次要说下本人做了那些货色。第三局部 是学习能力的介绍,这部分是为了抛出本人写博客的状况,有技术博客并且博客的内容比拟空虚的话,在面试中的确是个加分项。
4. 简历填写
投递简历时经常须要在各个网站填写本人的个人信息。倡议应用如下工具,能够不便的在各个网站自动识别填充所需内容。当然,也有许多辨认不了的。这种就没方法了。当然,如果大家有其余工具也能够举荐!
牛客简历助手
5. 最初要晓得一些常识
链接如下
Offer,三方,两方,毁约 这些你须要晓得的事
3. 书籍举荐
C 语言
C Primer Plus,C 缺点和陷阱, C 和指针,C 专家编程
数据结构
大话数据结构,数据结构与算法形容 - C 语言形容。
硬件原理
Arm 体系结构与编程,Armv7/Armv9 数据手册。
Linux 驱动
嵌入式 Linux 利用开发齐全手册,Linux 设施驱动开发详解,Linux 设施驱动程序
Linux 利用编程
Unix 环境高级编程,Unix 环境网络编程
计算机根底
深刻了解计算机系统 , 古代操作系统,计算机组成与设计:硬件软件接口,计算机体系结构:量化钻研办法
Linux 内核
Linux 内核齐全正文(麻雀虽小五脏俱全),Linux 内核设计与实现,Linux 内核源代码情景剖析
以上书籍加粗的为重点举荐。如果工夫不富余,能够当作工具书来查问。当然,有工夫还是倡议认真读下。
须要电子书的能够在公众号【嵌入式与 Linux 那些事】回复“电子书”支付,或者点击右下角加 QQ 群,群里也有整顿的相干材料。
4. 将来瞻望
1. 接下来的工夫筹备下大论文的内容,之前投的第二篇小论文有了审稿意见,只是没改而已,今年过年之前投出去吧。保障本人顺利毕业!
2. 补充下操作系统和计算机组成原理的常识。次要看下《深刻了解计算机系统》《古代操作系统》这两本书把,每周把看过的货色总结下,照常输入一篇博客。这部分是最次要的内容,把根底打扎实了。
3. 操作系统和计算机组成原理的常识造成博客专栏,保持!
4. 保持锻炼身体,每周视天气情况而定,跑步 2~3 次,周末打打球。
5. 期待入职大华,行将开启一段新的旅程,充斥了未知和挑战,要持续加油鸭!
5. 总结
秋招完结了,往年感觉好难,好多公司缩招。在九月初有段时间,情绪很高涨,始终在狐疑本人。特地是投递简历后,漫长的期待。每天都会查看好几遍邮箱,惟恐错过了重要的告诉。情绪不好的时候,我就会去操场边听音乐边跑步,特地喜爱大汗淋漓的感觉。跑完之后整个人的精神状态会好很多。调整好心态,持续看面经,刷题,总结基础知识!
综合思考了下,最初抉择了浙江大华,次要起因是给了一个让我无奈回绝的理由。本人也询问了在外面的师兄师姐,他们说还能够,加班的话没有网上说的那么可怕。本人提前做完的话,是能够走的。而且组内打个招呼,有急事也能够销假。加班个别到八点半,对于本人来说其实也能够承受(当初不加班的公司太少了)。至于双休的话,是看部门,不忙的话双休都有,忙的话大小周劳动。集体还算比较满意。
文中提到的材料都曾经整顿为 PDF 文档,关注公众号【嵌入式与 Linux 那些事】后“秋招大礼包”收费支付。
6. 致谢
刚开始拿到 Offer 后不晓得该如何抉择,父母那边倒是没有太大的问题,说哪里工作适合就去哪里。很感激我的父母能够反对我。过后征询了发哥,逸珺哥,平哥,朱老师,豆豆姐等,还有在投递简历前也求教了下肖遥哥。非常感谢这些前辈能给我倡议!
2020 年疫情在家期间,本人对于找一份什么样的工作并没有明确的布局。于是征询了发哥对于校招,职业倒退的问题。发哥大早晨的手打了 1000 多字回复我,特别强调要器重校招,多和面试官聊天 ,把握机会。在职业倒退布局上,发哥向我介绍了底层驱动是做什么的,在不同的公司表演什么角色,以及将来的降职通道等。应聘的时候,要 多些自信 ,致力把握好人生的抉择点,在没有做抉择前, 不要把话说死,把方向定死 。很多校招企业更看重的是 可造就性,进入企业后都是依照一张白纸来造就的。
发哥:公众号【嵌入式与 Linux】。嵌入式 Linux 公众号号主发哥,平时不仅分享技术文章,还会给嵌入式入门的同学们做职业分享和探讨,当然了,也有篮球和晒娃。发哥技术也比拟猛,开始的 STC89C51,AVR,STM32, 到当初的 ARM7,ARM9,ARM11, 从裸奔到嵌入式 Linux 和安卓 (Android) 零碎。之前在一家大厂工作,前面辞掉高薪,进去守业。除了技术比拟牛之外,还喜爱打篮球,有机会我要去深圳找他单挑。
投简历前,征询了下肖遥哥在校招中是抉择岗位还是抉择公司的问题。肖遥哥说,岗位重要 ,再好的公司如果做的不是你喜爱的善于的,那么你可能在这家公司也不会短暂,不论做那个方向,做那个行业,还是在一个方面要 专一,保持。
肖遥哥:公众号【技术让幻想更平凡】力争原创,内容涵盖嵌入式 Linux、C/C++/Qt、算法、数据结构、职场感悟等方向。这里有学习路线、教训心得、面试宝典、源码解析、技术精选及经典材料等。号主李肖遥,一个认真做技术的职场老鸟,孵化编程,乐于分享。讲原理,抠细节,究本源。用心写好每一篇文章,专一每一个细节,期待与您一起成长。
在抉择 Offer 的时候也征询了下逸珺哥,待遇差不多的状况下,思考公司发展前景以及地区,但要优先思考 公司行业以及前景 。也要思考当前 定居 等问题,比方是否能落户,这个和当前孩子的教育也有些关系。然而要找到 趣味,待遇,地点 等各方面都能满足的工作还是有点难度的。
逸珺哥:公众号【嵌入式客栈】,号主逸珺,高级嵌入式软件工程师,从事嵌入式软硬件开发多年,次要分享 Linux 零碎构建、Linux 驱动开发、实战信号处理算法(数字滤波器、谱分析等)、单片机技术、AIOT 学习笔记等相干技术内容。
小平哥说,要留神下你 应聘的职位和你进去从事的工作内容 是否是一样的。在公司如果从事的方向正好是公司的次要业务,你会学到更多的货色。思考定居的问题,是干几年回老家,还是找个宜居的城市呢?一线城市的压力是会大一点,然而机会也会多一点。如果回老家或者周边,公司的规模和待遇等就会比一线城市差一点。
小平哥:公众号【txp 玩 Linux】。从事过 linux 利用和 c ++ 服务器开发;如果您不知如何筹备面试、以及学习路线的迷茫等问题,都能够来找我,一一帮您解答,欢送大家来“骚扰”我!
朱老师说,你放心的地区问题和年龄问题都不是事,齐全能够干几年再跳走。而且,你要置信集体机缘就是最好的安顿 。这种问题没有标准答案,紫光存在不确定性,对于目前的来说,还是先 落袋为安 吧。杭州也是个不错的城市,工作机会也比拟多,齐全能够反对你将来三到五年的倒退。芯片原厂也不肯定是最好的,第一份工作只有在 品质上没有问题,前面还是容易跳槽的。
豆豆姐,第一份工作,跟对人很重要。大公司有成熟的造就体系。刚开始工作,左右比照也很失常。工作自身,无论哪个岗位都能历练本人。不是赚到,就是学到,关乎己心 。 工作无非也是借境修心。本人私下认真一想,不论是工作还是生存,的确是这么个情理, 很赞!
下一篇文章将会分享小米,兆易翻新等公司的面经总结,欢送关注我的公众号,第一工夫获取更新。
养成习惯,先赞后看!如果感觉写的不错,欢送关注,点赞,在看,谢谢!
如遇到排版错乱的问题,能够通过以下链接拜访我的 CSDN。
CSDN:[CSDN 搜寻“嵌入式与 Linux 那些事”]