嵌入式学习应该怎么学,是否应该上培训,如何权衡?
嵌入式应该怎么学?
嵌入式的基础大概可以分三块:操作系统及语言、应用处理器(arm等)、外围电子设备。常用的语言是c、c++功能的编程是c,界面编程用c++。为什么操作系统和语言放在一起呢?语言是一系列的命令,而这些是建立在操作系统基础上的,对操作系统越了解,代码就更加的高效简捷,语言就是对操作系统的命令的重新组织。处理器,即单片机的51或凌阳系列或者现在流行的arm系列,单片机系列与arm系列分别在低端和高端市场占有较大的份额,学习入手时只需研究一种就可以。外围电子设备,即是控制的目的设备, 通过编程告诉处理器怎样给他们信号,不同的公司由于性质不同,控制的目的设备也不同,在这方面要有一定的电路基础,不过不是重点,到了公司硬件工程师会给你图纸的,能看懂图纸就可以。
学习方法如下:
基础的不应该涉及太多,要学会化繁为简、步步为赢,从能够接受的入手学习有兴趣也有动力。
计算机学科最好是实践为主导的进行学习,当然,前提是你应该这以前接触过计算机,最起码会一种语言或学过计算机原理。现在很多高校毕业的大学生的基础其实不错,该了解的都了解了,就是没有深入的。
如果是这样,基础不是问题。你学骑自行车有所谓的基础吗?其实就是骑着骑着就会了。
1 如果想入行开始进行学习,那么先不要考虑培训,从书店找一本类似从零开始学习的书籍(别一下买一大堆,会后悔的),先读一下,体会一下这一行究竟是做什么的,什么样的流程,用什么样的方法做产品。人员组织如何,自己适合做哪项(如硬件(fpga)、信号算法(dsp)、软件(linux底层开发)),推荐linux操作系统底层或应用开发,这方面比较适合一般的软件和电子专业大学生。看不懂也没有关系,大概了解就可以了。
如果看的有感觉,认为自己可以做,那么还等什么?入手吧,不要强调基础或者理论,大家都是干出来的,不是学出来的。
2 找个便宜的开发板,现在的开发板掉了很多价,学习成本也降低了许多。找那种书店和网上成熟资料最 多的,从440bx到现在2410、2440,总之哪种资料多就买哪种,不要去追流行,老板子只要资料充足也可以的。别迷信什么地方能够教你做板子,让你做也只是当个焊接工,不知其所以然的。别想一口吃个胖子,找准入手点,坚定的去行动,不断的去尝试。这个阶段很重要,自己搭建实验环境,一个个的做实验, 对许多的东西不了解,困难是很多的,但不是不能解决,网上该板的论坛和群很多的,许多人在自学。有问题可以在那里发问。但更重要的是,要学会如何利用搜索引擎,利用书店、图书馆的资料来解决问题,学会自己解决问题,这是生存的一项重要技能,没有什么问题是解决不了的。
在这个过程中不断的尝试,照着板子的资料,利用bsp(板级开发包)和芯片资料,把手头的实验一个个的做完,可能第一个实验要做一个月或更长,但是在此期间学到的东西却是价值非凡,因为你将学会了如 何利用各种渠道独立解决问题。
在此期间要注意几点,一是不要随便的买太深入的书籍,去钻研高深的东西而忘记了眼前该做的事情,二要提高e文的阅读能力,芯片资料多是e文的,周立功公司翻译过一些,利用电脑通过中英文对照进行学习,每天坚持看几页,时间长了就可以直接看e文资料了。三是不要心浮气躁,遇到困难就停下什么都不做,遇到困难就绕开,再往前走那时的问题就不是什么问题了。
学习就是这样,不断的行动,不断的尝试,渐渐的学会了自己解决问题,就学会了如何自学。有了这样的态度,没有基础,理论差都不是什么问题了。把开发板的实验做一遍,再去书店看看,很多的书就像白开水一样,翻翻而已。国内的嵌入式培训也就到此为止了,所谓的项目,并不比你在开发板上做的难多少。
这个时候,你已经有了一定的基础了,可以找工作了,工作中学习更加有目的性,是个很好的选择。如果还想往深研究,可以选择一项自己感兴趣且能够找工作的方向,如操作系统、网络电话、路由、防火、智能建筑、消费电子等等,根据自己的情况进行选择,不可能都学的。
3 选择好一项,进行深入的研究,自己去找相应的外围设备,利用自己的开发板去做产品吧。永远都是实践第一。
上面没有提到linux内核或者网络知识,也几乎没有提到编程的重要性,他们当然很重要,但是在基础的学习中,不建议从它们开始入手,否则造成的局面不是陷入泥潭,就是学了半天不知道在学什么,使学习的积极性受挫。编程是随着对编程的环境和目的了解而提高的,任何语言都是工具,因此有了一点基础后不必专门学它,随着实践会不断提高语言的应用能力。linux内核的掌握更不应该是初学者该做的,开始学习就是要利用它,涉及一些初步的就可以,随着编程遇到的问题以及解决的过程,会不断的深入认识操作系统,也有人专门研究,意图更加贴近产品的应用,那至少应该是有目的的研究。网络、协议、音频、 视频、usb以及其他的应该在有了一定的基础之后,有目的的进行研究,也非初学者直接涉及的。还有就是人们常说的数据结构,专门学他你会成为教授的,串、链表、堆、栈、树等什么时候看到了不懂拿来参考书看看就行,找到你用到的知识,而非专门研究。做什么事一定要知道你眼前的目的是什么,别掉进研究的苦海中。
综上所述,大概学习分三步,几乎所有的嵌入式培训都只能带你道第二步,就是大部分时间重申基础,最 后在教你在板子上做几个实验,和你自己买的板子和做实验是一模一样的,就业也只是推荐就业,和自己找差不多。高级专业应用的课程都放在了短期培训,时间大概三天或半个月。费用从几千到一万多,培训的状况就是这样。如果自己买板子及外围的话,加上书籍和上网,费用大概是1000-2000左右,自学到有工作能力的周期大概是3个月到半年左右。如果有基础的话,一两个月就可以。就业尽两年还可以,以后就要看水平了,能够适应环境独并且能够立解决问题的人,就是人才,如果你是人才,那就没什么可怕的了。
如果你一定要培训的话,就应该知道所有的培训都只能带你入门,就业什么的要是能够签订就业协议的话,也可以考虑。因为任何培训机构出来,除非你的自学能力十分的强,否则找工作仍然是个很大的问题。
去培训机构之前要用一两个月的时间自己学习些初步的知识,好让自己有鉴别能力。与培训机构的咨询师 面谈的时候,他们说的话基本不要相信,一定要去找找过去学完的学生问问,他们能教道什么程度,就业如何解决的。他们才说实话(但别找到他们的托,嘿嘿)。当然,也不一定那么可怕了,只是不可没有防人之心。
写了不少,其中许多废话,文笔也差,望大家见谅。上面写的就是我大四之后自学嵌入式的一些感触,走了许多弯路,在网上看到很多的朋友想入行,现在的就业压力都很大,大家都挺不容易的,把我的建议写出来,希望大家能够走好自己的职业之路,祝你们学业有成。
原文:http://www.cnblogs.com/ZXNblog/p/4004868.html