机械转嵌入式开发需要学什么东西?嵌入式软件工程师学习路线

机械相对属于比较传统的行业,如果现在年轻人入局这个行业,成长的空间非常有限。

我做了嵌入式单片机开发10年,有时做产品的时候经常会跟做机械、做外壳的工程师打交道。

工作话题之余,我们也会拉拉家常,最好奇的就是各自行业的一个待遇水平。

我碰到好几个做机械的,干了7,8年甚至有的10几年了,工资才1万出头,还是在一线城市。

从他们的言语中我听到了很多哀怨,但凡有个好的机会都会马上跳出来。

不过,大多数都是相互骂完自己行业辣鸡以后各自回到了自己的岗位继续干苦力。

毕竟转行的成本太高了,有些人也对自己没什么信心,年纪上来了学会了可能也找不到工作。

我当初也是从电气工程专业转到嵌入式开发的,当时也没想这么多,因为继续做本专业只有死路一条。

有时候就是这么神奇,如果你先想不可能,那肯定不可能,如果你不去纠结结果,直接开始,坚持努力,结果反而会给你一个惊喜。

下面分享我从业10年总结的学习路径和经验,我只针对工作中最常用到的技术点,少用的就不讲了,节约大家学习时间。

在讲学习路径之前呢,大家一定要有个清晰的职业定位,不同的职业定位学习内容和路径都是不一样的。

嵌入式其实涉及的东西非常多,主要分为2个方向:单片机开发和ARM+Linux开发。

前者偏硬件,后者偏软件多点。

我建议做机械的先从单片机软件开发入手,跟本专业还是有点联系,而且比较容易上手,学习周期短,见效也快。

即便学不懂,及时止损也不至于浪费太多时间成本。

单片机开发方向,主要需要学习以下几个板块内容:

  1. 基础电路

单片机是通过执行程序的逻辑去控制外围电路,所以至少要看得懂硬件电路,一些必要的电路基础还是需要学习的。

这块千万不要去深挖模拟电路,99%都学不进去,实际产品开发基本也很少用到。

最好的办法就是学习市面上开发板的电路就,把开发板电路都看懂基本就差不多了。

机械转嵌入式开发需要学什么东西?嵌入式软件工程师学习路线_第1张图片

剩下的到时候实际工作用到什么,再针对性学习。

2.c语言

单片机支持汇编和c语言来编写程序,汇编一般用的非常少,我做了10年产品开发,基本没用汇编开发过项目。

所以我们以学c语言为主,针对单片机c语言编程可以看我们无际单片机编程的教程,按照教程路径学习就可以了。

机械转嵌入式开发需要学什么东西?嵌入式软件工程师学习路线_第2张图片

这个教程到我们公号或者小破站都可以看到。

3.单片机

市面上单片机的型号非常非常多,虽然STM32的单片机很火爆,但是我建议新手从最经典的51单片机开始。

51单片机相对入门者比较友好,如果你直接学stm32的话,很有可能会因为基础缺失导致你认为单片机很难,最后放弃学习,错过这个行业。

学习是循环渐进的过程,我们前期多花点时间把基础打好,后期不管学什么单片机都游刃有余。

当大家工作久了就会发现,单片机只是工具而已,现在芯片原厂的资料和支持都很到位。

所以,这块也绝对不是我们中后期学习的重点。

4.进阶

学完51单片机以后,要先做几个小项目去验证下自己的学习情况,做出来以后再进阶到stm32。

这个时候也是一个关键点,因为你虽然单片机每个外设都会用,但是一做项目就懵逼。

很多人就是在这个阶段耗了1年,不知道怎么回事。

其实这个是非常正常的现象,因为你没项目经验,缺少产品思维和代码整合能力。

简单来说就是单独的模块程序你都会写,就是不知道怎么整合成一个完整的产品代码。

这个最好的方法是看别人的代码去学习别人的思路。

这个阶段开始,我们无际单片机编程学员就一直开始做项目了,因为没有比项目成长地更快。

通过项目去学习性价比也很高,即学会了单片机,也学会了产品思维,代码水平又得到了质的飞越。

而通过开发板去提升,你的代码水平和思维永远停留在新手区。

如果你顺利地度过到stm32,也用stm32做过一些项目了。

这个时候你应该会有所体会,就是在实际产品开发的时候会碰到很多痛点。

比如说:

按键多功能检测的代码,不知道怎么实现更好。

LED各种特效功能需求,让自己一脸懵逼。

串口或者其他数据流通讯,不知道怎么接收更加稳定不丢数据。

碰到这种问题,就代表你要去学习更好的程序架构了。

机械转嵌入式开发需要学什么东西?嵌入式软件工程师学习路线_第3张图片

这块我也根据几年产品开发经验录制了一套比较系统的教程,讲解了很多c语言的高级应用,比如说指针、结构体,还有被人忽略的枚举。

通过这些去完成可扩展性和可移植性更好的架构,比如说队列算法,任务管理,定时器矩阵等等。

这个教程是无偿分享的,已经帮助至少1000人以上编程认知和水平达到质的飞越,要的直接找无际单片机编程拿。

原创不易,纯公益分享,如果对你有帮助,麻烦给我安排个三连吧!

你可能感兴趣的:(单片机,嵌入式)