适用人群
整体来讲学历上需要大专及以上,这里从招聘条件上可以看出。对于大部份理科生来讲,入门都是没有问题的,只是时间长短不同而已(排除不花时间学习的同学)。学校里学过一点C 编程,想往开发方向发展,经过有效训练,都有机会进入这个行业。
最佳入门路线
进入企业、社区,一边工作,一边向大佬学习。
嵌入式入门难点
- 环境搭建较难,大多都在linux 操作系统环境下开发。学校里较少专业会涉及。
- 知识体系多、杂:涉及编程语言、操作系统、行业应用、芯片、硬件。
- 无合适的教练,遇到问题时毫无头绪,需要花较长时间过度。
- 学习周期长,进度慢,容易导致放弃。
知识图谱

基础知识
包括 C 语言,Makefile,Linux 常用指令等。ARM 单板开发
重点理解 C 语言在嵌入式开发中的应用,ARM 基础知识, ARM 基础模块,原理图、硬件电路常识。ARM+RTOS
学习RTOS 是学习简单操作系统的基本使用,为LINUX操作的学习打下基础,同时RTOS也是企业中经验用到的技术。ARM+Linux
Linux系统用于复杂的产品开发,大部分开发者为驱动开发,这里将重点介绍Linux 驱动开发.Linux应用
Linux 应用并不是重点内容,但了解Linux 应用对内核开发来说及其重要,Linux 内核为应用提供服务,搞清楚内核与应用之间的设计尤为重要.shell 脚本开发
Linux 应用并非全是C,C++,java 开发应用,脚本语言在开发中经常使用,由于Linux 默认支持脚本语言,其不用编译直接运行。常用开发工具
比如git,vim,gdb,这些工具边学边用,可以很快上手。Qt 开发
Qt 作为跨平台桌面开发框架被广泛使用于嵌入式产品中,在嵌入式开发过程中,时常会做一些桌面工具,甚至参与开发商业软件。Qt有C++版本及Python 版本。这里介绍python版本,开发一些有用的工具及测试软件,有助于提升综合实力。
关于开发板
由于学习环境的搭建(比如开发板)受到限制,大多数初学者不具备硬件知识,或者开发板硬件的问题,导致学习难度增加。本文将从虚拟环境出发,学习嵌入式开发知识与企业组开发经验.在企业中都是在开发板上工作,具体项目硬件不同。
初学者有条件的情况下,可以购买资料多的开发板(比如stm32的开发板),对嵌入式开发有直接的了解,实际上在用过一段时间开发板后,在虚拟环境开发区别并不大,而且更容易。
心态
开发涉及知识图谱是一个完整的体系,并非要学完才能做项目, 整体来讲处于一边开发,一边学习,过程中会遇到不理解的技术及知识点,这都很正常,找到一位好的导师帮助提升分析问题的能力,这很重要。同时开发工作并不像学校中的考试,学完一期内容,最后考试。开发更像是一边学一边考试。