嵌入式开发选硬件还是软件?

做了单片机软件开发很多年,和很多硬件工程师打过配合,其中大部分硬件工程师,越往后,学软件的意愿越强烈。

所以我建议是,先做软件,是比较好的发育路线。

软件开发的优势主要体现在几个方面。

第一是薪资待遇,同等级别的软件工程师通常能获得比硬件工程师更高的工资。

第二是软件开发,更聚焦于产品的核心部分,如编程和算法设计,软件项目的复杂性也为工程师提供了一定的职业保障。随着项目规模增大,代码逻辑变得越来越复杂,熟悉项目的原开发者往往难以轻易替代,在领导面前的分量都会重一些。

第三是做软件,也需要不断接触硬件知识,比如要看懂原理图,有时还需要拿万用表,示波器去测量数据波形,在这个过程中,也是对硬件经验的积累。

而硬件工程师,则完全无需接触代码,所以基本学不到软件层面的东西。

硬件通常有分为射频、电源和数字三个方向。其中射频和电源设计需要长期积累,具有较高的技术成长空间,经验丰富了,工资也是很高的,不一定会比软件低。

然而,单纯的数字硬件工作,如原理图绘制、PCB设计等,,这类工作主要涉及熟悉各种接口和芯片使用,通常在1-3年内就能基本掌握,后续发展可能面临瓶颈,相对来说成长空间较小,也更容易被替代。

硬件工程师屁事也挺多的,还需要处理一些辅助任务,如物料准备、焊接和硬件调试,生产指导等等,工作环境上会比软件恶劣一些。

硬件项目的开发,对工程师的细心要求也是挺高的,例如,PCB设计上的一个小错误,都会导致后面需要重新制板,从而使整个项目延期和成本超支,比较容易当背锅侠。

相比之下,软件错误通常可以通过重新编译或小范围修改来快速解决,成本和时间损失相对较小。

不过,尽管硬件开发看起来很坑,仍有其不可替代的价值,特别是在射频和电源设计、高速等专业化领域,资深工程师的经验和技术积累非常值钱。某些高端硬件开发,如高频雷达等军工级别的电路原理设计,仍然需要高度专业化的人才。

真正体现硬件工程师水平的方面在于PCB布局的水平,包括板子的稳定性、电磁兼容性、电磁干扰控制、器件选型以及高低温性能等。这些知识不是在书本,或者市面教程能系统学到的,需要长年累月的项目积累。

一旦达到这个水平,基本上职业生涯就很稳了,基本可以忽略年龄给你带来的职业危机。

所以有硬件入门简单,精通难,越老越吃香一说。

不过,这些不是光靠努力就可以,还需要有一定的机遇,能碰得上好的平台。

所以,综合考虑,稳妥的发育路线,我建议优先考虑软件方向,特别是计算机专业,在这方面有天然的优势。

如果目前已经在从事硬件的,也可以慢慢学习软件,最后走全栈路线,提升工资和竞争力,我们身边有挺多这样的案例。

最近发现,很多私聊我学单片机的小伙伴,99%的人都走了弯路,所以我花几个小时,写了一篇保姆级学习路线^ ^

单片机怎么学?保姆级学习路线(附教程+工具)icon-default.png?t=O83Ahttps://blog.csdn.net/2401_86645590/article/details/141437874

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/882085.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python爬虫实战案例——从移动端接口抓取微博评论,采用cookie登陆,数据存入excel表格,超详细(15)

