嵌入式时代已经来临,你还在等什么?
最近经常有用人单位给我打来电话,问我这有没有嵌入式Linux方面的开发人员,他们说他们单位急需要懂得在嵌入式linux环境下的软件开发人员,我回答说,现在每年毕业的大学生那么多,还招不到合适的软件开发人员吗?他跟我说,毕业大学生虽然多,但大部分都能力不够,不能达到他们的工作的要求。
该公司HR的一句话说出来我们现在的大学教学和大学生就业的现状:一方面每年那么多大学生毕业找不到合适的工作,另一方面很多用人单位和企业又找不到合适的人才。造成这种现象最基本的原因是学校教育和社会需求的严重脱节。其他的专业和行业我不清楚,但是对于嵌入式专业和嵌入式软件行业来说,通过与多所高校的老师和在校高年级本科生,研究生交流,我还是有所了解的,高校的嵌入式专业的教学现状我在前一篇文章里仔细分析过,造成很多嵌入式专业的学生在毕业后,还是很难达到用人单位的要求最主要的原因在于高校在嵌入式教学方面重理论和轻实践,很多嵌入式专业的老师也没有实际的工作经验,这样培养出的学生可能让他讲起来头头是道,但是让他去真正编写,调试一个应用程序就傻眼了,不知道从何下手,因为他们在学校的学习可能从来就没有老师带着他们实际调试过嵌入式程序,也没有机会让你去调试嵌入式应用程序,那些看起来非常不错的嵌入式实验箱大部分时间都躺在实验室睡大觉,只有在上实验课的时候搬出来让大家看2眼,摸2下,还没有弄明白怎么回事,又要收到实验室睡大觉去了。这样的教学模式,如何能培养出一名合格的嵌入式工程师呢?出现企业找不到合适的人,大学毕业生找不到合适的工作也就不奇怪了。
嵌入式专业是一门实践性非常强的学科,只有多动手,多实践,多编程,多调试,多看书,多思考才能真正掌握好嵌入式开发技术。
现在很多同学也意识到了学校培养模式和社会需求脱节问题,有一部分同学也先行行动起来,开始注重培养自己的实际动手能力,培养自己实际分析问题,解决问题的问题,培养自己在嵌入式专业实际编程,和调试程序的能力。但是嵌入式专业不同于其他学科,嵌入式专业是一门综合性非常强,涉及知识面非常广的学科,对于初学者来说,面对那么多教程,课本,那么多知识点,往往不知道从何处下手,不知道哪些是重点,哪些不是重点,这些知识点之间有什么关联,一脸的茫然,然后东一榔头,西一棒子,折腾了几个月甚至大半年后,还是找不着学习嵌入式的方向,还徘徊在嵌入式开发的大门之外。
那么,如何从零开始学习嵌入式开发技术, 进入嵌入式开发大门呢,笔者根据自己的嵌入式学习经历和多年的嵌入式linux教学经验,谈谈自己对嵌入式学习的一些想法和意见,希望对大家有所帮助。
一、练好基本功
嵌入式系统专业是综合了计算机硬件技术,计算机软件技术以及电子电路技术的一门综合学科,所涉及的内涵和知识非常广泛,包括:数字电路,模拟电路,计算机组成原理,单片机基础,C语言基础,操作系统,数据结构,编译原理,计算机控制,计算机网络等知识。
在真正学习嵌入式开发之前,首先要打好基础。其中最重要的是C语言基础、数字电路、计算机组成原理三门课程。对于C语言,至少能单独编写调试一个3 ~ 500行的程序,能够了解C语言的基本语法规则,基本语句的使用,理解指针概念并能灵活使用各种指针。
计算机组成原理要能理解组成一个计算机系统的几大部件,计算机系统的结构,理解系统总线,理解处理器和计算机外部设备的关系,处理器和计算机外设是如何协调工作完成某一项功能的,计算机软件和硬件是如何分工协作完成某一项任务的,理解软件是通过寄存器来控制硬件的。
数字电路,模拟电路要了解其基本原理个概念,能看懂简单模拟、数字电路原理图。理解数字电路中的寄存器,时序的概念,能看懂芯片手册和时序图。对于其他基础课程,重点要理解其中的一些基本概念,如何使用等等。
对于电子,自动化,通信,计算机类专业的学生,在大二、大三开设的专业基础或专业课程中基本包含了以上的大部分课程。因为缺乏实践,可能学得不是很深入,但是一些基本的概念和基本知识应该还是有所了解,针对一些薄弱环节,自己稍微加强学习一下,基本上已经具备了学习嵌入式开发的基础。在嵌入式基本功学习阶段,最重要的是C语言和单片机基础,最好是能用C语言开发一个小的单片机程序,例如用C语言实现单片机和PC的串口通信,用C语言控制LED等显示,用C语言控制数码管显示等小程序。在这个期间需要的学习工具就是单片机51学习开发板。
二、嵌入式Linux应用开发
嵌入式开发
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)
- 嵌入式系统实时性的问题(06-21)
- 嵌入式实时系统中的优先级反转问题(06-10)
- 嵌入式Linux系统中MMC卡驱动管理技术研究(06-10)
- FPGA的DSP性能揭秘(06-16)