嵌入式开发工程师需要具备哪些素质和技能基础?
嵌入式开发工程师需要具备哪些素质和技能基础?
AI已经从一个科学的愿景变为人们的口头禅,并开始影响我们的现在和未来的生活,机器人,无人驾驶汽车,被AI加持的智能电子设备已经和人们的日常生活密不可分,嵌入式软硬件开发已经经历了十几年的历程,但是高级人才依然是非常稀缺,其中的原因之一就是嵌入式开发需要的知识面非常广,把相关知识面中任何一个领域拿出来,都可以让一个人终其一身来钻研。更不用说要在这些集大成者当中再诞生一些优秀的领军人才。但是,任何优秀的人才都是要有群众基础的,只有越来越多的人开始关注和投身到嵌入式开发的队伍当中,这个行业才能更加蓬勃的发展,当然这个需要过程,更需要机遇。而中国的高速发展提供了这样的机遇,也让越来越多的非专业人士,在兴趣的趋势下开始学习嵌入式的开发。今天就来聊一聊嵌入式开发需要具备的素质和技能基础知识包含哪些!
- 自学能力,目前的嵌入式开发工程师一般有两类人,一类是学电子工程, 通讯工程的硬件专业毕业生,这类人对底层硬件知识扎实,不过对系统和前端,包括应用层面有点力不从心。另一类是计算机软硬件专业出身的人,对计算机相关的硬件和上层应用和操作系统有优势,但是对底层硬件端口,电路,芯片等了解不深。无论是哪一类,投入到嵌入式开发都需要全面了解。即使现在有嵌入式开发专业毕业的工程师,也未必能对所有的领域了解和掌握,在嵌入式开发的这条道路上,只有拥有了超强的自学能力,才能不断前行。这里我很赞同的一种学习方法就是以问题为导向的学习方式。虽然平时的积累很重要,但是不可能你遇到的所有问题都是你之前学习后者接触过的,为了解决特定问题而迅速寻找资料和案例的学习方法必须掌握。现在网络如此发达,基本上大部分的问题都可以在网上找到信息,至于如何从这些信息中去糟粕,提取精华,也是自学能力不断提高的修炼过程啊。
自学能力是一种思维习惯
- 英文能力,主要指阅读文献和使用软件。不得不说,无论是电气工程,通讯工程,计算机软硬件,哪一门不都有大量的原理,协议,标识符,标准,语言等都是西方国家的科学家的研究成果,英文则为标准的语言,从日常的公式计算,芯片引脚的标号,都是英文的缩写,再到各种通讯协议,标准,到各种计算机语言都是英文为基础的,不掌握好英文,至少你学习起来会很吃力。虽然现在的翻译资料已经非常多,翻译软件也不少,但是吃别人嚼过的东西,总不是那么的原汁原味,更何况如果你依赖翻译的资料,如何判断翻译的东西就一定准确呢?再者翻译要耗费时间,作为嵌入式开发人员,需要掌握科技的第一手资料,等不及别人来翻译。将来如果中国的开发工程师有好的项目,也需要和国际开发者分享和交流,毕竟开源是趋势,英文不好不行啊。
- 动手能力,思考好了,就需要动手实践。无论是通过动手实践来加强对理论的学习,还是把图纸项目落实到实物。只有实践才能做好嵌入式开发。因为嵌入式开发本身就是软硬件的结合,所有的软件最终都要通过操控硬件来达到实现某种功能的目的。再好的设计如果不能进行转化都是臆想。能实现功能的实践项目都是好项目,哪怕有很多bug和弊端,因为你永远有改善的空间。
动手实践是真知的唯一来源
- 好奇心和不满足的心态,对于某种事物的好奇心会驱动人不断的钻研,在钻研的过程中获得满足感,逐渐形成了兴趣和爱好,而不满足感让你不断的产生好奇心,从而达到持续的驱动力,一旦形成了兴趣和爱好,你将比任何依靠外力驱动的人有更高的产出和效率。好奇心和不满足是可以培养的,很多人说自己懒得去做,其实懒就是源于容易满足。任何动物都是趋于呆在自己的舒服区的,而有创造力的人一定不会满足于呆在自己的舒服区,创新和给自己挑战是他获得快乐的源泉,满足不断产生的好奇心才是他的“舒服区”。从这个层面上说,这类人也是喜欢呆在自己的“舒服区”,只是这个“舒服区”在常人眼里看来是痛苦地带罢了,或者是遥不可及的香格里拉。
“放纵“你的好奇心!
能够达到这种境界的人很少,也很幸运,因为他把兴趣和工作完美的结合在一起,这时候,让普通人所羡慕的物质回报对这些人来说是一种附属品,也就是在埋头享受自己不断创新,学习和满足自己的好奇心的同时,物质回报自己找上门,而且是丰富的物质回报。
毫无疑问,达到这种状态的人不多,确实让人羡慕,但是当你在羡慕别人的时候,别人正在用他的好奇心在学习,所以少一些羡慕,多一些时间来学习。任何大牛都是从基础开始的,只是他的学习效率更高,因为他没有时间来羡慕别人,也没有必要。
聊完了素质,做一个好的嵌入式开发工程师需要具备哪些知识技能体系
- 硬件方面
- 电路原理图,数字电路和模拟电路图的设计和原理
- PCB 设计,布局布线和元器件的选型
- 焊接技巧,虽然可以工厂贴片,但是并不是所有的项目都是大项目,必要的时候还是需要手工焊接的,因此需要具备一些基本的焊接知识和技巧,并熟悉相应的工具和焊料。
- 电子仪器的使用,万用表,示波器等。
- 软件方面
- 计算机语言,C, C ,Java,Python,汇编,Shell,Processing
- 单片机:Arduino IDE,51 / AVR Keil IDE
- Linux系统,操作系统,Kernel内核,有时需要自己编写硬件层面的驱动程序比如Bootloader来移植操作程序以及APP交互层面
- Git 版本控制:Github是编程人员交流和分享的平台工具,也便于自己维护项目管理和更好的开源合作。
- 结构工程
- 3D建模工具,FreeCAD,Blender,SolidWorks
- 3D打印
- 工厂手板模型
- 工业设计
- 工业设计是为了让产品的使用更加的符合人的使用,同时增加艺术美感,嵌入式的开发工程师不应该仅仅是理工男的逻辑是我,也应该是有美学的考量是艺术和逻辑的完美结合。必要的渲染工具如Keyshot, Alias,平面设计Photoshop,Illustrator, Coreldraw等需要略知一二
- 网页宣传,把你的项目更好的推广出去,吸引更多的人参与甚至是商业机会,让你的项目能获得更多的资源和关注度。
很多人可能需要花十年,二十年,甚至一辈子的时间来培养这些基本素质和掌握这些技术知识,但是绝不是说在具备这些素质和技术知识之前你不可以做一名嵌入式开发工程师,因为这是一个无止尽的学习之路,更是一种挑战自我边界的游戏。只要你有一个好奇之心和永不满足的态度,找准方向,加以时日,一定可以有所进步。当然如果你想把嵌入式开发作为职业,还是需要考虑清楚,一旦称之为工作,很多内驱力就变成了外驱力,而只有很强大的内驱力才可以支持你在这条创新路上不断前行!中国正处在一个发展的绝佳时机,如果你有一个科技强国的芯,一起加入这个行业吧,哪怕是从关注开始!