高级电子工程师一般分为高级硬件工程师和高级软件工程师。
硬件与软件是不可分离的,硬件需要软件来执行其程序实现具体功能。软件需要硬件做载体。高级硬件工程师需要具备的知识和技能:
1. 技能概要:设计、开发、调试、维护、管理符合功能、性能要求的硬件产品。
2. 高级硬件工程师需要具备的技能:按照计划完成符合功能性能要求和质量标准的硬件产品;根据产品详细设计报告,完成符合功能和性能要求的逻辑设计;根据逻辑设计说明书,设计详细的原理图和PCB图;编写调试程序,测试或协助测试开发的硬件设备,确保其按设计要求正常运行;编写项目文档、质量记录以及其他有关文档;维护管理或协助管理所开发的硬件。
3. 高级硬件工程师具备知识通信、电子工程、自动化、计算机及其相关专业,本科以上学历。
4年以上相关工作经验,2年以上硬件技术开发工作经验。精通硬件开发技能,掌握所属行业的相关专业知识和业务流程;熟悉硬件开发常用工具软件;有良好编程风格、文档习惯;有良好的英语阅读能力,能够阅读英文测试资料。高级软件工程师需要具备的知识和技能:
1. 高级软件工程师具备知识三年以上的软件开发经验;具备扎实的计算机软件基础,熟悉汇编语言和数据结构,并对软件工程有较好的理解;熟悉.NET/Java/C++/VB/Delphi等常用开发语言中任意一种;有Oracle、SQL-SERVER或DB2等数据库上的开发经验,熟悉SQL语言;具备良好的沟通能力,较强的分析、解决问题、领悟、归纳和逻辑推理能力和撰写开发文档;具有良好的计划性,团队精神,能承受工作压力并充满热情。
2. 高级软件工程师具备的技能在目前很多国内软件企业中,如果你是“高级软件工程师”,那么从需求分析,设计,开发,测试,甚至到客户这一条龙都可能由一个人来负责。
(1)软件开发与测试首先,软件开发是软件工程师职责的基本组成部分,这点应该没有问题。其次,此处的软件测试可分为开发前的驱动测试,和开发过程中的白盒测试。驱动测试用于分析子系统/模块内部逻辑,用于在开发之前暴露开发过程中可能遇到的大部分问题和对子系统/模块进行更进一步的划分;白盒测试是保证在项目交接到测试团队手中时,能满足基本的项目要求,即能够进行α测试。
(2)子系统/模块分析设计在软件架构师做完系统设计,项目经理进行项目分工后,项目就正式进入开发环节。这时候每个软件工程师会拿到自己负责的子系统/模块,首先要做的就是进行分析设计,其次才是开发。开发前进行分析设计,便于从整体上对子系统进行把握,提前隔子系统中的变化点和问题,同时也可以对子系统进行更详细的划分,用于制定个人的工作计划,与项目经理和软件架构师进行具体的沟通。
(3)撰写文档在进行子系统和模块设计的同时,要撰写子系统设计说明书;在开发过程中,要记录技术要点和发现的问题,同时如有需要,要修改子系统设计说明书;在白盒测试时,要记录每个Bug。
(4)定期主动沟通在项目开发过程中,项目经理需要和团队中的每一个人沟通任务进度,其主要职责是从整体上把握和控制项目的进度。那么作为团队一员的高级软件工程师通常会负责项目中很重要的子系统/模块,这些子系统/模块往往能决定项目的成败。因此定期主动与项目经理沟通解决遇到问题,与架构师和专家沟通解决技术难题就显得非常重要了。另外,就对个人而言,定期主动沟通也往往表现为个人的主动积极性,对于个人长远发展非常有益。
(5)持续学习也许有人会觉得学习应该与职责无关,狭义看来确实如此。然而,不断学习新知识,提高个人技能,于公司而言,能提升工作效率;于个人而言,益于职业发展。因此,工作之余,不管你职位如何,持续学习就显得非常重要且必要。
(6)带新人这点也许不是硬性要求,但国外有高手带领新手这样一种师徒习惯,也应该学习并发扬。通常情况下新人会与高级软件工程师协同工作,因此带新人一方面,带领新人可以有重新审视自己知识的机会;另一方面能够让新人更快入手,降低学习成本和提高工作效率;同时也能保持良好的人际关系。