前段时间有一个小伙伴找到我说自己参加嵌入式培训后悔了,前后花了将近1万多,还是贷款那种。
据他描述后悔的原因是没学到东西,学的都是比较浅层面的,那我的理解就是开发板的水平。
这样还不如自己买个开发板学习,成本*多也就几百块钱。
但是,这个说不好是谁的原因,有可能是学员自身没认真学习,也有可能是培训机构课程内容确实存在一些问题。
所以,现在嵌入式培训到底有没有用,这个问题客观来说是没有答案的。
我们不妨从另一个角度来思考这个问题:怎样的培训才有用?
根据我10年从事嵌入式单片机开发的经验来说,主要要能解决2个问题:
解决用户需求。解决企业需求。解决用户需求就拿我们无际单片机编程来说,我收集过一些学员的需求,他们有的纯粹是为了兴趣,而有的是为了参加电赛做准备,大多数都是为了找一份不错的工作。
这五花八门的需求,我们要怎么去解决?不着急,我们继续往下看。
解决企业需求企业需求什么?如果你在这个行业没*的经验还真的想破脑子都想不出来。
没关系,无际告诉你。
不同的企业啊,他们的需求不同。
如果是大企业,比如说某为、某讯、某巴巴、某米、某度等等,这些企业一般会评估员工的综合条件。
首先就是你的学历,怎么样至少也得本科或者以上吧,除非你技术真的牛逼到没你公司少赚1个亿。
为什么会这样呢?
大企业各方面资源都很丰富,很多牛人都愿意拥抱他们,所以他们有筛选的资本。大企业需要形象,就像你开比亚迪F0,别人开大奔,从人性的*角度,肯定觉得开大奔得更牛逼对吧?下面说说中小企业,中小企业一般比较看重个人的能力,如果你做技术,技术就是你的核心竞争力。
所以,不同的企业规模需求是不一样的。
但是他们有一个共同的需求就是,你要有实际产品开发经验。
这个实际上也是用户的需求,我参加培训无非就是能获得独立开发产品的能力。
针对这个需求,我们再回归到培训课程内容本身,是不是就很好去评估了?
现在很多培训机构都打着包就业的噱头来吸引学员报名,至于效果怎么样就不知道了。
这也不是*重要的,包就业本身就存在很大的想象空间,安排你去打杂也算是就业。
培训的意义一定是在于帮你解决根本问题,也就是给你赋能,让你能真正拥有开发产品的能力。
所以,我觉得*好的学习方法,就是通过实际项目去学习。
这些项目不是各种模块拼接,然后按照例程写个程序实现功能就完了。
拿单片机开发的产品来举例,一个合格的项目必须具备以下几个条件:
首先我们从硬件的角度:
1.电路板的尺寸要符合外壳要求。
2.整体的成本
3.产品的功耗
要满足这些需求,再简单的产品做起来也没那么容易的,比如下面这个无线门磁探测器。
硬件解决,接下来就是从软件的角度,我们在做产品程序部分的时候,不单单只是考虑到实现功能而已。
如果是用51这种低端的单片机倒是没什么要求,因为ROM很有限,一般代码写得越简单越好。
如果是用STM32单片机做复杂的产品,这个时候对你就是一种考验了。
比如说下面这款物联网网关,别看硬件简单,没几个元器件,工作量都在软件上。
这个代码量的产品,光考虑实现功能是远远不够的。
你还需要考虑程序架构和算法,如果你没一个好的程序架构,代码写多了就会碰到各种坑,比如说功能之间相互冲突。
好的架构妈妈再也不用担心项目经理处处刁难你。
客户改需求,产品改功能,这是很常见的事,经理每次让我改功能,我都想抓他到马路中间罚站半个小时,但这明显是玩笑话,再烫手的砖也要硬着头皮搬。
话又说回来,如果你能接触这种产品并且深入学习,不比你去培训个单片机啥的实用吗?
有这种项目经验还怕找不到工作吗?
所以,我觉得培训课程内容的重点不在于单片机或者ARM,而是在于基于这个芯片的应用上。
通过项目应用顺带把芯片学会,这才是高效的实用的学习方法。
经历了实际项目的毒打,你才会成长得很快,如果你用开发板来学习,突然让你做个项目的时候,依旧是"废人"一个,无从下手。
项目积累多了,下一个项目你在框架上就知道怎么去解决了,剩下的就是细节逐个突破。
也不可能说你做3-5个项目就天下*了,什么项目给你一下就能做出来。
不同的行业,有不同的*优方案,还涉及到电子以外的知识,比如说物理学、生物学、化学。
项目经验是你扎实的基础,在这基础上,你能比别人更快地找出解决方案,做出产品。