在网上有很多关于学习嵌入式的文章,说实话,如果我当初入门看了这些文章的话,应该还没开始就选择放弃了。
很多说的都太夸张了,什么要学习模拟电路、数字电路、微机原理、汇编、C语言、C++、
Linux、ARM、单片机等等。
这里面随便抓一个出来足够让新手头疼,如果你真的这样去学习,等你达到找工作水平的时候,已经50岁了!
这就是典型的定位出了问题,先有定位再去规划学习内容,这样你才能以最快的速度学会。
嵌入式其实涵盖的知识非常多,给你三头六臂,一辈子都学不完。
但是从就业的角度分为几个方向:
其他的还有FPGA之类没接触过就不讲了。
无际从事了单片机开发10年,所以对这块最了解,下面我针对这个方向进行深度的讲解。
首先,可能你有个误区或者被误导。
就是很多人说单片机开发比Linux开发的工资低。
其实这不是绝对的,这两个方向产品的应用不一样,各有各的优势和不足。
单片机开发成本低,主要偏向中低端产品。
Linux开发成本高,主要偏向高端产品。
每个人技术能力是不一样的,虽然Linux开发的技术难度比单片机要高一些,但不代表每个人都能达到那个高度。
举个例子:
拿单片机开发来说,如果你能自己编写一个简易的操作系统,那比做Linux应用开发的人技术要强多了。
至少对系统内核的底层逻辑,你的认知深度比别人更深。
单片机开发也远远没有大家想的这么简单,大家之所以会认为它简单,是因为思维局限于单片机这个芯片而已。
真正的单片机产品开发,需要考虑的东西很多,不用领域的产品需要学习本行业以外的东西,比如说空气动力学,物理学,化学,生物学等等。
一些复杂的产品,比如说上了STM32这种级别的产品,实现功能的前提还需要考虑到程序架构和算法。
只有做过复杂产品的工程师才会深刻理解到架构的重要性,没有好的架构功能根本实现不了。
典型的体现就是各模块功能之间总是会冲突,怎么改代码就不能很好地解决。
所以就诞生了RTOS,帮助解决架构上的问题,当然这只是作用之一。
如果自己写一个程序架构,对工程师的能力是一个很大的考验,需要经过很多产品的沉淀,知道大多数产品的痛点。
并且能够通过自己掌握的一些编程高级技巧去解决这个痛点。
举个例子:
硬件驱动层的数据如何传递给应用层,同时要能保证很好的移植性。
这个时候使用回调函数就能很好地解决这个问题,而回调函数涉及到函数指针的应用。
对于这块,无际单片机编程提供了手把手的视频教程,教你怎么写一个稳定的程序架构去解决产品开发会碰到的痛点。
大家放心,这个教程和源代码都是开源的,直接找无际单片机编程拿就可以了。
Ok,扯远了,我们回到今天的主题。
嵌入式自学多久可以找工作?
还是针对单片机开发方向来讲解,在学习路径正确和学习时间充裕的情况下,3-5个月。
很多人觉得这不太可能,不要怀疑,曾经我就是自学4个月找到工作的,当时还走了弯路。
如果当初掌握今天所知道的方法,那会更快。
下面我给大家分享下怎么学习才能最快地找到工作。
我接下来说的方法跟市面上说的都不一样,可能会颠覆你的认知,你做好准备了吗?
这个方法就是以项目驱动去学习,就是通过做项目的方式去学习单片机。
你是否经历过以下问题:
1.通过开发板去学习的,当你学完单片机所有资源以后,一做项目的时候,你忽然发现,竟然无从下手。
2.在学习的过程中不知道学习的知识到底用在什么地方。
3.学习没有目标,不知道要达到工作的水平需要学到什么程度。
那通过项目去学习就能很完美地解决上面这些问题,通过项目能让你学会单片机,同时还掌握了做产品的思维。
最重要的,你的目标很明确,学习更有方向感和动力,不会因为学习疲劳而放弃,因为你知道把这个项目做出来就毕业了。
但是通过项目去学习也是有缺点的,就是项目不可能把单片机所有的资源都用上,没用上的可能就学习不到。
不过综合评估,这种学习方式还是最优的。
单片机或者其他任何芯片只是一个工具而已,真正难的是功能实现能力,也就是你的编程思维。
当你有一定编程能力的时候,再去学习你没用到的单片机资源那太简单了,有很多类似的教程和例程。
还有一点跟你息息相关的,就是你做完项目以后就有项目经验了。
这个也是企业比较看重的,特别是中小企业。
很多应届生找工作没有竞争力,其实缺的就是项目经验。
企业不愿意培养”吃白饭”的,很多培养起来就跳槽了。
如果你照这种方法去学习的话,我相信很快就能找到工作。