看了很多相关的入门学习文章,感觉一头雾水。 要学的东西太多了不是吗? 门槛是否太高?
我从事这个行业已有10年了。 现在看网上的介绍文章,感觉非常难学。 这就是很多新手从开始到放弃的过程。
但真实的情况是,这个行业的进入门槛低得让你大吃一惊。 只要坚持,初中文凭照样可以过得好。
如果你真的很喜欢研究技术,喜欢做一名创客,用自己掌握的技术将你天马行空的想象变成真正的产品,那么嵌入式开发绝对是你必须学习的技术。
1.嵌入式软件开发是做什么的?
很多人可能不知道什么是嵌入式软件开发。
简单来说,就是你编写程序来控制硬件电路,实现电子产品的智能控制功能。
与纯软件相比,嵌入式开发更有趣。 大多数纯软件学习过程都会涉及到在屏幕上打印一些冷冰冰的字符。
嵌入式开发大部分是在开发板上进行的。 您可以快速编写程序来控制 LED 灯。 这不是更有趣吗?
另外,嵌入式开发是基于芯片开发的,比如一些ARM芯片。 这种芯片就像计算机CPU,但在性能、成本和尺寸方面都比计算机CPU简单。
此类型比较适合定制电子产品,如丰巢快递柜、平板电脑等。
2、嵌入式开发需要学习哪些课程?
很多新手从一开始就走错了方向。 嵌入式涉及的技术太多。
就像公司的组织架构一样,公司分为很多岗位,比如技术人员、业务人员、人力资源等等。
同样,嵌入式开发也分为很多方向。 主流方向是:
还有其他的FPGA/DSP等,先不讲了。
如果你前期没有明确的方向,你基本上是不可能学好嵌入式开发的,因为要学的东西太多了,你根本就学不会。 如果长期达不到效果,你肯定会放弃。
但如果我们的定位非常明确,那么学习的速度就会像作弊一样。
我经常告诉我们无极单片机编程的学生,要像激光一样生活,专注于一点,这样才能快速有效地取得成果。
单片机开发和ARM+Linux开发有什么区别?
微控制器开发主要集中在中低端产品,比如大家都必须接触的ofo共享单车、智能家居传感器和网关、无人机、扫地机器人等。
ARM+Linux主要生产中高端产品,如平板电脑、智能机器人等。
这两个方向并没有谁比谁更好的说法,各自的应用场景和产品也不同。
很多人说想学嵌入式开发就学ARM、Linux,单片机开发没有前途。 这纯粹是技术人员和外行人的想法。
我以前也是这么想的。 过去几年我一直从事微控制器开发。 单片机开发的工资总是比ARM+Linux开发低,心里很不爽。
直到后来看到一些只懂51个单片机的老板一年就赚了几百万,我的三观就彻底颠覆了。
不管技术有多牛逼,不管我们做出来的东西有多高端,那又怎样?
如果你的认知和思维不提高,你的收入就永远停留在打工的水平。
因此,技术水平与收入之间不存在因果关系。 技术再好,在兼职层面总会遇到瓶颈。 关键是如何通过技术作为工具来创造价值。
好吧,这有点牵强。 回到正题,嵌入式开发应该学习哪些课程?
前面我们讲了方向,以我最熟悉的单片机的开发为例。
一个电子产品的实际开发会由两个人共同开发:硬件工程师和软件工程师。
我们的定位是软件工程师,因为薪资会比硬件工程师好。 现在很多硬件都是集成的,所以硬件的成长过程会比较坎坷,核心技术也不会暴露。
如果你接触不到核心技术,那么硬件的工资就没有软件高。
就这样一步步缩小我们的定位,然后根据我们的定位去收集学习内容,最终你会发现没有什么可学的。
收集学习内容的最佳方式是在招聘平台上搜索相关职位。
例如,我们可以搜索:微控制器工程师/嵌入式工程师。
这是某鹏汽车的单片机开发岗位。 根据我在这个行业10年的经验,我总结出你必须学习以下课程:
C语言
嵌入式及单片机开发主要采用C语言编写程序来控制硬件完成相应的产品功能。
其实汇编也可以用,但是用汇编写的代码维护起来很麻烦,现在也很少用了,所以我主要学习C。
我们无极单片机编程还录制了一套单片机的C语言入门教程,非常适合新手。
这套原本是为没有基础知识的学生录制的。 后来觉得这个教程太火了,所以干脆分享一下。
2. 电路基础知识
开发嵌入式单片机的主要目的是编写程序来控制硬件,所以需要有一定的电路基础。 只要学会理解电路即可。
3、单片机
市场上的单片机型号有很多,而且基本都是一样的。 新手可以从51单片机开始,比较容易上手,然后进阶到STM32。
最后祝大家学业有成!