职位介绍之硬件工程师(提升宝典)_硬件工程师级别分类-程序员宅基地

技术标签: 职业生涯杂谈  控制器  物联网  嵌入式硬件  传感器  单片机  

笔者电子信息专业硕士毕业,获得过多次电子设计大赛、大学生智能车、数学建模国奖,现就职于南京某半导体芯片公司,从事与硬件设计,电路设计研究。对于学电子的小伙伴,深知入门的不易,特开次博客交流分享经验,共同互勉!全套资料领取扫描文末二维码


温馨提示:学而不思则罔,思而不学则殆。实践是检验真理的唯一标准!

目录

硬件部开发流程:

岗位职责

岗位必备技能

关注本职工作以外的事情

薪资和发展

部分招聘实例


首先,介绍下一个硬件产品的研发流程,如下图所示: 

  

硬件部开发流程主要分为如下几个步骤:

1) 市场调研:对即将进行的项目,需要进行市场调研。 

2) 立项:市场调研完成后后,首先需要进行立项工作。

3) 硬件总体设计:项目立项后,需要进行硬件总体设计。

4) 核心器件的实验及分模块的详细设计:总体设计完成后,需要对核心器件进行实验并且开始进行分模块的设计方案。

5) 电路、程序及外壳设计:核心器件的实验及分模块的详细设计完成后,进行电路、程序及外壳设计。电路、程序及外壳设计按照项目设。

6) 系统联调:每个分块部分调试完成后,即可进行系统联调。

7) 内部审核、项目验收:系统联调完成后,项目即可进行内部审核、项目验收。

    硬件工程师在研发团队中重要的一员,硬件产品的研发团队大致组成如下图所示:

硬件设计就是根据产品经理的需求 PRS(Product Requirement Specification),在 COGS(Cost of Goods Sale)的要求下,利用目前业界成熟的芯片方案或者技术,在规定时间内完成符合:

PRS 功能(Function),性能(perrformance),电源设计(power Supply)

功耗(power Consumption),散热(Thermal/Cooling),噪音(Noise)

信号完整性(Signal Integrity),电磁辐射(EMC/EMI),安规(Safet)

器件采购(Component Sourcing),可靠性(Reliability)

可测试性(DFT: design for test),可生产性(DFM:design for manufacture)

岗位职责

硬件工程工程师的本职工作,如下图所示:

硬件工程师可以大致分为如下四个阶段:

初级硬件工程师:在别人的指导下完成阶段三、四的部分,这个是应届毕业生入职三个月基本可以达到。

普通的硬件工程师:独立完成阶段三、四的工作,一般工作 1 到 2 年即可。

资深的硬件工程师:主导完成阶段三、四的工作,参与完成阶段二总体设计的工作。

专家级硬件工程师:主导完成阶段一、二的工作。

招聘基本要求

1.本科及以上学历,通信、电子、计算机、自动化、信息工程相关专业;

2.有扎实的理论基础和实际研发经验,熟悉数字、模拟电路设计,参加过电

子类设计比赛优先;

3.较强的逻辑思维能力和沟通能力;

4、精通至少一种原理图和 PCB 设计的工具;

5、熟悉 C 语言和单片机系统应用,有单片机开发经验优先;

6、有 FPGA 原理图和 PCB 设计经验优先。

硬件工程师需具备什么样的性格?

  • 沟通能力 要有逻辑,想法要全面点,这样才能与其他部门人员好好沟通,说不清会导致吵架!!在整个项目研发团队中,有两个人和所有人打交道,一个就是项目经理,另一个就是硬件工程师。硬件工程师需要和各种研发人员打交道 协调工作,这也要求硬件工程师具有丰富的知识面和强大的协调能力。

  • 性格温和 因为你会和所有部门交流,不要拉着脸,也不要命令式的,性格偏激会导致吵架!!

  • 谦虚谨慎 别人的意见即使不采纳也要倾听,然后说出自己的见解与原因,一意孤行会导致吵架!!

  • 认真仔细 设计电路要认真仔细,解 BUG 要认真仔细,因为一旦出问题这个责任只有自己背!!

  • 要有耐心 不论是沟通还是解 BUG 还是检查电路,一定要有耐心!

  • 不会就问 不会的东西就问,因为产品开发时间比较短,不可能给你大把时间去研究!!

  • 有责任心 对电路负责,对产品负责,对 BUG 负责!!

  • 分清主次 出了问题要先想怎样去解决问题,而不是先去追究谁的责任!!

  • 乐善好学 善于帮助别人,善于学习,必须有扎实的经验知识与理论知识!!

    岗位必备技能

(1)具备具备硬件工程师专业理论知识,主要包括电路基础知识,模电知识,数电知识,电力电子技术,EDA 技术等,专业基础知识扎实了,设计电路才能更得心应手。

(2)项目设计经验,硬件工程师更多的是靠后期工作敬业积累,能够根据客户需求独立设计功能、性能满足要求的硬件电路,熟悉整个项目的架构,编写软件需求文档,与软件工程师对接。

