嵌入式开发需要掌握哪些知识 嵌入式开发要学哪些

说到嵌入式开发 , 大多数人会想到ARM、Linux、C、Android等等 。
看了很多相关的入门学习文章 , 不知所措 。要学的东西太多了吧?门槛太高了吗?
【嵌入式开发需要掌握哪些知识 嵌入式开发要学哪些】我在这个行业10年了,现在看网上那些入门文章,觉得很难学 。多少新手就是这样入门又放弃的 。
但事实是,这个行业的进入门槛低到让你义愤填膺 。只要能坚持,初中毕业证还是能发挥的很好的 。
如果你真的喜欢研究技术,喜欢做创客,通过你掌握的技术把你的想象变成真实的产品,那么嵌入式开发绝对是你必须要学的技术 。
1.嵌入式软件开发是做什么的?
很多人可能不知道嵌入式软件开发是做什么的 。
简单来说,你编写程序控制硬件电路,实现电子产品的智能控制功能 。
与纯软件相比,嵌入式开发更有趣 。纯软件学习过程大多是在屏幕上打印一些冷冰冰的字符 。
嵌入式开发大多在开发板上,很快就可以写个程序控制一个LED灯 。那不是更有趣吗?
而嵌入式开发是基于芯片开发的,比如一些ARM芯片,就像电脑CPU一样,只是在性能、成本、尺寸上比电脑CPU更简单 。
这类电子产品比较适合定制,比如蜂巢盒快递柜,平板电脑等等 。
2.嵌入式开发要上哪些课程?
很多新手从一开始就走错了方向,嵌入式系统涉及的技术太多了 。
就像公司的组织结构一样,公司分为很多岗位,比如从事技术、业务、人力等等 。
同样,嵌入式开发也分很多方向,主流方向是:
单片机开发ARM Linux开发
还有其他的FPGA/DSP/DSP之类的,就不说了 。
如果你前期没有明确的定位,你学嵌入式开发基本上是不可能的,因为有太多的东西你根本学不会,学了很久也没有结果,肯定会放弃 。
但是如果我们有了明确的定位 , 那么学习的速度就如同打开了 。
我经常跟我们无边单片机编程的同学说 , 要像激光一样生活,专注于一个点 , 这样才能快速有效的做出成绩 。
MCU开发和ARM Linux开发有什么区别?
MCU的发展主要集中在低端产品 , 如ofo自行车共享,智能家居传感器和网关 , 无人机,扫地机器人等等,每个人都必须接触到 。
ARM Linux做的是高端产品,比如平板电脑,智能机器人等等 。
这两个方向没有谁比谁强的说法 , 各自的应用场景和产品都不一样 。
很多人说学习ARM和Linux做嵌入式开发 , 但是做单片机开发没有前途,纯粹是技术人员和外行人的思维 。
我以前也这么想 。这几年一直在做单片机开发 。MCU开发的工资总是比ARM Linux开发的工资低 , 我对此并不满意 。
自从在后面看到一些51单片机 , 每年进百万老板的时候,彻底颠覆了我的三观 。
技术再牛逼,高端产品呢?
如果你不提高自己的认知和思维 , 你的收入将永远停留在工作水平 。
所以技术水平和收入水平不是因果联系 。技术再好,工作层面也会有瓶颈 。关键是如何通过技术这个工具产生价值 。
好吧,有点跑题了 。回到正题,嵌入式开发要上哪些课程?
我们前面说了方向,就拿我最熟悉的单片机开发来说吧 。
一个电子产品的实际开发会由两个人共同开发:一个硬件工程师和一个软件工程师 。
我们的职位是软件工程师,因为待遇会比硬件工程师好 。现在很多硬件都是集成的,所以硬件成长的过程会比较坎坷,核心技术我们接触不到 。
如果接触不到核心技术,硬件还不如软件贵 。
一步一步缩小我们的定位,然后根据我们的定位收集学习内容,你最终会发现,你想学的东西并不多 。
收集学习内容最好的方法是在招聘平台上搜索相关职位 。
比如我们可以搜索:单片机工程师/嵌入式工程师 。
这是某鹏汽车单片机开发的定位 。结合我在这个行业10年的经验,我得出的结论是 , 我必须学习以下课程:
C语言
而嵌入式MCU的开发主要是用C语言编写程序来控制硬件完成相应的产品功能 。
其实汇编也可以 , 但是汇编写的代码维护起来很麻烦 , 现在也很少用,所以我主要学习c 。
我们录制了一套单片机C语言入门教程 , 非常适合初学者 。
这套本来是零基础学生录的 。后来觉得这个教程已经泛滥了,就干脆分享了 。

推荐阅读