看了很多相关文章,发现都没说到点子上,并不适合每个人作为参考。
作为一个从业10年以上的工程师,也带过200个以上的老铁拿到offer,成功上岸,我来剖析下这个问题。
首先要嵌入式过于宽泛,涉及内容很多,我们以职业划分的话主流分为:单片机开发、Linux驱动开发、Linux应用开发等等。
不同的职业方向,所学的技术栈就有所差异,所以先确定职业方向是前提。
然后,就是区分在什么阶段的工程师,如果是入门想找工作,和工作了2-3年的,或者工作了5-10年的,大家能力和掌握技能的标准又不一样。
估计大多数对这话题感兴趣的,都是还没入行,或者刚入行不久的同学。
下面,我就以单片机方向,入行这个阶段,来讲一下大概需要掌握什么技能。
首先是基础技能。
1.C语言
这是必须要掌握的技能,不能说多扎实,至少公司给你个项目啥的,首先你要能改动,然后就是你要能改代码,这是最基本的。
刚开始一般不会让你独立做项目,我第一次参加工作,就是改一个MF_RC500的程序,用的是STC的单片机。
这已经是2011年的事了。
公司对于新人,还是比较谨慎的,大家需要有个彼此了解的过程。
2.单片机
以前我们用的比较多的是STC和NXP的单片机,我工作时只会51单片机,工作后接触了NXP单片机,当时STM32还没现在这么普及。
所以时代也在变化,需求也不同,不过单片机也只是工具层面的基础技能,如果现在只会51单片机,确实缺了点啥。
但也不是说你会主流的STM32就多有优势,你会一些国产的,比如GD、中科芯、雅特力、HK、PY等等,给别人的印象,其实不会比STM32差,毕竟成本低,更适合做国内产品。
不过就是资料比较少,新手自己摸索可能比较难。
另外外设方面,前期只要学会GPIO、Timer、UART、DMA、Systick、PWM、IIC、SPI这些基本够用了。
3.电路基础
要熟悉常用的元器件原理,比如电阻、电容、电感、二极管、三极管、MOS管、数码管、继电器、LED、液晶屏这些原理及应用。
除了这些基本的,还要看懂一些单片机的应用电路,可以从开发板入手,比如单片机最小系统,LED驱动、按键检测、串口电路、屏驱动电路、存储电路等等。
4.pcb设计
这个是比较有争议的,到底要不要会设计PCB?
我的答案是不用,因为大多数公司,这个工作由硬件工程师做的,包括原理图设计,和后面打板,焊板子。
但最好要学会看PCB,比如哪个元器件那根线连到哪儿了,这个要会看。
前面这些就是基础技能了,光会这些,以现在的行情,找个工作可能不容易,很看运气成分、学历、以及你所在城市岗位的多少。
如果运气不好,或者学历没优势,要怎么和他们卷?
答案是项目经验。
项目是评估一个工程师综合能力最直接的体现,以前我面试时,面试官最喜欢围绕着项目问,比如这个项目是做什么的?用什么单片机?有哪些功能?xx功能是怎么实现的?你在做这个项目时碰到最难的问题是什么?最后怎么解决的等等。。。
那项目经验去哪找?
渠道主要有开源社区,或者某宝找点,我也收集了一些,可以找我安排,基本都带原理图、PCB、源码。
有个3-4个项目经验以后,就可以去找工作了,祝顺利。。。
最近发现,很多私聊我学单片机的小伙伴,99%的人都走了弯路,所以我花几个小时,写了一篇保姆级学习路线^ ^
单片机怎么学?保姆级学习路线(附教程+工具)https://blog.csdn.net/2401_86645590/article/details/141437874