哥,想请教你一些问题,麻烦哥你有时间的时候帮我解答一下,非常感谢:
1.驱动岗位少?面试准备驱动会不会有点偏?
2.感觉自己之前看的太细了,有些东西记不住。你的pdf+正点原子+项目 完全看完不太现实。
3.我现在的情况:正点原子裸机、系统移植看完,驱动看了大部分;之前花的时间很多,看的太细了,总在纠结一些细节是怎么回事,而且记不住,面试估计体现不出来;正点的驱动介绍的太草率了,驱动后面部分只讲操作,不讲原理,看不下去了。
数据结构严蔚敏书籍看完,你的pdf数据结构部分全部看完,pdf对应的力扣题目全部做完,剑指offer做了六七道题;有好多人给我讲,嵌入式没必要刷太多题,多把时间放在项目上,所以现在不太清楚该怎么做,感觉题目还是要刷的。
这个寒假模仿志辉君做了一个F1C200s的小电脑,从硬件设计、PCB制作焊接到uboot移植、内核和设备树修改,Debian根文件系统制作,然后LCD、触摸屏、USB、音频驱动,还有一些正在做,esp-12f做无线网卡、移植一个小游戏、跑lvgl或qt。但是只是照着别人的教程用内核的驱动或已经写好的驱动,感觉自己不懂原理,面试不知道怎么讲,或者说不知道怎么他们会问什么我怎么回答。准备照着别人的教程把功能实现,后面补充一些原理。哥你觉着这个项目能拿的出去吗?
之前有做过一个关于Qt利用摄像头进行长度测量的小项目,这个项目和驱动不相关,可以写上去吗?
你的pdf中还有C/ C++基础、ARM体系与架构、操作系统、Linux驱动没看,不知道怎么取舍,时间不够。
4.后面的计划
我准备寒假年前继续项目,年后看C/C++基础,开学后复习正点pdf,然后看你的Linux驱动部分,然后尽量再准备一个项目,当然刷题要一直进行。至于ARM体系与架构和操作系统感觉没时间看了,准备挑一下重点。
后面的基调应该定位为学习一些面试能够体现自己的东西。
5.自己的缺点--心态问题
还是觉得自己看东西有执念,就想什么都搞懂,看的特别细,一字一句都想搞明白,遇到问题耽误时间,影响自己的计划,就会感到焦虑。比如看数据结构部分,每道题几种解法都看了,担心自己记不住会多次复习,结果搞了一个学期,哦,还有小项目的硬件。所以我很羡慕像哥你一样乐观的人。
我的回答:
驱动岗位相比于应用开发,单片机开发,确实岗位会少点。但是,驱动待遇不错,前景比较好,门槛高。未来可以从事很多专精的方向,比如linux内核开发,usb驱动开发,音视频驱动开发等。这些方向,难度比较大,但越老越值钱,因为会的人比较少。
学习前期以正点原子+项目为主。面试前5个月左右开始刷PDF。看的细是好事,建议你多做笔记。把自己花了时间研究的问题都记下来,后面再复习下。
剑指offer是一定要刷的,大厂很爱考算法题,算法题笔试必考,面试必考!根本少不了的。剑指offer的题目,最低要求是一遍。有时间还是刷两遍比较好。
小电脑的项目,先把功能实现再说。把做的过程中遇到的问题记录下来。面试的时候就讲你遇到的问题,解决思路是什么。后期再针对一两个功能实现,深挖下源代码,搞懂原理。你这项目拿出去完全没问题!
如果你是面驱动岗位,你列出的这几部分都是要看的。除了linux驱动部分可能需要多理解,其他内容都是八股文,背诵下来就好了。OS是一定要看的,面试肯定会问的。ARM架构那块,如果实在没时间,可以不看那么细。
像操作系统这些八股文现在没必要看太细。只要能做到问你问题,能答出来就好了。
等你找到工作后,可以好好研究下操作系统,计算机组成原理的内容。毕竟,我们现在的重点是找到一份工作,而不是把这些理论都搞懂。
有时间可以再准备一个项目,没时间就算了。小电脑的项目搞懂70%,面试完全没问题。QT项目+小电脑项目,两个也够了。驱动方面本来就很少有合适的项目。驱动都是原厂做好的,我们拿来用。
Linux驱动部分,要能讲出基本的驱动框架。一个字符设备驱动怎么写?块设备驱动怎么写?总线设备驱动模型是什么?这些不要求你都能写出来,但面试一定要能答出来。说白了,还是背诵的问题。
重要度排名:C/C++基础 > 剑指offer > 项目 > Linux驱动 > 操作系统 > ARM架构