关注公众号,回复“入门资料”获取单片机入门到高级开挂教程
开发板带你入门,我们带你飞
文 | 无际(微信:2777492857)
全文约1910字,阅读大约需要 10 分钟
我第一份工作,是最不适应的,又要想办法和陌生的同事搞好关系,又要应付工作中的难题,每天精神都是处于紧绷的状态,每天最期盼的就是赶紧下班。
如果你也有这种感觉,太正常不过了,也必须要经历了,一般做个2,3个月就好了。
碰到问题,不要总是第一个想到要离职啥的,治标不治本,态度好点,一般都不会轻易被辞退,好不容易才忽悠个工作,自己心里没点逼数?熬也要熬个1年,有经验再跳就稳了。
刚开始碰到没接触过的项目,或者技术点,也很正常,先不用盲目学习,先分析好项目涉及到哪些技术栈,再针对性学习。
有些人,甚至入行了,还不知道嵌入式开发,原来是细分好几个方向的。
如果对这几个方向不了解,不能循环渐进学习,会一直处于一个迷茫的状态,感觉永远学不完,学着学着就不知道学什么了。
嵌入式涉及的内容只能用海量来形容,任意一个方向,想精通,都够学一辈子了。
所以首先要确定目前做的产品,是涉及哪个方向的技术栈,主流有4个吧。
第一个是单片机开发工程师,我对这个方向比较熟悉,也是目前需求量比较大的方向,以这个重点说下吧。
单片机开发是嵌入式领域的入门级方向,也是最基础的部分,门槛也是最低的一个方向。
但是,不意味着简单,很多人说做单片机简单,甚至很Low,天花板低,有这种思维的,不是学生,就是技术思维。
2011年刚毕业,做了2,3年开发的我,也是这么飘的,但是做的时间越长,见证了行业10年发展后,我反而更加敬畏了。
我现在的理解是,越简单的产品,越挣钱,大多数拼的不是技术,而是渠道和供应链。
如果自己接过单的就知道,隔行如隔山,哪怕你做了10年单片机开发,市面上60-70%的产品,你就没有完全的把握能开发。
行业不一样,方案选型不一样,标准,生产,测试可能都不一样,特定行业还会涉及到算法之类的,涉及知识已经是电子范畴以外的了。
虽然都是用单片机,用c语言去实现,但深入到具体的行业项目,远远没这么简单,退一万步说,让你写个rtos系统,有多少工程师能写出来?就别说写了,能把别人的rtos吃透,都够喝一壶了。
以前我就写过一个轮询版的任务调度小系统,有任务创建,调度,休眠,定时器矩阵,队列等功能的组合,其中涉及到了枚举、结构体、指针的高级应用。
早期我也录过这个小系统的教程,想学习的可以找我安排。
但作为一名能胜任开发的初级单片机开发工程师,你需要掌握以下技能:
1.熟练应用C51和STM32这两种经典单片机,C51适合入门学习,结构简单,资料丰富。STM32性能更强,也更复杂,目前市场占有率也高。
一般学会这两个,使用其它品牌,型号的单片机,也能快速上手了,现在单片机基本都会提供例程,直接拿来改就是。
2.能够独立完成小型项目,这个能力要多做项目才能锻炼出来的,开发板浅浅学完,就要不断找点项目做,越贴近实际的越好,项目做的越多,能力提升越快。
如果实在找不到,像什么寻迹避障小车啥的练手也可以,虽然企业不太认可这类项目,但对于学习的角度,还是可以的,有趣,而且会涉及到传感器数据采集和处理,电机控制,算法等。
很多企业级的项目,也不一定有这复杂,像小家电类的,功能贼简单,难就难在,让你在不到1K的ROM空间里面去实现,就是对单片机资源的极致压榨,所以很多只能用汇编干。
3.能够看懂别人的代码,这个能力非常重要,我刚开始工作,就是从改别人的代码开始,给客户做一些定制化的功能。
大家也别小看功能维护升级,看别人写的代码,是遭罪的,屎山代码看起来乱七八糟的,架构好的又复杂看不懂,新手很容易陷入这样的矛盾,但没办法,每个工程师都要经历这个过程。
4.找资源的能力,我碰到过很多新手,入职后说这个不会,那个不会,然后自己在网上找资源也找不到。
其实资深工程师,大多数的工作都是在做资源整合,比如说从以前做过的项目里调,如果是接触到新模块/芯片,主要就是向供应商提供技术支出,我们一定要借助第三方的力量,别啥都自己死磕,效率太慢。
如果你感觉你的权限不够,怕供应商不理你,完全可以反馈给领导,让领导找供应商支持你。
除了单片机以外,其它3个方向分别是Linux内核驱动开发工程师、Linux应用开发工程师、安卓系统工程师。
这3块,我没有涉及,大家可自行到网上去找找。
end
下面是更多无际原创的个人成长经历、行业经验、技术干货。
1.电子工程师是怎样的成长之路?10年5000字总结
2.如何快速看懂别人的代码和思维
3.单片机开发项目全局变量太多怎么管理?
4.C语言开发单片机为什么大多数都采用全局变量的形式?
5.单片机怎么实现模块化编程?实用程度让人发指!
6.c语言回调函数的使用及实际作用详解
7.手把手教你c语言队列实现代码,通俗易懂超详细!
8.c语言指针用法详解,通俗易懂超详细!