做嵌入式开发已经好几年,也算对这行有了点粗略的认识。可能很多新手朋友有疑问,到底要如何学习才能比较快地熟练掌握嵌入式开发呢?今天我们来抛砖引玉,看看高手的看法。
某位高人曾经说过,成为高手的路径只有一条,那就是:多做,多思考。用到嵌入式开发,可以理解为:多实践,多总结经验。我自己认为,如果要做什么行业,就一定要用全力把它做得最好。今天只是从大的层面上讲讲需要注意的一些方面,并不涉及具体的问题。且嵌入式开发也有很多具体的方面,某些工作可能和PC开发流程一模一样,没有什么区别,这里说的主要是和具体的硬件打交道比较多的开发工作。
兴趣很重要
对某个行业有了兴趣,才能全身心地投入它,发挥自己的最佳状态。做嵌入式开发,培养对计算机和消费类电子的兴趣是很必要的。有了兴趣,才能够自发地学习大量相关的知识,打好基础;有了兴趣,才能够主动了解许多和嵌入式相关的产品、新闻,甚至是有关人物,并从这些东西引发自己的思考,也有可能在不经意之间做出影响自己的关键决定。我自己的经验是,有兴趣的东西可以过目不忘,没有兴趣的东西记十遍可能都记不住。
当你拿着一台智能手机,能够关注它用了什么CPU,同时清楚常用软件在它上面会跑出什么样的效果,是快是慢也能很快自己分析出原因,那就说明你对嵌入式有了真正的兴趣。
你需要熟悉理论虽然这是一个实践比理论更重要的行业,但是,嵌入式开发也不是每个人都可以做的,它对理论知识的要求也很高。很多学生都想毕业之后从事嵌入式开发,但是他们又缺少实践的机会。怎么办?趁在学校的时间,多看书,掌握点理论基础吧。计算机体系结构,C语言,数据结构等知识尤其重要。
学校一般会学x86的体系结构,但是毕业之后可能会从事ARM、51单片机等开发。但是,即使寄存器变了,即使指令变了,核心的内容都是一样的,对x86很熟悉的话,学习起来ARM更容易,因为ARM是RISC体系结构,更简单。而且,学的过程当中,自己会不经意对比x86和ARM的异同,加深对体系结构的理解。
嵌入式开发一般都以C++语言为主,部分用汇编或者C++。所以掌握好C语言是相当重要的。学C语言不是拿着谭浩强的书翻来覆去地看就可以了,也不是能够应付考试在卷子上写一段代码就可以了。一定要边看书,边练习。没有嵌入式开发环境,就在PC上面写一些小程序练手。比如,对下棋感兴趣的人,就可以写一个简单的五子棋程序。
也许实际的开发当中,一般人都用不到多复杂的数据结构。比如,对于90%以上的开发人员来说,很少会用到树和图的,用得多的也就是数组和链表。但是掌握好数据结构和基础算法很有必要,会让你在看代码的时候,理解得更快,自己写代码的时候,效率更好——做嵌入式软件不光是堆砌代码,也是在设计一个产品,当你在采用某种算法的时候,心里也要清楚采用它的原因,抛弃其他算法的理由。
嵌入式设备上的 *** 作系统纷繁复杂,简单的只有连OS都谈不上的控制程序,复杂的诸如智能手机上的复杂OS。大部分嵌入式产品,都需要自己设计或者移植OS的。幸好现在有Linux出现,让一切都相对容易。没事的时候,找本Linux的书来翻翻,装个Linux来玩玩,还是大有裨益的。
必不可少的实践如同卖油翁倒油一样,如果天天看他熟练倒油的过程,自己却不练习,永远也不会成为这方面的高手。嵌入式开发虽然不仅仅是“无他,唯手熟尔”的过程,但是,光看理论的书也掌握点算是皮毛的概念,真正接手开发工作,做实际项目,才是提高水平的正确途径。
如果学生朋友想毕业之后就能顺利从事这个行业的工作,最好是在校期间能够找到一些实习机会。参加培训也是一个方法,但是相比较而言,能够有实习这个免费培训机会,何乐而不为呢?学得更多(除了技术,还有其他方面的收获,这是培训学不到的),可能有时候还有一点收入呢,呵呵。实在找不到,花几百块钱买个最便宜的开发板(网上有售,含相关源代码)来玩玩也不错。但是无论如何,都要主动尝试寻找更多的实践机会。学校能够学的东西毕竟是有限的。
嵌入式开发的工具,无论是硬件工具,还是软件工具,都很多很多。接触某个具体的工作,就会用到相应的各种工具。掌握工具需要一定的时间,但是总的来说,工具的使用掌握起来还是很容易, *** 作它们和 *** 作普通软件也差不了多少。知道什么时候该用什么工具,怎样地充分利用它们来提高开发效率以及程序的运行效率,这才是问题的关键。几年工作经验下来,我们需要提高的是对做的行业的了解,分析问题解决问题能力的提高,至于会用什么什么,这个虽然也比较重要,但是在这个工具更新和房价上涨并驾齐驱的时代,并不是夸奖炫耀的资本。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)