嵌入式硬件 PK 软件?你站哪一边?

科技   2024-09-24 20:03   江苏  

不想错过我的推送,记得右上角-查看公众号-设为星标,摘下星星送给我

做硬件还是做软件,这是每个电子专业学生都会问的问题。怎么选呢?本期Back2School系列课程,由妮姐和张杰老师一起来为大家讲讲软件与硬件的差别——

张杰老师说:软件是给硬件注入的灵魂的,没有软件,硬件就是空壳。

而妮姐说:不对,没有硬件,软件往哪装。

所以,你们怎么看硬件和软件的呢?

下面,妮姐和张杰老师分别就软硬件的工作内容、技术难度,学习路线与成本,行情与薪资,职业天花板等方面,讲讲软硬件的区别,可以给不知道如何选,或是纠结软硬件的同学一点帮助。

1

工作内容

先说硬件的工作内容,妮姐之前在大厂硬件部门呆过,所以分享了自己的工作日常:

首先,根据产品需求,设计硬件原型,电路板布局布线,进行元器件选型,但我是不需要去采购的,有些规模比较小的公司,小批量的采购可能是由硬件工程师来做。

当硬件设计完成之后,板子到了。我在的公司有专门的焊接部门,所以板子出来之后,就直接交给他们去焊接。

接下来,就是基础测试,电源、时钟是不是正常。当时板子上是有CPLD和处理器的,我们硬件还需要编写verilog代码,然后与软件部门配合,进行各种功能性测试,EMI/EMC测试等等。

以上刚说的是新产品的流程,但除了新产品的开发,还会有一部分的工作量要进行老产品的维护,包括出了故障现场出差解决,老产品的升级换代等等。

张杰老师作为一名10年+嵌入式工程师,给大家介绍下软件的工作内容:

其实,平时经常跟硬件部门打交道,硬件的工作需要非常的细致,做硬件比较吃经验的,而软件比较注重一些逻辑思维能力。

目前大概嵌入式软件分为两大类,一种是MCU方向,还有一种是SOC方向,也是随着芯片技术的快速发展,嵌入式芯片的性能也是越来越强。

通常MCU指的是ARM的M核和R核,SOC指的是ARM Cortex A核。

从操作系统的维度来说,MCU一般跑RTOS,代表性的有FreeRTOS,MCU Autosar还有我们国产的RT-Thread等。当然了,对于简单的MCU芯片和应用场景,裸跑也是可以的,一般通过一些芯片厂商提供的IDE来开发一些底层驱动,然后基于业务来开发一些应用程序。

SOC一般跑Linux,QNX等操作系统,通常上了Linux操作系统一般都会跑一些复杂的系统和应用程序,比如Android操作系统底层就是Linux,还有我们现在很流行的自动驾驶系统基本底层操作系统也都是跑的Linux,通常SOC的嵌入式开发环境都是使用Linux系统或者Macbook,看起来就很高级。

其实,从妮姐和张杰老师讲的内容就可以看出,软硬件最大的区别从办公桌就能看的出来,硬件的办公桌是这样堆放各种板卡,测试仪器的,而软件的办公桌,一台电脑,加几根USB线,一块板卡,有的时候甚至都不需要板卡,直接远程或仿真就可以了。

这个时候就不得不上下这张祖传神图了:

2

技术难度

从技术难度上,张杰老师觉得软硬件不分伯仲,非要说的话,软件可能会更难点。因为不同的行业,不同产品,对软件的要求不一样,比如现在比较热门的自动驾驶,软件非常复杂,涉及到的模块很多,当然也不是所有软件都这么复杂,比如做传感器的。

而从妮姐的角度来说,她觉得硬件反倒是比较难,嵌入式硬件工程师需要掌握的技能太多了,比如EDA软件就要好几种,AD、PADS、cadence等等,还要对常用的模拟电路芯片和数字电路芯片熟练,要有画多层板的能力,还要有解决问题的能力,有的时候还要数学要好,要会计算阻抗参数之类的。

3

学习成本

嵌入式硬件是要远远高于嵌入式软件的。对于嵌入式硬件来讲,好的硬件工程师,就是用板子和元件喂出来的,然后就是设备和仪器,不管性能如何,也是要必备的,我知道的热爱搞硬件的工程师基本人人一个工作室,示波器、稳压电源、函数信号发生器、逻辑分析仪等这些高端设备都有,造价几万起步。

4

知识技能

前面妮姐说到硬件技能多,其实软件也很多。一般嵌入式软件的开发需要一门熟悉的编程语言,C/C++是必须要熟悉的,必要的还需要搭配一门脚本语言来辅助开发一些小工具,脚本之类的。

嵌入式软件一个重要的环节是需要和硬件工程师进行联调,比如说基于Linux的板子,当硬件工程师焊接和测试好板子之后,一般嵌入式软件工程师需要把板子上的芯片和功能调试完成,比如说像传感器,还有一些跟SOC有通信的芯片:PMIC,ADC,PWM信号等。