(3)调试、排故、维修能力,具有独立的硬件调试能力,能够快速、准确定位故障;当产品出问题时懂得如何排故,快速查找原因,修复产品故障。会使用常用的调试工具,比如万用表、示波器、直流电源、信号发生器等。

关注本职工作以外的事情

1.技术上,关注软件或者 FPGA 工程师的工作。这不是让我们学习写代码,而了解软件或 FPGA 实现功能的方法、流程和思想。也就是从系统的角度思考产品是如何工作。研发的过程会经常出现各种 BUG,产品出现问题,研发的每个人都有份,不能说这个问题是软件 BUG,我就不管了。和软件或 FPGA 工程师之间都讨论或者争论有利于提高效率,打开思路。

2.关注市场,也就是提高产品的竞争力,目前国内硬件产品貌似不停走向低成本,cost down 是公司永恒的主题,越来越多的产品被做烂了。换一个角度思考,市场上那么多同质的产品,有没有不完善的地方?可不可以通过增加某项功能,突出自己产品的竞争力?进而和研发团队思考功能如何实现。

3.关注项目管理、质量管理上的事情,硬件工程师不可避免要面对这些问题,产线的问题要找你,物料供应的事情要找你,产品返修要找你,现场维护要找你,这些都是提升的机会,问题来了要用科学的方法做事情,多学习质量管理,可靠性设计的知识。

薪资和发展

不管什么岗位都想明白自己的职业发展方向,软件工程师不想一辈子写代码,硬件工程师也不想一辈子奋战在最基层画原理图、调板子。硬件工程师的发展方向大概有以下几种:

1. 产品经理:产品经理负责一条产品线工作、规划及发展。硬件工程师由于工作涉及面比较广,对产品整个流程的工作及问题都涉及到,适合向产品经理发展。

2. 团队管理者:管理者协调资源、管理员工的工作分配以及绩效、设计完善流程等。

3. 技术专家或系统工程师:专家提供的是什么?不是源代码、不是原理图,而是产品实现的方案、思路以及技术发展的方向。

4. 创业:虽然国家鼓励这样做,但创业是困难的,如果创业卖硬件,就更难了。做好准备,也是一个选择。

无论选择什么方向,对我们这群目前毕业几年还在底层的硬件工程师来说最需要做的就是积累,明白自己的路需要什么。

部分招聘实例

中天微 Soc 芯片开发

这家公司一开始我投的是硬件工程师,一面时聊了没几句,面试官觉得我适合 Soc,然后直接把我推荐给了他们 Soc 部门的主管。

自我介绍,项目介绍。面试时间比较长,聊了差不多 2 个小时,主要问题如下:

  • FPGA 跨时钟域常见处理方法;FPGA 如何做静态时序分析;

  • 如何进行相位调整,相位对齐,多通道数据传输时如何进行通道 deskew;

  • 常见串并转换的方法,常见接口的时序约束;了解 Soc 吗?对计算机体系架构的了解。

总体来说,这次面试给我打开了一扇新的大门,知道了 FPGA 工程师其实还可以做 Soc。之后又在几天内进行了 2 次 HR 面试 。

面试难度:中等

面试感受:良好,流程相对随意

思科 硬件工程师

提前批面了一轮,简单说了下项目,建议我准备信号完整性,过了。然后就

是上海三轮现场面试。

  • 一面,介绍项目;pcie 编码方式,pcie 带宽计算;i2c 接口时序,开始条件,结束条件,总线响应,然后挑一个用过的带 i2c 接口的芯片,描述一下他的控制指令以及时序;LVDS 接口硬件结构,阻抗匹配;FPGA 采样、保持时间的概念,FPGA 最高主频由哪些因素决定,画一个说明图说明一下;SPI 接口哪几根线,内部结构如何。

  • 二面,介绍项目,挑一个项目,画一下整个项目的硬件框图,有算法,挑了一个算法,写了一下 matlab 的伪代码,问了一下哪里人,有没有女朋友。

  • 三面,英文自我介绍(没准备,血崩),看我口语不怎样,就让我用中文说了。介绍了一下项目,差分传输追问得比较深。然后问了我原理图设计要注意什么,我基本拿接口设计那些东西应付过去了。面试官可能连续面了 2 个人,看上去有点累了,而且我一直强调我是做 fpga 的,可能岗位也不太匹配,他兴趣不大,然后就草草结束了。

面试难度:困难,一面技术面还是挺难的

面试感受:非常好,流程安排紧凑,邮件短信通知都给人非常规范的感觉

回复【更多资料】海量嵌入式资料赠送

笔者电子信息专业硕士毕业,获得过多次电子设计大赛、大学生智能车、数学建模国奖,现就职于南京某半导体芯片公司,从事与硬件设计,电路设计研究。对于学电子的小伙伴,深知入门的不易,特开次博客交流分享经验,共同互勉!     

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Ablities/article/details/127363275

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签