文章目录 1、任务目标2、网页分析3、代码编写3.1 代码分析3.2 完整代码1、任务目标 1、目标网站:微博文章(https://m.weibo.cn/detail/4813628149072458),这是微博某一篇博文,用于本文测试 2、要求:爬取该博文下,所有一级评论和二级评论,以及每条评论的作者,最后保存至E…

Python魔法函数__iter__的用法

下面是找到的一个比较好的科学解释: Python中可迭代对象(Iterable)并不是指某种具体的数据类型,它是指存储了元素的一个容器对象,且容器中的元素可以通过__iter__( )方法或__getitem__( )方法访问。 1.__iter__方法的作用是让对象可以用for…

微服务之间是如何独立通讯的?

前言 微服务架构是一种将一个应用程序拆分成多个小型、独立的服务的架构。在微服务架构中,各个服务之间需要进行通信来完成数据交互和业务处理。本文将详细介绍微服务之间如何独立通信的。 微服务之间独立通讯主要依靠定义清晰的API协议、使用轻量级交互机制、以及…

Vscode替换\n为换行符

文件内容是字符串,每行用\n分割,阅读困难,可以在vscode,用替换\n进行换行。

120多套各种类别微信小程序模板源码

微信小程序是一种轻量级的应用开发平台,由腾讯公司推出,主要应用于移动端,为用户提供便捷的服务体验。本资源包含120套微信小程序的源码,对于开发者来说是一份宝贵的参考资料,可以用来学习、研究或者作为开发新项目的起…

【Linux系统编程】环境基础开发工具使用

目录 1、Linux软件包管理器yum 1.1 什么是软件包 1.2 安装软件 1.3 查看软件包 1.4 卸载软件 2、Linux编辑器-vim 2.1 vim的概念 2.2 vim的基本操作 2.3 vim的配置 3、Linux编译器-gcc/g 3.1 gcc编译的过程​编辑​编辑​编辑 3.2 详解链接 动态链接 静态链接 4…

C++【内存管理】(超详细讲解C++内存管理以及new与delete的使用和原理)

文章目录 1.C/C内存分布2.C语言中动态内存管理方式3.C内存管理方式3.1 new/delete操作内置类型3. 2new/delete操作自定义类型 4. operator new与operator delete函数(重点)5. new和delete的实现原理5.1 内置类型5.2 自定义类型5.2.1 自定义类型调用new[]…

JAVA就业笔记6——第二阶段(3)

课程须知 A类知识:工作和面试常用,代码必须要手敲,需要掌握。 B类知识:面试会问道,工作不常用,代码不需要手敲,理解能正确表达即可。 C类知识:工作和面试不常用,代码不…

深度学习相关知识点

epoch/batch/batch_size的关系 Epoch:模型在整个数据集上完成一次训练。一个epoch后,模型已经看过所有的训练数据,执行了正向传播和反向传播。通常训练需要多个epoch,模型才能逐步学习和收敛。Batch:由于在深度学习中…

Python 如何处理大规模数据库表的迁移与数据迁移的高效执行

Python 如何处理大规模数据库表的迁移与数据迁移的高效执行 引言 在现代应用开发中,随着业务需求的增长,数据库表结构和数据往往需要进行迁移和更新。迁移(Migration)是指对数据库表的结构、数据类型、索引、约束等进行修改或更新…

电脑桌面便签怎么添加,好用便签软件怎么样?

在数字化时代,电脑桌面便签是现代工作和学习中不可或缺的工具,它能够帮助用户记录重要信息、设置提醒事项并高效管理任务。那么,电脑桌面便签怎么添加,好用便签软件怎么样呢?接下来让我们一起来探讨下吧。 一&#xf…

Python 基础之条件语句

一、条件语句简介 在Python中,条件语句用于根据不同的条件执行不同的代码块。这使得程序能够根据特定的情况做出决策,并执行相应的操作。 二、if 语句 if语句是最基本的条件语句。它用于检查一个条件,如果条件为真,则执行特定的代…

13.3寸工业三防平板数字化工厂产线数采手持终端

在数字化工厂的建设浪潮中,高效可靠的数据采集终端至关重要。尤其在水处理、食品加工等特殊工业环境下,设备的耐用性和数据安全性面临严峻挑战。传统的平板电脑难以应对复杂的工业现场,而一款性能卓越、坚固耐用的工业三防平板则成为提升生产…

利用sessionStorage收集用户访问信息,然后传递给后端

这里只是简单的收集用户的停留时间、页面加载时间、当前页面URL及来源页面&#xff0c;以做示例 <html><head><meta http-equiv"content-type" content"text/html; charsetUTF-8"/><title>测试sessionStorage存储用户访问信息<…

基于深度学习的设备异常检测与预测性维护

基于深度学习的设备异常检测与预测性维护是一项利用深度学习技术分析设备运行数据&#xff0c;实时检测设备运行过程中的异常情况&#xff0c;并预测未来可能的故障&#xff0c;以便提前进行维护&#xff0c;防止意外停机和生产中断。它在工业领域应用广泛&#xff0c;特别是在…

使用docker搭建lnmp运行WordPress

一&#xff0c;部署目的 使用 Docker 技术在单机上部署 LNMP 服务&#xff08;Linux Nginx MySQL PHP&#xff09;。部署并运行 WordPress 网站平台。掌握 Docker 容器间的互联及数据卷共享。 二&#xff0c;部署环境 操作系统&#xff1a;CentOS 7Docker 版本&#xff1…

路由通信 的 VLAN技术

一、VLAN基础 虚拟局域网&#xff08;Virtual Local Area Network&#xff0c;VLAN&#xff09; 根据管理功能、组织机构或应用类型对交换局域网进行分段而形成的逻辑网络。 交换机最多支持4094个VLAN&#xff0c;其中默认管理VLAN是VLAN1&#xff0c;不能创建&#xff0c;也…

spark:数据的关联与合并、缓存和checkpoint

文章目录 1. 数据的关联与合并1.1 join关联1.1.1 内关联1.1.2 左关联1.1.3 右关联 1.2 Union合并 2. 缓存和checkpoint 1. 数据的关联与合并 1.1 join关联 students表数据&#xff1a; 1.1.1 内关联 内关联只返回两个 DataFrame 中在连接键上匹配的行。 # join 关联 from…

面试感受(续)

保险销售篇 昨天经朋友介绍了解可以到他那&#xff08;保险&#xff09;去试试&#xff0c;今上午过去了&#xff0c;不得不说保险行业确实有钱哈&#xff0c;那办公室贼大&#xff0c;装修贼气派&#xff0c;不过现在保险行业的变种名称这么多的吗&#xff0c;大健康规划师&a…

Python入门:轻松学会Python的*args和**kwargs

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 Python传参 📒📝 *args📝 **kwargs📝 综合使用 *args 和 **kwargs📝 注意事项⚓️ 相关链接 ⚓️📖 介绍 📖 在你编写Python代码时,是否曾遇到过需要处理数量不定的参数的情况?许多刚Python入门的新手在面对这种…