硬件工程师学习规划
背景介绍
当前电子行业中,互联网因为中国人口基数大,得到很快的发展,一越成为世界第一梯队,互联网软件薪资要高于传统制造业硬件的薪资,从各大招聘软件上就能看到,那么为什么软件发展要好于硬件?倾听我细细道来。
大青山 2024/06/09
为什么软件发展要好于硬件?有下面几个原因:
1)产品同质化严重
产品同质化揭示了采用差不多的硬件,而要突出差异点,就在于软件功能,软件重要性得到提升,而硬件退居后台。攻城拔寨的是软件,更受公司重视,自然待遇和发展要好于硬件。
2)IC厂商提供针对性的模块,简化硬件设计
厂商提供datasheet文件的同时,还有DEMO电路,这些电路被硬件工程师直接采用,使得硬件设计被简化,留给硬件工程师发挥的余地就越小,只要不是开发新产品,仅仅维护旧电路,即使新人,学习半年时间,也能接手多个项目,间接降低了硬件工程师的重要性。
很多硬件设计已形成规范,熟读规范并运用就很方便,价值逐步降低。全球大牌的硬件公司裁了不少人,intel更是裁掉了接近20%的硬件工程师,TI的北京电源分部全被裁剪。但是互联网热度还没过,而且未来诸多产业如人工智能、机器学习、图像识别、大数据都才刚起步,所以软件和硬件需求有一定的上升空间,但软件人员需求高于硬件,对硬件人员的要求也在提高,比如AI算力基础上硬件。
3)硬件做精但市场不需要
举个例子,比如手机,大家玩一部手机,大概3年左右就会换一部新的,根本不需要设计的那么精细,硬件工程师想要做好,但是公司高层嫌弃增加了硬件成本和工时成本,且延迟投入市场的时间。消费类跑量,并不需要多高的设计能力。
4)成本与待遇
对于以硬件产品为主的企业来说,硬件开发的成本高,产品的成本也高。因为后期的加工生产,维修等等都需要很大的费用。所以企业的利润较低。不过由于硬件工程师掌握着企业的命脉,所以企业会提高硬件设计人员待遇;
对于以软件产品为主的企业来说,开发的成本较低,一旦开发完成,后期的产品基本无成本。所以软件行业的利润较大。
5)创业方向
不管在美国在中国互联网创业都是趋势,但是可以说绝大部分的初创互联网公司做的都是软件方向。有个点子,有点技术,找几个合伙人抱着电脑就能开干了。但是初创公司要专注做硬件开发就比较难了,因为成立设计硬件公司的门槛和起步开销比较大。所以这也导致大部分初创公司以互联网为主,能做的了硬件设计的公司基本上都是处于垄断地位的大企业。
6)硬件博大精深难成专家
软件工程师的工作性质使得软件工程师的起点较低,所以目前国内的软件工程师居多。并且目前国内的嵌入式培训都是以软件培训为主。
软件工程师很多时候吃的是体力,硬件工程师大部分时候是吃经验,所以硬件工程师一般得有一定的经历积淀才能脱颖而出。尤其像模电这种上手程度很高的方向,没个十年八年的相关经验根本不算学成出师。所以说本身对从业者的资质要求更高,也是硬件工程师不好找工作的原因之一。
硬件层面,工控领域/医疗领域,对硬件的需求提高,对知识需求也会高一些,电源、嵌入式硬件、数字电路、模拟电路、可靠性、EMC、SI、PI、PDN、电路仿真、高速仿真、国家标准、国际标准、国际认证(美国的FDA、欧盟的CE),都需要掌握或者了解,虽然也有芯片的DEMO电路,但是系统更为复杂和庞大,很长的生命周期,可靠性要求高,涉及到人的生命安全,这些都决定了,可以有更大的空间让硬件工程师施展个人或团队的实力,看过陈仓工程师的文章,里面有一段记录听了很有感想,硬件可期,也和大家一起分享:
我所在的德国公司,干了20年以上的大有人在。当时读了项目组里一个德国硬件系统工程师写的可靠性系统设计文档,自认为不笨,但沉下心读了三遍到现在还没完全搞懂,缜密严谨的逻辑很让人叹服,跟他讲他哈哈大笑,说这个德国的大部门里也就两个人能搞定,这也就是德国没法被中国山寨的技术门槛。
在这种复杂度下,硬件工程师的受重视程度和待遇跟软件相当,我也跟德国人求证过,在德国软硬件待遇也处于同一水平。
3年前我去德国做项目时有留意到办公室里的一个小伙子,很腼腆,不怎么跟周围人讲话,后来有机会一起合作,发现他的能力非常的强,与他稚嫩的外貌很不相称,有些好奇就问他毕业几年了,他回答一年多,我很惊叹他这样的水平居然才毕业1年多,想想自己当时的水平跟他比真是弱爆了,但为什么我3年前就见过他,原来他在读研阶段,就跟公司签订了实习合同,每周都会来公司里工作一天,并且这样的实践活动,在他们同学里面非常普遍,他们的大学生活基本上就是在忙碌学习和实践中度过的。
这引起了我对自己的大学生活的反思,我特么当时都在干吗?为了高考受够了压力,大学必须不能继续那个状态啊。数电模电都在学,但也不清楚这些电路到底能用来干什么,应付完考试就抛之脑后了。等若干年后工作需要碰到问题了,才又把大学课本翻出来再啃,周围同事不乏清华,交大,华科的硕士,但大家都在感叹,如果早知道是用来干这个,那当时学的可得多起劲啊;如果大学教育能跟实际结合的紧密一些,那我们可得少走多少弯路,如果当初多做一些实践,可得增加多少有用的积累啊。玩游戏?谁还会去浪费那时间。睡懒觉?我哪有那闲功夫。什么?泡妞?清晰的人生理想面前,你跟我提泡妞?呵呵,妞还是得泡的。
没有后悔药给我们吃,但我们的病历可以给你们看,我想对于大多数学生,都在被动的接收学校,社会安排推送给你们的知识和活动,想想如果学校不组织挑战者杯之类的比赛,那我们是不是就不做东西了呢?但我们能不能更积极的,主动的去了解社会,了解你梦想公司的产品是什么样的?那里的工程师们都在做些什么?他们都在提高哪些技能?他们都在泡什么论坛?你课本上的知识是如何被用到具体产品里去的?
每个人的人生都充满迷茫,自己的方向和目标只有自己通过实践才能找到,希望这份病历,能作为前车之鉴,给你们一些有用的提示和帮助。关于方向,实在不是普通的我能受的起的问题。
摘录:
从事硬件设计工作10年了,很多新手朋友问到硬件工程师怎么规划自己的学习方向。这里根据个人经历总结下:
1) 原理图和仿真工具:掌握软件使用方法和高级技巧。6个月。
2) 方案和原理图设计: 和产品有关系,产品越复杂,你需要掌握的电路知识越多。SOC电源,模拟运放这些必须掌握。产品各式各样,但万变不离其中。3-5年内可以根据需求就可以设计方案和原理图。
3) Pcb设计和仿真工具: 掌握使用方法和高级技巧。6个月。
4) Pcb设计: 和产品有关系,产品越复杂,你需要掌握的电路知识越多。高速信号,模拟数混合电路,电源电路等必须掌握。其实原理懂了,PCB设计也就懂了,重点还是在原理上搞清楚。2年
5) 仪器使用:示波器,信号发生器,频谱分析仪,网络分析仪。掌握其原理,使用方法和误差精度。公司资源决定。
6) Fpga设计: 建议必学,掌握verilog语法和fpga设计思想。因为fpga可以说是soc或asic流片的前身,和硬件设计息息相关。而且价格便宜,可操作性强。1年
7) 结构设计: AUTOCAD等软件简单使用。1个月
8) 嵌入式软件设计: 能够编写代码实现功能。如果不是专门做软件,不要花太多的时间在算法上。1年
9) 嵌入式操作系统原理:通用主流和开源的操作系统的基本原理和应用,比如freertos。6个月。
我是一个普通的电路设计工程师,我的专业知识包括数字电路,模拟电路和嵌入式底层软件,当然对所有工程师来说,产品知识和项目管理技能都是必备的。我们谈到的硬件,涉及的领域太宽,IC设计,FPGA,射频,EMC,电气工程,等等等等,基本上产品不同,所需的硬件技术的package就不同,我对这些领域有所了解但并不深入,所以出于严谨的态度,我的视界和知识不足以,也没资格给你们负责任的建议,我所能做的就是分享我的一些有用的体会,希望对大家有所帮助:.
链接:https://zhuanlan.zhihu.com/p/94479308
相关文章:
硬件工程师学习规划
背景介绍 当前电子行业中,互联网因为中国人口基数大,得到很快的发展,一越成为世界第一梯队,互联网软件薪资要高于传统制造业硬件的薪资,从各大招聘软件上就能看到,那么为什么软件发展要好于硬件࿱…...
esp32 8行代码实现蓝牙音响
目录 硬件准备: 具体代码: 接线: 备注: 八行代码实现简易版蓝牙音响,亲测有效: esp32 DIY蓝牙音响_哔哩哔哩_bilibili 硬件准备: ESP32-wroom、MAX98357音频放大器模块、4欧3瓦小喇叭、杜…...
注册用户如何防止缓存穿透?
注册用户如何防止缓存穿透? 先说明用户注册为什么会发送缓存穿透:用户注册时,需要验证用户名是否已存在,先查缓存,没有再查数据库,还没有才验证通过。高并发的情况下就可能有大量用户同时注册,…...
Presto基础知识
Presto缓存 引入Presto缓存之前 BackgroundHiveSplitLoader 使用底层的文件系统直接进行数据的读写; 引入Presto缓存机制之后,底层的文件系统被被CachingFileSystem 代理一层 CachingFileSystem 有两个子类,根据你选用的底层缓存引擎的不同…...
Ajax + Easy Excel 通过Blob实现导出excel
前端代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><script src"./js/jquery-3.6.0.min.js"></script></head><body><div><button onclick"exportF…...
Qt+qss动态属性改变控件状态切换的样式
先说点基础的吧,qt的样式实现,常见的主要有三种方式,分别为: 1.ui界面中右键样式表直接添加 2.代码中对控件设置样式setStyleSheet 3.外部预设好qss文件,代码中加载后设置样式 实际工作开发中,我推荐使用优…...
纷享销客安全体系:安全运维运营
安全运维运营(Security Operations,SecOps)是指在信息安全管理中负责监控、检测、响应和恢复安全事件的一系列运营活动。它旨在保护组织的信息系统和数据免受安全威胁和攻击的损害。 通过有效的安全运维运营,组织可以及时发现和应对安全威胁,减少安全事…...
富瀚微FH8322 ISP图像调试—BLC校正
1、简单介绍 目录 1、简单介绍 2、调试方法 3、输出结果 富瀚微平台调试有一段时间了,一直没有总结,我们调试ISP的时候,首先一步时确定好sensor的黑电平值,黑电平如果不准,则会影响到后面的颜色及对比度相关模块。…...
什么是大型语言模型 ?
引言 在本文[1]中,我们将从高层次概述大型语言模型 (LLM) 的具体含义。 背景 2023年11月,我偶然间听闻了OpenAI的开发者大会,这个大会展示了人工智能领域的革命性进展,让我深深着迷。怀着对这一领域的浓厚兴趣,我加入了…...
RocketMq详解:二、SpringBoot集成RocketMq
在上一章中我们对Rocket的基础知识、特性以及四大核心组件进行了详细的介绍,本章带着大家一起去在项目中具体的进行应用,并设计将其作为一个工具包只提供消息的分发服务和业务模块进行解耦 在进行本章的学习之前,需要确保你的可以正常启动和…...
【源码】二开版微盘交易系统/贵金属交易平台/微交易系统
二开版微盘交易系统/贵金属交易平台/微交易系统 一套二开前端UI得贵金属微交易系统,前端产品后台可任意更换 此系统框架不是以往的至尊的框架,系统完美运行,K线采用nodejs方式运行 K线结算都正常,附带教程 资源来源:https://www.…...
React@16.x(26)useContext
目录 1,上下文的使用2,useContext 1,上下文的使用 之前的文章中介绍过 context上下文。 使用举例: import React, { useState } from "react";const ctx React.createContext();function Child() {return <ctx.C…...
Vue2学习(04)
目录 一、组件的三大组成部分 二、组件的样式冲突scoped 三、scoped原理 编辑 四、data是一个函数 五、组件通信 1.概念:是指组件与组件之间的数据传递,组件的数据是独立的,无法直接访问其他组件的数据,想用其他组件的数…...
Python中columns()函数
1. columns的概念 在数据分析和处理中,columns是指数据表中的列,也称为字段。每一列代表了特定类型的数据,在一个数据表中,每一行代表了一个数据实例,而每一列则代表了一个特定的特征或属性。 可以直接定义和更改列标题,也可以直接读取某列的数据,或者对某列进行运算。…...
Vue3 使用 vue-clipboard3 实现一键复制
安装依赖 npm install --save vue-clipboard3示例 <template><el-input v-model"data"></el-input><button click"touchCopy">复制链接</button> </template><script setup lang"ts"> // 导入插件 …...
人机环境生态系统智能的流动性
一般来说,流动性可以理解为事物在空间或时间上的转移、变化或运动。在人机环境生态系统中,流动性可以涉及以下几个方面: 信息流动:数据、消息、知识等在系统中的传递和交换。这可能包括传感器收集的数据传输到处理中心,…...
实现开源可商用的 ChatPDF RAG:密集向量检索(R)+上下文学习(AG)
实现 ChatPDF & RAG:密集向量检索(R)上下文学习(AG) RAG 是啥?实现 ChatPDF怎么优化 RAG? RAG 是啥? RAG 是检索增强生成的缩写,是一种结合了信息检索技术与语言生成…...
对待谷歌百度等搜索引擎的正确方式
对待百度、谷歌等搜索引擎的方式是,你要站在搜索引擎之上,保持自己的独立思想和意见。 当谷歌宣布他们将会根据一个名为“Alphabet”的新控股公司来进行业务调整时,在科技界引起了一片恐慌之声。 永远不要说这是一个公司一直在做的事情。不…...
pikachu靶场通关全流程
目录 暴力破解: 1.基于表单的暴力破解: 2.验证码绕过(on server): 3.验证码绕过(on client): token防爆破: XSS: 1.反射型xss(get): 2.反射性xss(post): 3.存储型xss&#…...
实现k8s网络互通
前言 不管是docker还是k8s都会在物理机组件虚拟局域网,只不过是它们实现的目标不同。 docker:针对同一个物理机(宿主机) k8s:针对的是多台物理机(宿主机) Docker 虚拟局域网 K8S虚拟局域网 …...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
Golang——7、包与接口详解
包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...
