?学习嵌入式开发:多久? 哪些课程?

曾经有新手和我抱怨:为什么嵌入式开发这么难?

相信我,你不是学不会,只是没找对方法。

这是一片真正为「终结迷茫」而生的回答,内容有点长,如果你赶时间,建议先点赞+收藏防止找不到,如果你想快速切入嵌入式开发行业,请花几分钟,从头到尾不要错过一字一句,因为字里行间都是我从业11年的经验精华。

学习嵌入式,定位规划比课程本身更重要!

一、定位

1.嵌入式主流的几个方向

这是几个是目前市场需求最大的,说白了就是学完以后工作比较好找。

我相信大多数人学习都是奔着高薪工作的吧。

这几个方向里面,单片机开发是最偏向硬件的,Linux驱动开发其次。

Linux应用开发基本上算是纯软件了,基本很少会接触到底层硬件的东西。

很多人,连这个几个方向都搞不清楚,以为嵌入式就是搞ARM+Linux,怎么搞,搞什么一窍不通。

之前我们无际单片机有些学员就走了这弯路,刚开始就是定位不清晰,各种东西乱七八糟地学,浪费1年时间感觉还是啥也没学到。

后面我们给他规划职业方向,配合我们几个项目实战课程,学了4-5个月就直接去工作了,研究生基本都是16-18K起步。

所以,我认为定位比你盲目找课程重要太多了,方向不对努力翻倍,学习周期长又看不到结果,很容易就放弃了。

除了以上几个方向,还有FPGA、以及安卓开发,这里就不一一举例了。

2.各个方向各自优势

这里我主要拿单片机开发和Linux驱动开发这两个方向对比。

  • 产品应用:
  • 单片机适用于低成本、低功耗中低端产品应用。

    Linux驱动开发适合对成本不敏感、对功耗不敏感,高性能中高端产品应用。

  • 学习周期:
  • 单片机更短,Linux驱动开发更长。

  • 薪资待遇:
  • 单片机开发比Linux驱动开发要低。

  • 未来前景:
  • 单片机开发适合个人低成本创业,一个人能同时做硬件和软件。

    Linux驱动需要一个团队,比如说硬件设计、驱动开发、应用开发。

  • 投产比评估
  • 如果你急着找工作,可以先从单片机开发入手。

    如果你不急着找工作,希望能做更高端产品可以直接上手Linux驱动/应用开发。

    根据无际单片机以往学员数据,个人认为单片机开发投产比比Linux方向要高,零基础坚持学4-6个月就能达到工作水平。

    虽然起步工资没Linux方向高,但是有稳定的资金流才是王道,后面再想学什么也没那么大压力。

    二、学习路径规划

    相信看到这里,你已经知道定位的重要性了,不根据职业定位去规划课程就是浪费时间

    这11年,我一直在从事单片机开发,所以以下学习路径应该是你见过最高效最实用的

    1.C语言基础

    很多人问我,汇编要学吗?我直接告诉你,不用学。

    我们的目标是快速达到我们的目标,汇编虽然能让你更深入理解单片机原理,但是工作当中并不实用。

    至少我做了开发这么多年,基本没用到过。

    汇编一般会在以下场景用:

    a).资源非常匮乏的51单片机,ROM和RAM不够只能用汇编。

    b).RTOS移植的时候,每款单片机指令集有区别,你系统去学习没太大意义,还不如不懂的指令直接网上搜快一点。

    所以,听我的,前期主攻C语言不会错。

    如果你没学过C语言,建议你看下无际单片机录制的单片机C语言课程。

    市面上很多都是针对上位机的C语言,我们这个是针对单片机的,虽然大多相同,但往往就是一些细节让新手从上位机过渡到单片机时一脸懵逼。

     

    2.电路基础

    学单片机开发,有一半都是在学习电路途中放弃的。

    我当初也是差点在学模拟电路时放弃,直到工作了很多年,我直接把模拟电路书和视频都扔了。

    实际产品开发用的很少,你只需要学习一些常用元器件原理和应用场景就可以了。

    电路不用学得太深,你知道什么信号进来单片机,单片机输出什么信号控制外围功能电路就够了。

    至于为什么这里加个电阻,那里并个电容,为什么取值这个,先不用管。

    实际产品开发中,这些工作都是由硬件工程师去完成的。

    3.51单片机

    有些人说51单片机过时了,淘汰了,这种直接当他是外行。

    现在51单片机还在大量应用,哪怕你是接触到一些蓝牙产品,很多芯片都是51内核的,比如TI的CC2541。

    我向你保证,如果51单片机能实现的功能,老板绝对不会允许你用STM32,哪怕让你用会编写,把你头发写掉光。

    原因很简单,51单片机便宜啊!

    4.用51单片机做项目

    前面学的c语言、基础电路、51单片机都是知识工具而已。

    学完就得把知识落地产生价值,而项目就是把这些知识产生价值的唯一途径。

    很多人学完了基础知识,发现还是不会做项目,就在想是不是自己基础没学好啊?

    其实不是,就像你学会了写字,但是还是不会写作文是一样的感觉。

    想写出好作文,除了你的基础知识功底,还需要你有丰富的经历和思维对吧?

    做项目就跟你写作文一样,也是考验你项目思维和经历了。

    思维和经历好不好,会决定你的程序写得好不好。

    很多人着急学STM32,把这最重要的一步给忽略了。

    所以越往后缺失的东西越多,学起来自然也越费劲。

     

    5.C语言进阶

    很多人迷恋C语言指针,而我建议把指、结构体等一些高阶知识放在这个环节学习。

    经过前面几个环节洗礼,你的代码水平和理解能力都提升了。

    这个时候再去学习C语言高级技巧,时间成本会更低一些。

    C语言进阶我们无际单片机系统开源教程,其中包括枚举、指针、结构体、回调函数、队列算法、任务管理等可以直接用于你批量产品的知识。

     

    6.STM32单片机

    终于来到新手梦寐以求的STM32了。

    这个环节,我建议把STM32当作工具来学,就是知道怎么调库把外设用起来就行了。

    没必要深入系统地学习,只需要学最常用的外设就行了,学完不用,很快你就忘了。

    具体哪些是常用的,上面那个导图写得很清楚了。

    7.STM32项目

    如果你能坚持到这里,恭喜你,马上可以毕业了。

    但是这个环节往往也是最难、最煎熬、最耗时的一步。

    STM32项目某宝有一些DIY的项目,比如智能小车、无人机之类的,可以拿来练手。

    不过,你能学到的可能也只是对编程的熟练度而已。

    如果想学到更好的思维和编程技巧,可以无缝对接实际产品开发的。

    最好还是跟着资深的工程师做项目。

    三、总结

    1.定位比课程本身更重要。

    2.把大多数的时间精力放在项目实战上。

    最后彩蛋时间!!!

    最近很多小伙伴找我要一些单片机学习资料,然后我根据自己从业十年经验,熬夜肝了几个通宵,精心整理一份「单片机入门到高级教程+工具包」,全部无偿共享给大家!!!

    除此以外,再含泪分享我压箱底的22个热门开源项目,包含源码+原理图+PCB+说明文档,让你迅速进阶成高手!

    据说有小伙伴靠这份资料顺利进入BAT大厂,所以保存了一定要好好学习。

    教程资料包和详细的学习路径可以看我下面这篇文章的开头。

    单片机入门到高级开挂学习路径(附教程+工具)https://blog.csdn.net/weixin_43982452/article/details/114134096

    物联沃分享整理
    物联沃-IOTWORD物联网 » ?学习嵌入式开发:多久? 哪些课程?

    发表评论