JN江南体育 - 嵌入式软件开发校招求职宝典!
发布时间:2024-01-05 08:09:14

  JN江南体育 - 嵌入式软件开发校招求职宝典!嵌入式软件工程师大致可以分为两种类型:应用开发工程师和驱动开发工程师。以下为两者之间的区别:

  负责在操作系统的上层即应用层,利用操作系统提供的各种API或由API封装而来的库函数做各种各样的应用,实现嵌入式系统的功能,是嵌入式软件开发的最终目的

  深入到操作系统内部,进行底层的驱动软件的开发,通常是直接读写硬件设备的寄存器,然后封装成一个个API供上层应用调用,是实现各种功能的基础,为上层应用开发提供支撑

  2.匹配专业嵌入式系统是软硬结合的东西,适合从事嵌入式开发的专业有两类:一类是电子工程、通信工程等偏硬件专业。这类专业主要是做硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoader、 Board Support Package(像PC的BIOS一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。这类专业的优势是对硬件原理非常清楚。另一类是软件、计算机专业。这类专业主要从事嵌入式操作系统和应用软件的开发。如果学软件的人对硬件原理和接口有较好的掌握,完全也可写BSP 和硬件驱动程序。嵌入式硬件设计完后,各种功能就全靠软件来实现了,嵌入式设备的增值很大程度上取决于嵌入式软件,这占了嵌入式系统的最主要工作。

  3.行业前景嵌入式无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、PDA、电子字典、可视电话、 VCD/DVD/MP3 Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等都是典型的嵌入式系统。嵌入式人才目前是处于供不应求的状态中。据权威统计机构统计在所有软件开发类人才的需求中,对嵌入式工程师的需求达到全部需求量的60%~80%,并且每年以20%的速率在增长需求,学嵌入式对于广大人群来说是比较好找工作。其次是嵌入式人才缺口大,大部分企业想方设法降低嵌入式人才流失率。由此可见,不管是现在还是未来,嵌入式工程师都会是企业发展不可或缺的一部分。嵌入式发展空间大。嵌入式应用广泛,凡是嵌入式应用到的领域,都可以作为嵌入式求职者的就业选择,再次作为一名嵌入式程序员,想在技术路线上一直发展的话,那么可以从初级嵌入式工程师一直向资深的嵌入式软件开发工程师迈进,学嵌入式转型机会也比较多,比如也可以做研发,驱动之类的工作,工作的应用是比较广泛的。4.热门领域及公司嵌入式的应用领域十分广泛,小到家用电器,大到航天飞船,都有嵌入式系统的身影。在此列举一些热门领域及公司:

  技术准备是整个校招求职准备中最重要的,不论简历写的有多天花乱坠,只要技术不过硬,根本无法通过笔试和面试,还容易给面试官留下不好的印象,影响后续的求职。

  接下来我将详细解读一下必备六大技能,让大家明白各大技能需要掌握到什么程度才能成功拿到offer。

  除此之外,建议大家多在刷题软件(比如牛客)上刷题,只有多刷题才能巩固知识,不然自以为自己都会了,一到实战啥也记不起来了。

  C语言无论是嵌入式单片机还是嵌入式Linux,C语言都是必考的内容,可以说C语言是嵌入式软件工程师吃饭的家伙,相信C语言的重要性不用多说。

  对于嵌入式来说C语言基本上是要完全掌握并且熟练使用的,下面就先列出在笔试面试中C语言需要掌握的/比较重要的知识点:

  主要是这几个大的方向,输入输出是必须要熟练的,因为在笔试编程题里面是几乎必须要用到的,这个部分可以去刷算法题来熟悉一下。关键字所有的关键字都要了解,像是static、volatile、extern、sizeof都是比较常考的。堆栈和指针都是重中之重,一定要全面完整地学习。像是大题的话往往是考算法、数据结构以及对字符串的一系列操作。单片机对于求职芯片行业的同学来说,单片机知识也需要好好准备。这部分主要是针对你在项目中常用的芯片,一般来说大部分人是以STM32为主。我就针对STM32来说说有哪些重要的知识点:

  在这些里面最常被问到的就是中断和通信接口。其中通信接口主要就是IIC、SPI、UART。数据结构与算法数据结构对于嵌入式软件岗位来说,数据结构相对没有互联网行业的招聘那么重要,但还是属于必考的知识点。对于嵌入式岗位,数据结构可以选择性地学习,不用全部都学会,毕竟准备的时间是有限的,当然有充足的时间的话,当然建议都学会了,因为对于大厂来说,数据是考核的相对重点。数据结构对于大多数不冲大厂的同学来说,主要学以下知识点:

  算法算法这部分建议在牛客上多刷题,起码刷个20道简单题。熟练一下做题的方法,输入输出这些,对字符串的操作这些,因为后面笔试基本上都会考两题大题,基本上刷个20题,稍微总结一下,然后加上平时的积累就问题不大了。如果想进华为这样的大厂,就要刷中等甚至困难的算法了,这个看各位自己的取舍。算法一般需要掌握的知识点:

  应用编程与网络编程应用编程的知识点包括文件IO、标准IO,进程及进程间通信、线程及线程间通信。

  总而言之,我们不仅需要理解进程、线程、以及它们各自之间各种通信方式的概念,同时还需要掌握多进程、多线程的编程。不过,网络这部分考得还是比较少的,除非是涂鸦智能这种偏物联网的公司。如果不打算去网络领域的公司,这部分只需要知道一些基础,如果项目中有用到的话就需要将项目中用到的协议了解清楚,以及你在做这个项目的时候为什么要选择这个协议而不是另一个协议。最经典的两个问题:

  把这两个问题理解了去面试非网络领域的公司就没什么大问题了。ARM裸机开发ARM裸机开发的话,重点基本集中于ARM处理器、I/O接口、中断、寄存器与存储器这四部分。当然ARM裸机开发还包括uboot和汇编,但这部分一般很少涉及。需要掌握的知识点有:

  驱动开发与操作系统驱动开发驱动开发则是比应用编程与网络编程更底层的知识了,应用程序通过操作系统提供的API来调用驱动程序。驱动开发在笔试面试题中所占的比例较小,但如果你的项目经历涉及到驱动开发,那么你必须对该项目涉及的相关知识点了如指掌。驱动开发必须掌握的知识点有:

  操作系统操作系统这部分的基础知识是肯定要会的,有同学可能在大学阶段只用过单片机,并且没在上面跑过uCOS或者FreeRTOS之类的实时操作系统,更是强烈建议要去学一下这方面的知识。因为尽管是投的嵌入式单片机的岗位,往往也是要求会实时操作系统的。所以建议可以去学一下FreeRTOS或者RT-Thread之类的实时操作系统,有时间的话最好能够在自己的项目中实践一下,时间不够的情况下就把基础知识系统地先学一下。其次就是Linux,尽管投的是嵌入式单片机岗位,但嵌入式在广泛的一个定义里,大家还是默认是以Linux为主,所以Linux的基础知识也要会,因为有些公司在笔试的时候就会涉及到。这方面的话主要是要理解一些理论知识,知道线程进程,知道一些基础的指令,最好可以在ubuntu上写一个代码出来gcc编译一下。会这些Linux相关内容基本上就可以让你在笔试阶段不那么吃亏,当然只会这些是不足以支撑你去找一个纯Linux岗位的工作的。2.信息准备

  校招不仅是对技术能力、综合能力的考量,还是对信息获取能力的考验,越早获得招聘信息,对自己越有利。在收集信息时,最重要的是以下三个信息:

  网申时间:一定要知道网申时间,早了解早投递。因为越早投递就越早进入笔试面试流程,这样是比较有优势的,因为越往后岗位的需求就越少,那么面试的要求就会相对高一点,通过率也会更低。内推信息:内推是很重要的,找到靠谱的内推可以免去简历筛选,直接进入到笔试环节。有没有提前批:如果有提前批机会的话要把握好,提前批很重要,有些公司提前批直接不用笔试,而且有些公司提前批淘汰之后是不影响正式批的,相当于有两次机会。获取这些校招信息的渠道有以下几个:①招聘网站招聘网站老牌的有51job、BOSS直聘之类的,里面有很多真实的校招信息可以找到。但是这些老牌招聘网站针对的人群比较泛,所以里面的信息也比较泛,不只是校招信息,还有很多社招信息,还要进行信息筛选。对于应届生来说,最好的招聘网站类产品是牛客。牛客上的内容主要是为应届生求职准备的,有很多面试经验贴,也有校招信息的汇总,算是一个为应届生招聘信息集合网站。尤其是有个校招日程,汇总了公司的招聘时间节点,还有投递链接,里面还会有一些内推的渠道,对于应届生来说非常省时省力。

  ②高校的就业指导中心公众号不要只关注自己学校的就业指导中心公众号,这样信息渠道来源还是很狭窄的。最好是关注你期望的工作城市的高校的就业指导中心,因为有些比方说西安的一些公司只会在西安高校的公众号有推送,在广东高校的公众号可能就没有了。如果是想要去一些大公司或者是国企的话,我建议关注、北大、清华的就业指导中心公众号,他们的信息时效性非常高,而且丰富,几乎全是一些大公司、国企类的招聘信息。③公司官方招聘公众号公司自己的招聘公众号上的消息一般是第一手的,所以有想加入的公司的话也要提前关注好其招聘公众号。公众号几乎都可以阅读原文跳转到官网的投递链接中,所以不需要再次关注公司的招聘官网了。这里需要注意一下,有些公司的招聘信息不是发在官号上,而是另外开了一个招聘专号。

  对于大部分公司来说,招聘流程是这样的:投递简历→测评→技术笔试→技术一面(初试)→技术二面(复试)→HR面(终面)→offer谈薪。有部分公司是没有单独的HR面的,就是技术二面会换成综合面,前半段聊技术问题,后半段聊一些其他东西。一般来说技术一面的面试官是你将来入职后的同事,技术二面或者综合面试的面试官就是你将来入职后的主管。主要的流程就是这样,不同的公司会有不同的招聘流程,不过都是大差不差的。接下来我会大致介绍一下每个求职环节,并且告诉大家一些技巧。1.简历一份好的、完整的简历包括七个部分:头像、个人信息、教育背景、个人总结、项目经历、获奖荣誉、实习经历/校园经历。头像想必刚开始做简历的你们总是会纠结要不要放上头像呢,我建议是最好要有。有条件的可以去拍个好看点的证件照,比较随便的就可以拿之前的证件照凑合,不要用生活照。当然实在是不想放上去也是可以的,没有说要求必须要有的,但是希望大家能够有足够的自信,校招过程中自信是一个很重要的点。个人信息个人信息包括姓名、年龄、联系方式(手机号、邮箱)、求职意向,除此之外一定写上自己的毕业时间,或者直接写xx届应届生,注意xx届是指的毕业年份,比如我是18年入学22年毕业,那么我就是18级学生,22届应届生,这个注意不要搞混。虽然很简单,但还是总是有人搞错,这样会给面试官留下不好的印象。个人信息要准确,反复多确认几遍。

  顺便在这里提一下QQ邮箱的问题,我看网上有一些声音是说不要用QQ邮箱,我个人感觉是用QQ邮箱是完全没问题的,不过要注意把自己QQ邮箱的名称改了,最好就改成自己的真实姓名,不然你发邮件的话面试官可能会看到一个非主流的名字出现在他的收件箱里。教育背景简单写明学校、专业、就读时间即可。绩点如果还可以的线的就不要写了,如果成绩不错,可以把排名写上去,如年级前15%,班级前五,或者是某某年度排名第一这样。基本上就是怎么写排名靠前就怎么写,如果成绩一般就不用写。如果是学的是和面试岗位相关专业可以附上与岗位有关的主修课程,如果课程分数比较高的话可以在课程名称后面用括号将分数写出如:主修课程:模拟电子(96)、数字电子(99)个人总结这一部分,主要是总结一下自己的技能,熟练使用xx、xx、xx技能(要写和岗位相关的,不要写什么PS、PR之类的);对xx、xx、xx有一定的了解(接触过,但是不太熟的技能)。可以在开头写一下自己对嵌入式行业的热爱之类的主观的话,但是不要说什么自己能吃苦耐劳,有团队合作精神之类的这种虚话。(简历里技术名词大小写要写对,不然会给人一种很不专业的感觉,比如FreeRTOS,不要写成freertos、FREERTOS或者freeRTOS之类的。)项目经历尽量往上多写点,写3个项目最佳,项目一般是按照从新到旧排序,如果旧的项目比较完整、含金量比较高的话也可以适当往前放。主要写项目名称、时间、你的在项目中的角色,然后分点描述:

  获奖荣誉获奖荣誉如果比较多的话可以找在第一句汇总一下,比如专利xx项,国家级奖项xx项,省级奖项多xx项,校级奖项xx项。后面再把奖项列出来,根据含金量从高到低依次列出,最好是和工作岗位有关的奖项,其他奖项如体育运动奖项什么的不必列出,如果有奖学金可以列出,展示自己的学习能力。实习经历/校园经历这部分有的话可以写,没有的话就可以不要,写法参考项目经历。关于简历文件的命名,一般来说如果公司有要求以什么格式命名的话就按照公司的要求来,如果没有的话,就用学校_姓名_应聘岗位。下面我做了一份简历模板给大家,大家可以参考参考,结合上面提到的每个栏目的要点来进行修改。

  2.测评测评一般就是些行测的题目,和一些心理测试的题目,有时间的话可以去看看公务员考试的题型有什么做题技巧。推荐b站刘文超,我是之前有想过考公务员,所以去看了看,感觉还是有不少帮助的。不过学这个还是挺浪费时间的,不学也能做题,一般是不建议大家刻意去学。大家在做测评的时候一定要认真,不要觉得这些题没什么用,就随便选,因为有些公司是会在测评的时候筛人的,如果你太随意的话很可能连测评都过不了,笔试的机会都没有。3.技术笔试笔试大多数都是线上笔试,一般是要开摄像头,录屏的,这部分就没有什么特别的技巧,复习好各部分的知识点就可以了。有一点要注意的是有些公司的选择题是说不定项选择的,他可能会把单选和多选混在一起,所以大家做题的时候可以测试一下是否为多选,一般来说单选和多选的选项框会不一样(cvte就是这样,单选的选项框是圆的,多选的选项框是方的),很容易注意不到。有些公司的编程题是不提供编译功能的,就相当于是一个文本框,这样的类型就很有可能是人工改题的,那么如果做不出来可以在里面多写点注释,即使做不出来也可以让改卷人清晰地看出你的思路(可能会比啥都不写强,但也可能没用,我猜测的)。另一种是机器改的,直接提交之后他会用测试用例去测试你的代码通过率,这种情况下如果实在做不出来的话,也可以尽可能想办法提高代码通过率,因为是机改,所以添加备注是没有用的,只有尽量提高通过率才能拿更高分。还有一种是可以使用自己电脑的编译器写代码的,如果可以的话会有提示显示可以使用自己的编译器的。那在这种情况下,最好就先准备好自己的编译器,做好基础配置,方便后面直接写代码,如果遇到这种允许使用自己的编译器的题目,最好还是用自己常用编译器,因为这样出问题之后比较容易debug。4.技术面技术面一般分为一下几个环节:自我介绍、技术八股文、项目、反问自我介绍技术面的自我介绍需要准备两份,一份在2~3分钟左右,另外准备一份比较精简的在1分钟左右的。因为有些面试官会要求你做一个1分钟的自我介绍,那么你没有准备,还是讲这么长的话,讲到一半就会被面试官打断了,也会给面试官留下时间意识差的印象。把两份自我介绍的稿子写出来不断地念,反复修改直到自己觉得满意为止,念的时候还要给自己计时,注意时间的把握。这里给大家提供一个自我介绍的模板,大家可以参考:“面试官好,我叫xxx。就读于xxxxxx大学xxxxx专业。大学期间我参加了xxx比赛,获得了xxx奖项。还获得了xxx奖项,并且获得xxx奖学金。我比较熟悉使用STM32系列芯片,就拿xxx项目来说,里面有用到xxx芯片,xxx功能,xxx功能,xxx功能等之前所做的项目都是在单片机上开发的裸机程序,没有跑操作系统,最近才开始学习一些FreeRTOS方面的内容,现在只是了解一些基础知识,还没有在实际项目中实践过。Linux的话只是会一些基础的指令,对这方面接触比较少。我提前了解到贵公司的xxx岗位,在看了该岗位的岗位描述后,对该岗位比较感兴趣,也觉得该岗位和我的匹配度比较高,所以投递了贵公司的xxx岗位。”首先第一段就介绍了自己的个人信息以及所参加的比赛获得的奖项和奖学金等,开门见山直接告诉面试官你的能力水平大概是怎么样的。第二段介绍了自己主要使用的芯片及其功能,这部分的话主要是展示你会哪些东西,有哪些东西是公司需要的。第三段和第四段提到了自己的薄弱环节,其实适当提到自己的薄弱环节并没有太大的关系,一方面是我面的是单片机的岗位,那么我提到我实时操作系统和Linux不熟悉也不起到致命的影响,另一方面是,如果你确实有某一块知识有欠缺的,而这个知识恰好又是该岗位所需要的,那么最好也直接在自我介绍的时候提出来,并表示自己正在学习当中,不然等到面试官问的时候而你答不会的话,会给面试官一种落差的感觉,反而更不利。最后一段表明自己为什么要投递该公司,表现出自己对该公司的了解,以及渴望加入该公司的态度。技术八股文所谓的技术八股文就是一些能够死记硬背的知识点的意思,面试官往往会直接考察你对某个知识点的掌握情况,这个时候就需要对前面提到的,C语言、单片机等知识比较熟悉才能从容应对。项目项目这部分,首先是会让你介绍一下你的一个项目,然后面试官会根据你项目里用到的技术去进行提问,如果遇到面试官比较熟悉或者感兴趣的内容,可能就会问得比较深入,一般来说还是以面试者的讲述为主。对于自己写在简历里的项目一定要非常熟悉,针对项目里的每个技术细节都要掌握。这里就汇总一下面试官会针对项目问出哪些比较通用的问题(由于每个人的项目不同,针对项目中具体的点的问题就不列出来了)① 请你介绍一个你做的最好的一个项目如何介绍自己的一个项目呢?其实和写在简历里的差不多,首先是介绍一下这是一个什么项目,由多少个人完成的。其次,介绍一下这个项目的主要功能以及你负责了哪部分的内容。然后是介绍这个项目里面用到的技术点。最后总结一下这个项目的成果。② 这个项目是几个人做的,你在这里面是负责什么内容?③你和你的队友的分工大概是什么样的比例?④ 这个项目的难点在哪里?⑤在做这个项目的过程中有遇到什么困难吗?最后是怎么解决的?⑥这个项目有什么不足之处吗?⑦你在这个项目中学到了什么?⑧如果让你现在优化项目中的一点,你会怎么做?这些问题被问到的可能性还是很高的,所以大家还是要提前准备好答案,逻辑要清晰,不要在回答的时候吞吞吐吐。反问反问环节基本上是每个面试都会有的,当面试官问完了他的问题之后,一般会问你有什么问题问他的,这个时候你千万不能说没有问题,因为这样往往代表你没有好好准备这个公司的面试,在面试官那里肯定是扣分的。在面试前准备好几个问题,等到这个反问环节的时候挑几个提问就可以了。在反问的这个环节,最好能体现出你的态度以及你对公司的向往。下面汇总了几个建议问的问题,和几个不建议问的问题。建议问:

  提出这些问题,之后还可以根据面试官的回答来进行再次提问,面试是一个双向交流的过程,不要担心问这么多问题会怎么样,面试官反而会觉得你问这么多问题,是对公司比较感兴趣。不建议问的问题:

  薪资待遇在终面通过之后会有一个环节专门谈的,不建议问,而且面试官也不会给你一个具体的数字的,感兴趣的可以去牛客的上面查。

  上下班时间和是否双休也是会在终面通过后和谈薪一起沟通的,想要提早知道的可以去知乎、牛客上面搜索,或者询问师兄师姐,或者去一些交流群询问。

  5.HR面这里提到的HR面是纯HR面,如果面试的公司没有这个环节取而代之的是综合面的话,那就参考技术一面并结合一点HR面就好了。在这个环节HR考核的主要就是你的一个态度、是不是想要加入公司以及和公司的企业文化匹不匹配。找工作是一个双向选择的过程,HR主要是负责筛选出和公司匹配的人才。所以在HR面的环节主要是要表现出自己对公司的兴趣,以及一个匹配程度。如果公司的企业文化就是996,而你完全不接受996那么就干脆不要参加了,因为你肯定是过不了最后一轮面试的,当然这里只是举一个例子,嵌入式软件工程师大部分还是要加班的。HR面基本就没什么了,一般以聊天的方式进行,基本上如实回答并且不经意间透露出对公司的向往就可以了。面试前要先去牛客上搜索一下大家的面经,看看面试官一般会问什么问题,通常来说HR面试官都有一个题库,问每个人都是差不多的问题。每个公司的工作风格、企业文化不同,导致HR面的侧重点是很不一样的,有些公司在HR面只是进行一些入职前的薪资沟通,基本不会淘汰人;有些公司的HR面却仍然是很重要的考核,HR会考察你的综合素质等等,淘汰率还是很高的。所以在HR面之前,一定要好好在牛客看看各个公司的HR面真实经验,千万不要松懈!千万不要败在最后一关!

  最后,想跟大家分享一个小技巧,对于比较想去的公司尽量不要第一个去笔试面试,因为第一次总是会有些没有注意到的问题,建议投几个不是很想去的公司试试手(说不定还有意外惊喜呢),但是也不要投差距太大的公司,毕竟有些太小的公司,笔试面试也没有那么正式。还需要提一下的就是,秋招最好在四五月份就开始准备,从简历准备到知识点的复习,差不多要一到两个月的时间。建议大家在四五月份的时候就可以多关注一些大公司的实习信息。嵌入式求职不易,大家要多多努力!感谢 牛客网 A-Tang_ ,安和ahe 的分享

咨询电话
020-6688988265