大家好,我是杂烩君。
一位朋友问了这样一个问题:
嵌入式技术的范畴很广,不同地行业可能涉及到不同地技术。如:
不同的嵌入式产品,需要的技术不全一样。但所需的基础技术都是差不多的。
每项技术可能有着相应的开发岗位,这些岗位实际可能不全叫嵌入式软件岗,但这些岗位大多都是嵌入式软件工程师 + 特定知识的学习之后就可以胜任。如:
学嵌入式要学到什么程度才好找工作呢?
我认为是这些点:
基本掌握嵌入式必备的编程语言。C语言为主,C++为辅。在资源有限的情况下,大多数嵌入式产品还是使用C语言为主的,特别是底层驱动开发。上层应用开发大多用C,在一些资源比较充足的平台中,也会选择使用C++来进行开发。
补充编程语言的知识时,除了掌握语言本身的知识之外。还需要同时学习:编译、构建、调试等方面的相关知识。这类很重要的知识一般C语言课程都没教:
基本掌握嵌入式处理器的基础知识。嵌入式处理器种类很多:MCU(微控制器)、MPU(微处理器)、DSP(数字信号处理器)等。MCU,也就是我们常说的单片机。
初学期,重点放在单片机的学习这一块。
理解整体框图、掌握基础外设如:GPIO、UART、TIM、ADC、DAC、I2C、SPI的裸机编程及相关原理、应用。
基本掌握操作系统相关知识。
基本掌握必备的开发工具。
上面几点都可以通过一些技术资料进行学习。这一点则需要需要在实战中锻炼,比如自己找一些小项目来做,一来可以把上面列出的几点内容给完整地串起来,二是在做项目的过程中会遇到很多问题,通过不断解决这些实际问题可以积累一些解决问题的经验。
工作之后,知识储备该有的都有了,大家最后拼的也都是解决问题的经验、能力。
我觉得牢牢地掌握这些99.99999%的概率都会用得上的嵌入式软件基础对找工作才比较有利。其它一些技术可以再用的时候再去了解、学习。
特别是一些行业相关知识,可以入行之后再进行学习。如果你一开始的目标就很明确,要在某一行、某一个方向进行深耕,也可以提早学习相关知识,早些积累一些优势。