本帖最后由 wangjun88 于 2020-4-3 17:19 编辑
本文转自网络,如何学习嵌入式?你要是问100个人,一定会有100种方式。俗话说“师傅领进门,修行在个人”,入了嵌入式的门,如何学好,还要靠自己的不断琢磨。本文虽然有培训机构赚吆喝的嫌疑,倒是给出了一种不一样的思考,值得一读!
经常有同学问我:老师,我想学嵌入式,应该买哪个板子?
这个问题本身就是错的。 如果你去问10个买过开发板的人,至少有8个最终都吃灰了,而且他也没通过这个板子以及板子附带的所谓“教程”真的学会。 如果你去问10个已经学会成功进入嵌入式开发行业的人,可能10个都是有买过板子的,而且至少有8个买过不止1个板子,甚至可能有一大堆。 从事实总结:买板子是学会嵌入式开发的必要条件,而非充分条件。 实际上,买板子对学会嵌入式开发帮助非常小,不但不是充分条件,而且是充分条件之中并不关键的一部分。 那什么才是关键?要怎么样才能学会嵌入式开发? 知识是一张网
学习当然不只是学知识,也包括经验的继承,技能的训练,思维的培养和情感的交流等。所以这里讲的知识是广义的知识,包含了我们需要学习的这些全面内容。 我们说活到老学到老,指的就是学习(广义的,下同)知识。为什么要学到老?因为知识有很多。而且社会在不断发展,每天有变化,所以每天都在产生新的知识。所以为什么知识很多,为什么学不完?因为知识太多了,甚至生产知识的速度远远超过你学习知识的速度,这就是“知识爆炸”时代的特征。 我问你学习知识难不难,肯定大部分人都觉得“很难”。为什么难?我认为最主要原因就是:知识本身是网状,而我们学习却只能线性。 整个人类社会创造的所有知识是互相关联的,任何一个知识点他的前后左右都有各种相关知识点,最后所有的知识点连同他们之间的相关性织成了一张非常复杂的网。 这非常像一片浩瀚无边长满树的知识森林。里面的每一棵树就是一个知识点,树与树之间的空隙形成的路则是知识点之间的关联。 所以大家想象一下,这么浩瀚庞杂的一张网,如果把你丢到里面,还要让你走出来有多难?你每走一步都有很多支路选,而且每一步都很艰难(没学会一个知识点都不容易),而且你精力和时间有限(人的生命有限,且还要生活,能拿到学习的时间有限),这场游戏你最终能否走出来? 太难了。这就是为什么很多人终其一生都所得甚少,所知甚少,人生高度有限。其实不能怪他。因为看似社会给了你无数条路选,但其实你根本无路可走。 而嵌入式开发就是这样的一片知识汪洋。 救星在哪里
黄帝战蚩尤,胜负的关键就在于黄帝发明了指南车(传说)。 大航海时代的开启,很关键就是六分仪、经纬度和航海地图等技术的兴起,解决了茫茫大海上的“无路可走”。 那我们学习时深陷“知识”的海洋时靠什么走出去?这里的“地图”就是体系化课程。 什么是体系化课程?就是一整套的理论和学习资料。给你规划好了,先学什么后学什么,学到什么程度,并且有注解和导读,前人学习经验,有考试来考核和评价。这样一整套的体系化课程,就给了你一张标注了路线的地图。你只要按图索骥就能走出去。 譬如中国古代的四书五经科举考试等就是一套体系化课程。不管你认可不认可他,他确实有他的体系,所以古代君子要学六艺(礼、乐、射、御、书、数),这就是他们的考试科目,当然也会有相应的学习体系,有老师等。 近现代的教育体系是从西方发展而来的,大多数学科(譬如物理、化学、计算机、经济学等)也都是近些年随着发展慢慢建立起来的。虽然随着科技发展和不断探索也在不断演进,但其实主体基本都定了。 所以现在的小孩从没出生就有早教体系,3岁前有启蒙教育体系,3-7岁有幼儿园教育体系,然后是小学初中高中加起来所谓的K12教育体系,然后是大学阶段的本科硕士博士高级教育体系。这些体系都相对完整且具体,虽然有不少分支,但是不管你选了哪个分支其实都有确定的教材给你学习,确定的考试给你考核。 这就是你的救星。 所以别烦上学和考试,那真的是一种有路可走的幸福。 职业成长的真正困难
为什么说“有路可走”是一种幸福?你开始学嵌入式开发时就体会到了(其实学很多东西也都能体会到......)。大学课堂里给的体系和路线基本不靠谱,一个是路线不好(很多大学讲微机原理还是8086......),一个是与需求脱节(很多大学讲C语言的老师自己都没做过C语言项目......),一个是你自己上大学时也没好好学(净泡妹子打游戏了)。 总之就是各种因素,造成你快毕业要找工作了,或者已经毕业体会了职场不易想要学点真本事了,才发现嵌入式这玩意儿是真不容易学。 慌不择路听人说买板子,听说板子还赠送几个G的学习资料,感觉可以啊,赶紧弄个回来学。结果发现学不会,越学越糊涂,更慌了。 这就是典型的一觉醒来被丢到知识海洋里了,突然惊醒想要找路子出去。然后在身边随便捡了张地图就跟着走,这你能走出去才见鬼了? 好的课程远比开发板有价值
其实本文要告诉你的真相就是:学会的关键在于课程,不在于开发板。 嵌入式学习和其他的学习并没有两样。譬如拿学烹饪举例吧,好的课程就好像一个厉害的师父,而开发板就好像一把好刀或者一口好锅。你想学成好厨子关键是要有名师指点,教给你知识和技巧、经验,传给你方子,带你练就好手法,而不是买个好刀好锅回家自己琢磨怎么做菜。 有人说开发板也会附送课程啊,我按照这个课程不行吗? 其实也不是绝对不行,只是每个人学习能力和理解能力不同。我有个简单的公式给你解释这个道理。 假如说学会这个技术难度分数是10分,如果你用的教程质量是8分,那你自己的努力和悟性、毅力、学习能力、辛苦程度等只需要负担2分就过线了,你就学会了。而如果你找个3分质量的课程,那你自己就得有7分才能成功。 这就像学烹饪。有人在家照着网上的菜谱就能自学成才,开店做大厨大家觉得做得真好吃。这种人就是自身有7分(天赋+后天兴趣+生活所迫等综合因素吧),所以他随便找个3分的菜谱教程也能成功。而大部分人是没有7分的,可能才4、5分吧,所以你照着网络菜谱学不会,但是真的送你去厨师技校学几个月就学会了。 再说嵌入式,嵌入式本身难度比学厨师要难多了,所以嵌入式学习的学会线是100分,不是10分。那你自身有多少分呢?有人自带90分(譬如好学校,高学历,人家上学时就是学霸,脑瓜聪明学什么都快,晚上学到12点是家常便饭,连续学习完全不累,不用人催不用人管),这样的人你随便给本书就行了,几天就会了,一年后就是大神了。 还有人自带五六十分(大部分普通正常人都这样吧),你给他个好课程他就如鱼得水,顺利学会,两三年就年薪20万+了。但是你给他个垃圾课程,他就死活学不会,从入门到放弃了。课程只有20分,你让人怎么办?这样的垃圾课程只有学霸才顶得住啊。 还有人更惨可能只有10、20分(譬如英文不**,打字都不太会,计算机完全没学过,除了一腔热血什么都没有的),那你给他好的在线自学课程他可能都搞不定,因为基础分太少了,课程得有80甚至90分才能救得了他。但是在线课程自学这种方式限于形式很难达到这个分数,所以这种人更适合找线下培训班(当然是优质的培训班),被别人一步一步带着学。或者更适合转行找适合自己的行业,不是所有人都适合做嵌入式的。 这就是为什么开发板附送的课程很难让你学会。真正有价值的高分课程怎么可能白送你?
|