正文
大家好,我是bug菌!
很多朋友经常问我,做嵌入式开发很久了,而到了实际的项目中还是感觉力不从心,写出来的代码也什么艺术感,怎么办?有什么好的方法能够突破这道槛,然后快速提升吗?
这位朋友的表达给我一种感觉 : 从事嵌入式开发越久,技术水平理所应当就要达到某个水平。
而在bug菌所了解的圈子里,大概率的工作10来年还抵不过3~5年的伙计~甚至有一些连一些基础的概念都开始模糊了,或许现实实在是太骨感吧。
所以想提升技术水平不应该光靠时间来堆积,而是自己主动的根据自身情况达到一些目标,比如修补自身所存在的知识漏洞,针对某些问题或者设计总结出自己的一套解决方案,等等。
但这一切并没有那么简单,每个人在某个行业都是从小白开始的,bug菌也是,想要提升,不仅仅要花时间、花精力去摸索,更重要的是掌握好的方法。
今天bug菌把目前自己嵌入式学习的一些方法分享给大家,先不说对每个人都适合吧,至少是我多年走走停停、弯弯绕绕总结的一些经验方法,总有借鉴和参考的意义~
1
小白前传
嵌入式软件必修课-C语言,它可是说是软件开发基础中的重中之重,对于一门编程语言无非就是定义了各种各样的规则来指导我们编码,这些规则就是我们常说的语法。
而C语言的语法在目前热门的几大编程语言中几乎算是最少的了,虽然C语言语法并不是很多,但是有了指针以后灵活度很高,稍不注意就容易掉入陷阱,变成软件bug,所以建议大家一定要有时间看看~
最开始bug写出来的代码也是经常漏洞百出,其根本原因还是码量不够,很多细节注意得不到位,代码稍微大一点就比较吃力,如果大佬在代码里面秀一些操作,就晕头转向了,当你看过那些书至少在编码或者阅码的过程中不会出现太多的语法盲点。
而现在C语言也在不断的融入一些新的特性和标准,所以考虑到不同编译器的可移植性,你还是需要去了解一下。
2
与硬件结合
经常很多朋友问我什么叫嵌入式软件 ? 怎么区分嵌入式软件与应用软件?我只想回答他:请在搜索引擎里输入“嵌入式软件”等,但是想想这样还是不太礼貌;于是某一天敲着敲着代码想到了一些答案。
“ 一种敲代码的时候想着硬件的软件 ”
“ 尽最大努力的压榨硬件的软件 ”
如果还没有这样的感觉,或许还没有达到这个层次,又或许你做得真的不是嵌入式软件。
3
资料要精
书籍不要贪多,认认真真看完几本就已经到了靠阅读获得提升的瓶颈,目前市面上的书籍一大半都是相似的,而且基础居多,一本一本的看无非还是围绕着那些相似的内容。
许多人以之前看过这本书为由而让自己去追求新书来满足新鲜感,须不知根本没有领悟到书中的精髓,难一点的部分总以为是书讲得不够详细,想找一本写得更加全面的书籍,而辛辛苦苦找到一新的书籍,精华部分却依旧难啃,知识水平很难得到突破~
遇到难以攻破的内容,应该分析自己有哪一块的知识漏洞,然后再进行填补,知识都是迭代的,不要想着一本书可以跟你全部揽阔。
不仅仅是书籍,其他的视频资料,文档也是类似的~
4
多重温
一个人看待一件事物随着他阅历的增多所看到的内容是不同,一台电脑摆在刚接触电脑的人面前,主要关注的是品牌、价格以及体验等等;而时隔多年,你有了一些电脑知识,同样一台电脑摆在你的面前,你会去关注它的内存大小,CPU类型等等具体的配置参数,同样读一本书也是类似的道理。
所谓"温故知新"bug菌觉得不是反反复复的看一本书,而是把你所学的知识拿去用,去落地,然后再回过头来重温,这样才会有更大的收获和启发。
同样重要的是,一定要重温“经典”,被广泛认可的资料,现在很多资料鱼龙混杂,要注意辨识~
5
多阅读优秀的代码
作为一名软件工程师,最终所有的学习都要落地,到软件编码中去,到工程实践中去,如果你写不出代码就多去阅读代码,然后在尝试着模仿。
而当你看不懂代码无非就是两个方面的原因:
1)知识、水平能力还没有达到代码编写者的层次~
2)代码写得实在不怎样~
所以bug菌一直跟大家说要学习优秀的代码;书籍、视频确实是我们获得知识最直接的途径,不过他们终究只是书籍作者的知识和经验总结,既然是总结,那么里面的知识一般都是浓缩、精简版本。
“浓缩就是精华”,这句话大家再熟悉不过了,但对于码农这并非是一种好事,做技术的一行代码就可以毁掉一切。
精华固然是核心,但盘根错节也是不可或缺的,而这些“枝叶”在书本、文档上很难跟你讲解清楚,甚至可以说讲不清楚,又或者说书籍作者觉得太简单,懒得跟你说;巧合的是,那些或许就是你所需要的~
所以做软件的我们要回归本源 -- 源码,只有你把源码与所学的知识对应上,才能做到大彻大悟。
当然有些理论知识还停留在理论阶段,如果可以的话,动手去仿真实验一下,编码测试验证一下,或许会有新的收获~
6
把脉
当然bug菌也是从那条路走过来的,深知读源码这条路是坎坷的,像Linux这样的大型操作系统都是一个团队在开发,一段代码一段代码的读,迟早要把自己玩废了。
而现在自己阅读代码量大一些的工程都只是“把脉”,并不需要你一句句的读,一段段的看,而是理清楚软件实现的思路和框架,具体的细节扫一遍即可,因为那些基础的部分你都可以单个徒手写出来。
当你在一个新项目中想要实现类似的设计就可以直接借鉴相同的框架,然后进行相应的填充即可,这样既可以全局把控代码,又能降低自己的学习成本,一举两得。
7
学习能力的提高
知识在不断的更新,技术也在不断发展,而头发是越来越少,年级也是越来越大,所以知识是学不完的,我们其实更需要的是获得一种快速学习并应用知识的能力。
大佬们为什么懂得那多,他们大部分不是每天抱着书啃着,代码敲着,而是掌握了一些抽象,归纳等手段,让自己用统一全局的眼光看待这些知识技能,这样学习的成本低且效率高,所获得的知识性价比也较高。
bug菌一直觉得只要你真的入门了嵌入式这个行业,说明智商上问题不大,唯独就是方法上需要改善~
为什么很多厉害的人都会去学习哲学?我感觉你在笑~
哲学不是死记硬背一些理论知识,也是高谈阔论,而是对社会和自然规律的总结和预见,不管做什么事情其实都承载着一定的思想,思想越是强大,自然才会走得更远~
最后
好了,今天bug菌就跟大家聊到这里,如果你觉得还不错,记得跟我点个赞再走~
推荐专辑 点击蓝色字体即可跳转
☞ MCU进阶专辑
☞ “bug说”专辑
☞ 专辑|手撕C语言
☞ 专辑|经验分享