嵌入式菜鸟发菜

  嵌入式开发也做了半年多了,感觉仍然处在摸索阶段,有太多知识要吸收和理解。相比自己的老本行WEB,有些力不人心,渐感悟嵌入式门槛之高,于是就想把塞在脑门里的一些啰里八嗦发泄些出来。

  做嵌入式离不开硬件

  大学期间的模电数电差不多是混过去的, 因此硬件能力比较差,前段时间为了D触发器还查了好多资料。 每到这种时候,都不自觉地会想去读研,继续深造、系统学习。 好在,读研还得考研,俺对政治课是深恶痛疾,所以这种念头很快就打消了。
  干这行的,写底层驱动非要与硬件打交道,所以经常有许多芯片文档要看,开始时看那些文档还真不容易,没办法把握住重点。不过随着开发工作中经验的不断增加,也渐渐习惯了看文档,多数重点还是能把握住的。

  理论知识需要在实践中巩固

  大学期间学习的许多计算机理论, 因为时间太长又没有实际运用,多半已经忘掉了,尤其是一些比较复杂的理论。 但嵌入式开发需要许多理论做指导,像操作系统原理、计算机体系结构等等, 由于没有太多时间复习看书,在这个过程中一般是边做边查资料的。 这个月下来,渐渐发现以前不是很明白的部分都清楚了, 唯一头痛的是怎么抽时间把这些理论知识系统地看一遍。

  重视方法而不是技术本身

  嵌入式的应用领域很广,几乎无处不在。 平常到随身携带的手机,伟大到卫星飞船,产品的形态更是千姿百态。由于它的专用性,在不同的应用领域,产品软硬件架构之间的差别会比较大。这就意味着技术人员在不同应用领域之间切换(改行)的成本比较高,一个搞手机出身的,某天突然转去做卫星,没有半年一年是不能入行的。因此在平时的学习过程中要不断总结和改进,重视学习的方法,才有可能在不同领域切换时尽快入行。也许有人要说,我不想改行,但是,谁能保证,哪天不会冒出一个更先进的通讯方式能取代手机?
  一个人的学习能力永远是赶不上技术发展的速度,随着市场需求的不断变化,产品所采用的技术也有可能随时改变,面对着五花八门的技术,现实中的你还可能再执著于原来的技术吗?在这个时候,如果学习方法不科学,势必会浪费大量的时间在熟悉新技术上了。总慢人家半拍,心里上不会好受吧。
  对于像我这样的菜鸟,我给自己建议,刚开始学的东西不要太多了,先做好做精目前在做的项目。通过一两个项目的开发后,能够对产品开发整个过程以及产品架构有一个较深的认识,最好能精通一些必要的知识和技能。
  现在我做的ARM7+uClinux的项目,我希望在项目大体结束时能够达到的一些目标有:熟悉ARM体系结构、熟悉ARM指令系统、熟悉板上各类硬件在Linux下驱动的开发、熟悉嵌入式GUI的内部原理、巩固操作系统理论等。也许再通过一两个类似的项目,以上目标就能达到纯熟,到时就可以花一些时间往横向扩展,玩玩CPLD、FPGA什么的,到那时就基本上很容易入门了;或向纵向深入研究,剖析Linux内核源码,自己动手写操作系统和GUI库。

  要学习的东西还很多

  嵌入式开发的门槛高,这可不是空穴来风。在产品开发过程中,不是单纯的硬件设计、布板、制板和软件编码、测试,虽然要掌握这些东西已经不容易了,但还有许多容易被忽略的东西,却是新手与老手的区别,比如对各种规范和标准的理解。
  嵌入式项目过程与通常所说的软件项目过程的一个最重要的区别在于,嵌入式项目涵盖的流程更多、更复杂,软件项目也是嵌入式产品开发过程的一部分。软件产品不是实物产品,而嵌入式产品包括了软件、硬件和结构件,因此在项目过程中增加了硬件、结构件的设计与生产的流程。

  多方扩充学习,提高综合能力

  不否认某个领域上的专家的价值,但个人更希望通过多方面的学习和扩充,拓宽视野和思维,提高工作效率。知识面广了,对同一个问题就可能想出多种解决方法,对同一产品的方案更有可能想出一套创新的方案,想到别人想不到的。
  此外,日常生活工作中,重视时间管理、善于工具使用,能节省不少时间,做到别人做不到的。

  经验与前景

  经验对于项目过程来说非常重要。在设计阶段,设计人员可以根据经验判断设计的可行性;开发与调试阶段,开发人员可以根据经验快速地解决问题;在管理方面,经验的重要性就更不用说了。经验可以为企业节省成本、降低风险,使企业有能力在竞争激烈的市场上快速推出产品抢占市场、打败对手。
  人总是会衰老的,在衰老过程中学习能力会不断下渐;如果不是靠经验吃饭,那么在衰老的过程中就很快被年轻的精英赶超,渐渐被淘汰。
  个人认为,不论在哪个行业,靠经验吃饭的职业才有前途,嵌入式开发也有这个特点,所以对个人发展来讲,前景看好。加上这个领域本身就有前途,因此从事这个领域开发工作的前途无量。

  发泄完毕,睡觉!

— EOF —

发表评论

电子邮件地址不会被公开。 必填项已用*标注