做了单片机软件开发很多年,和很多硬件工程师打过配合,其中大部分硬件工程师,越往后,学软件的意愿越强烈。
所以我建议是,先做软件,是比较好的发育路线。
软件开发的优势主要体现在几个方面。
第一是薪资待遇,同等级别的软件工程师通常能获得比硬件工程师更高的工资。
第二是软件开发,更聚焦于产品的核心部分,如编程和算法设计,软件项目的复杂性也为工程师提供了一定的职业保障。随着项目规模增大,代码逻辑变得越来越复杂,熟悉项目的原开发者往往难以轻易替代,在领导面前的分量都会重一些。
第三是做软件,也需要不断接触硬件知识,比如要看懂原理图,有时还需要拿万用表,示波器去测量数据波形,在这个过程中,也是对硬件经验的积累。
而硬件工程师,则完全无需接触代码,所以基本学不到软件层面的东西。
硬件通常有分为射频、电源和数字三个方向。其中射频和电源设计需要长期积累,具有较高的技术成长空间,经验丰富了,工资也是很高的,不一定会比软件低。
然而,单纯的数字硬件工作,如原理图绘制、PCB设计等,,这类工作主要涉及熟悉各种接口和芯片使用,通常在1-3年内就能基本掌握,后续发展可能面临瓶颈,相对来说成长空间较小,也更容易被替代。
硬件工程师屁事也挺多的,还需要处理一些辅助任务,如物料准备、焊接和硬件调试,生产指导等等,工作环境上会比软件恶劣一些。
硬件项目的开发,对工程师的细心要求也是挺高的,例如,PCB设计上的一个小错误,都会导致后面需要重新制板,从而使整个项目延期和成本超支,比较容易当背锅侠。
相比之下,软件错误通常可以通过重新编译或小范围修改来快速解决,成本和时间损失相对较小。
不过,尽管硬件开发看起来很坑,仍有其不可替代的价值,特别是在射频和电源设计、高速等专业化领域,资深工程师的经验和技术积累非常值钱。某些高端硬件开发,如高频雷达等军工级别的电路原理设计,仍然需要高度专业化的人才。
真正体现硬件工程师水平的方面在于PCB布局的水平,包括板子的稳定性、电磁兼容性、电磁干扰控制、器件选型以及高低温性能等。这些知识不是在书本,或者市面教程能系统学到的,需要长年累月的项目积累。
一旦达到这个水平,基本上职业生涯就很稳了,基本可以忽略年龄给你带来的职业危机。
所以有硬件入门简单,精通难,越老越吃香一说。
不过,这些不是光靠努力就可以,还需要有一定的机遇,能碰得上好的平台。
所以,综合考虑,稳妥的发育路线,我建议优先考虑软件方向,特别是计算机专业,在这方面有天然的优势。
如果目前已经在从事硬件的,也可以慢慢学习软件,最后走全栈路线,提升工资和竞争力,我们身边有挺多这样的案例。
最近发现,很多私聊我学单片机的小伙伴,99%的人都走了弯路,所以我花几个小时,写了一篇保姆级学习路线^ ^
单片机怎么学?保姆级学习路线(附教程+工具)https://blog.csdn.net/2401_86645590/article/details/141437874