不管是RTOS还是Linux都需要先编写设备驱动软件,这部分工作跟操作系统相关新比较大,不同的操作系统需要的不通的专业知识,比如Linux系统需要了解Linux设备驱动的接口,一些锁的使用,内存的分配,线程的管理和使用等。

5

薪资水平

张杰老师觉得薪资这块软件就比较有底气了。以他多年的跳槽以及面试经验来看,总体要比硬件更有钱力的。就拿最近比较流行的人工智能、大模型行业,薪资就没有上限。当然了,如果只是简单的单片机固件开发,可能就没有那么高。

当然了,国内软件开发人才的储备比较多的,想要做到top的,还是比较困难的,竞争压力比较大。

对比硬件,刚开始几年是比不过软件。但硬件基础原理是差不多的,掌握了之后,不挑行业,哪儿都能跳槽,而软件,不同的行业如果跨行业跳槽,学习成本比较高。

6

职业天花板

职业发展上看,软件和硬件的职业发展路径大致相同,如果坚持做技术,后期可以做team leader,也可以往架构师、系统工程师发展。

另外,还可以去做项目管理,有技术经验的话,会更加吃香。

问题来了,正在大一大二的同学,纠结软硬件的,到底该怎样选择呢?

妮姐和张杰老师给出了他们当初是如何选择软硬件的过程:

张杰:大学我学的也是电子,那个时候看黑客帝国,黑客入侵我想是很多男生的梦想,我也是其中之一,

我自己恰好也是个技术宅,很喜欢独自coding,掌控全局的感觉,做软件就自然而然了。而且上大学老是焊板子,我并不喜欢动手操作这些~

当然,真正做软件工作之后,除了有竞争力的薪资带来的所谓的职场幸福以外,还有一点我的感触很深,就是做软件是一件非常有挑战的事情,因为软件行业的发展很迅速,你可以深入体会到更多的一些前沿科技的东西,并且可以参与到其中去。

这些我个人的经验,都可以作为大家择业时的一个参考吧。

妮姐:和张杰老师相反,硬件带来的成就感对我来说更强。以前,我们也写代码,总感觉代码是有距离感,比较冰冷的,而做硬件,你能摸得着,看得着,更直观。做硬件是很考验动手能力的,如果你不喜欢动手,就不太建议选硬件。

软件和硬件是密不可分的。你如果要问我职业高光时刻,我脑袋里面有两个瞬间,都是和硬件工程师配合,把一块板子调通了。我想,这种快乐是共通的。

所以,无论是软件还是硬件,你要考虑到自己擅长的点、兴趣,喜欢做的事情。

Back2School “梦想金”

学习工具添置资金

无论你是学生,还是在职工程师,只要你想提升技能,完成梦想,Back2School都会为你的梦想“添砖加瓦”。

凡关注“DigiKey得捷”微信并在得捷官网上下单购买任意板卡的,可凭借订单截图获得200元京东卡补贴。名额所剩不多,加微信:zm857827273,了解详情,锁定名额。
海量资源,任意下:
针对不同时期,不同课程,我们整理一些使用的学习路线、学习资源、求职笔试题等内容,扫描下方二维码,即可获得资料下载链接:

(资料随课程进度实时更新)

第六季Back2School:

先导片:重启校园梦想|电子专业大学4年详细规划
第一期:这大概是80%的工程师毕业3年后的样子

(https://www.bilibili.com/video/BV1vK48evEF6/)

第二期:电子专业课程不完全指南!必学


Back2School往期内容:

第一季:毕业设计“包过”秘籍,附板卡白piao

第二季:14个最难忘大学项目助你B2S

第三季:电子人学习路线指南:干货!16节【定制课程】请查收
第四季:毕业补给站|14节课助力考研/求职/创业,3大选择任你挑
第五季:手把手教你搭建自己的【电子实验室】|12节完整DIY攻略
END

推荐阅读:

项目分享 | 电赛系列 | 人工智能 | 考研 

必考知识点 毕业设计 | 开关电源 求职


我们是妮mo,达尔闻创始人,只讲技术不撩汉的小姐姐。尔闻在线教育平台旨在服务电子行业专业人士,提供技能培训视频,覆盖各细分领域热门话题,比如嵌入式,FPGA,人工智能等。并针对不同人群量身定制分层级学习内容,例如常用知识点,拆解评测,电赛/智能车/考研等,欢迎关注。

官网:www.darwinlearns.com
B站:达尔闻


达尔闻说
只讲技术不撩汉的小姐姐妮mo与你相遇达尔闻。这里提供技能培训视频,覆盖各细分领域热门话题,如嵌入式,FPGA,人工智能等。针对不同人群量身定制学习内容,如常用知识点,拆解评测,电赛/智能车/考研等!
 最新文章