为什么一些计算机专业的学生毕业后都愿意从事软件开发而不愿意做硬件开发工程师?

485577965


为什么一些计算机专业的学生毕业后都愿意从事软件开发而不愿意做硬件开发工程师?这个问题问的非常好,本人电子通信专业毕业,目前从事芯片系统设计的工作,对于这个问题还是有点心得。硬件可分为纯硬和半硬(我把他归为嵌入式硬件);软件也可以分为纯软和半软,在我看来半软半硬统归为嵌入式。为什么现在很多人从事软件开发:

(1)软件相比硬件周期短。短时间可以掌握一门机器语言;而对于硬件需要掌握的基础知识太多,用到的工程软件也非常多,所以软件相比硬件入门容易。

(2)软件靠debug,硬件靠经验。软件一般在电脑上debug通过了,在实际应用中基本都是ok的;而对于硬件仿真通过了,实际中很有可能又不一样了,需要工具实测找问题,所以实际经验非常重要。

(3)对于硬件,最基础的是数学。虽然是电路设计,但所有电路都是数学推出来的(比如这个位置电阻应该多大,什么样的封装,需要抗多大的电流,耐压多少,理论指是多少,实际又是多少非常麻烦);尽管软件也涉及数学思维,但硬件的推理更加麻烦(想想数学多少人的噩梦)。

(4)硬件太累太苦,对于纯硬,比如模拟,你必须不停实测(仿真存在风险),去验证你的功能;对于嵌入式,你需要在软件与硬件之间来回奔波。

最后,不是说软件不累,做软件也很幸苦;但在目前来看,中国的硬件工程师,非常缺乏;毕竟这样的公司太少,做硬件成本太高,比如28nm的芯片流一次片就是200万美金,更别说什么14nm,7nm这些。但做硬件也有好处,好像秃顶的比较少。



kaishui爱上山


本人在大学是计算机系通信工程专业的,是一个软硬件结合的专业,算是那个时候大学搞学科融合的产物。我的同学毕业后有搞硬件的、也有搞软件的。对于这个问题也算是深有体会。

我们当年一个班男女生加起来一共40个人,最后真正做一线开发的大概有20人,从事硬件开发的就只有5个人,剩下的都做了软件工程师。而一直坚持到今天还在做硬件的就只有3个人了。有一个是在国外,还有一个在大学,真正在国内企业干硬件工程师的只剩下了一个。

造成这种现象根本的原因就是国内企业对硬件开发的不重视,对这方面岗位的需求也小。我本人当时是选择做软件开发的,并且一直做了十几年,而我所在的公司因为要做硬件产品,硬件工程师还算是多的。可这么多年过去了,我能明显的感觉到,硬件方面的研发不光没有进步,反而在慢慢衰退。以前很多产品用的板子还会自己设计和生产,现在为了节省成本都选择外购了,硬件部门基本只剩下了做结构的。而那些硬件开发工程师要么选择了离职,要么就选择了转岗。

而这种现象不光是企业如此,在我们的高校也同样存在。我一个在大学计算机系当老师的同学说。他们新成立的人工智能学院,软件人才十分充足,可想招个硬件方向的却非常难。因为愿意搞硬件的人太少。为什么不愿意搞呢?因为硬件方向要出成果很难,往往搞很多年都出不了成果。而没有成果不光个人待遇提不上去,申请项目资金也是没有指望。

总之因为硬件开发的特性,企业规模越大均摊成本就越低。企业用人需求肯定都集中在一些硬件巨头企业。整体的市场需求没有软件工程师大。而在大学学术研究方面,因为硬件出成果的不确定性,也导致愿意从事这块的人不多。所以就造成了计算机专业毕业后大多数人选择当软件工程师。


80闲话


现在的我是一名在魔都生活的程序员,也是在从事于网站、APP之类的开发,同时我也是一个毕业于一所普通二本院校计算机专业的学生,记得我们刚刚毕业的时候,我们班一共五十多个人,大概有二十多个人选择了从事于软件开发,还有二十个人选择了考研,其他人选择了硬件或者其他行业。我来说说我做软件开发的原因吧。

1.软件开发收入稍微高一点。我老家是农村的,可以说是一个从农村走向大城市的孩子,记得当时我选择到上海来的时候,我妈妈却一直让我待在合肥,一贯比较坚持自己目标的我来到了魔都,开始了自己的魔都生活,的确,在上海的程序员薪资稍微高一点,实习生的时候我月薪是5k,我相信这在二线城市也算是不错的收入了。

(软件开发薪资表)

2.软件开发感觉高大上一点。我在大学的时候就对编码感兴趣,一直都会去自学一些语言,比如前端、JAVA,每天下课的时候我都会来找空看看视频,去学习学习,而硬件开发我感觉稍微次一点,我不喜欢和硬件打交道。从小对电路板不感兴趣,而且我对硬件开发还有点偏见,说实话,我认为软件开发比硬件开发层次高一点。

3.硬件开发特别费脑子,而且天天和服务器打交道,而且需要经验,工资低。可能我对做硬件开发的不了解,大学的时候上过一些操作系统、集成器的课程,学的我是一脸懵懂,考试估计都是老师给过的,也考过华为认证,但是考了一次没过就不考了。


如果你是一名毕业生,我还是推荐你从事于软件开发,一栋豪华的办公楼,一台apple电脑,一杯咖啡就是你一天的工作,每天接触的都是IT开发工作者,而且工作几年之后没有薪资低于一万的(除非你不爱专研)。如果你是一名从事于软件开发的工作者,我们一起努力,加油。



其实,这个问题的真正原因是,大部分院校的计算机专业的学生,只学习了编程语言、算法等软件工程师相关的东西,而没有学习硬件工程师相关的单片机、ARM、FPGA、PCB电路板相关的硬件知识,也没有相关的实践经验,因此只能从事软件工程师工作,而不会去从事硬件工程师的工作。

我和2个高中同学,报考了同一所大学,我学的是自动化专业,同学A学的是计算机专业,同学B学的是软件工程专业。我们学校软件工程专业是在新校区,软件工程专业的学费也比其他专业贵很多。据同学B讲他们从大一开始就学习编程语言和各种算法,同学B后面主修的是java语言。而我和同学A,由于我们学校的大类培养,大一、大二的时候,我们自动化专业和计算机专业的学科是相同的,编程相关的只有c语言。到了大三的时候,我们自动化专业开始学习单片机等各种硬件相关的专业知识,后面我也加入了嵌入式的科研小组,学习了ARM等嵌入式技术。而计算机专业的同学A,则在大三的时候开始学习各种算法,他也加入了学校的软件编程俱乐部,开始了软件编码的生涯。

虽然软件工程师和硬件工程师都是程序员,但是二者研究的东西,却是截然不同的。对于想以后从事程序员工作的同学来说,大学选专业的时候一定要擦亮双眼,否则再转行就要比别人付出额外的努力。

喜欢请点击关注~分享更多程序员的工作、生活和情感故事给你~



溪月飞花


作为一个从事软件开发的IT人来说,这个事情也算是个经历者吧;我是正规的科班生,大学就读的是软件学院;当时我们的学院一个年级总共有15个班,其中搞硬件方面的也就一个班,是嵌入式的方向;本来我开学也是要去学的是嵌入式方向的,后来在网上了解了许多这方面就业信息后,果断的选择了软件开发,做了个Java工程师;


这个问题我们从以下两个方面来分析下:

  1. 市场需求

  2. 待遇和发展


市场需求

中国在互联网硬件行业的市场需求非常的小,这其中的原因我想大家也都知道,计算机是人家美国人发明的,所以在这方面的中国制造几乎是没有的,我们日常电脑用的芯片、处理器等等,最出名的莫过于高通、因特尔等等,都是外国制造。与之相反的是,中国的互联网行业却非常蓬勃,甚至很多的技术在全球领先。就像马化腾老师说的,

过去中国互联网领域的很多创新停留在应用层面,下一步腾讯要啃“难骨头”,更注重“技术突破寻求产品落地”。

也因此,中国对于软件人才的需求量特别巨大。这也就直接的造成了,学习计算机的人更愿意进入软件行业而不愿意进入硬件行业。


而市场需求较小,再加上软件开发人员做的更多是对现有系统的维护升级,且开发出一个新的系统也是相对比较成本低;而反之硬件开发人员,去研发一个产品的成本是非常高的,费用不是一般的公司能够承受的起的;

所以硬件方面的大型公司几乎没有;叫的出名字的也就几个:

联想:做硬件起家的公司

华为:软件和硬件兼顾

中兴:通信设备、手机等

但反过来看软件行业,阿里、腾讯、百度、美团、京东、头条等等,多的数不胜数;大型企业的多少,也就造成了对于软件开发人员的需求会比硬件开发人员的需求高得多。


待遇和发展

市场需求小,也就使得硬件开发人员的初期待遇相比较于软件开发人员的待遇会差的多,一般硬件开发人员得要工作个好几年,经验上有,才可能有高工资的可能;

另外软件开发人员的成长方向也比硬件开发人员的成长方向多的多,前端、后端、运维、测试,前端又细分为android、ios、web等等,后端又细分为java、go、python等等,发展机会也会更多些。


结语

其实对于我国的硬件行业的发展个人也是比较焦虑的,软件的发展是以来底层硬件的支持的,现阶段我国华为5G的发展,IPV6搭建了4个域名服务器(1主3副)都在不断的在基础建设上取得了很大的进步,所以个人也希望有更多的人能投入到基础建设当中,为我国的基建做贡献;


以上纯属个人观点,欢迎一起探讨!!

一只懒懒的coder


本人嵌入式毕业,自己爱嵌入式,大学期间算是比较热衷于研究,技术在班级里前三名没问题(二流学校)。实习的时候在一家智能锁公司,实习工资3k(三线城市,相比软件实习算高一点)。

毕业时想去省内著名嵌入式公司做开发,投了简历,没有回复。又去找了几家新兴的嵌入式公司,要求是月薪2k,做三年。沃日!整个班级,毕业就我一个人找嵌入式工作,其他全部转软件开发。迫于生计,只好走软件开发了,一开始就4.5k。平均年涨薪1k左右。硬件工程师,我就呵呵了,什么鬼都要做,而且硬件真没那么容易,难得很!没有大量人力物力财力投进去是不可能有好产品出来的,目前大部分物联网公司都是忽悠,产品经不起折腾。

硬件开发慢慢的会往巨头身上转移,小公司耗不起


單車戀人唯


一个真实故事告诉你原因

举个身边的例子,大学室友在大三分方向的时候,选的是嵌入式开发,这是个偏向于硬件的方向。而另外几个室友都是选择Java方向,毫无疑问只搞软件方向。那个嵌入式方向的同学其实对嵌入式很感兴趣,需要用C语言和单片机,但是最后不知道什么原因 ,他最后在大四阶段开始苦学Java,在毕业以后收到上海某家软件开发的offer。

他改变方向的原因,我我大概问过一句,你怎么不搞嵌入式了,他说,不好找工作。

这就是现实,软件工程师就业率很高,我们宿舍全部都已经成为了软件工程师,都是程序员。

当然,硬件开发不止有嵌入式开发,还有更加偏硬件的工程师,他们会更加接近底层,然而上手难度也相对较大,真正能达到就业水平的并不多。


极客宇文氏


路过来回答一下。

我和你举个栗子你就明白了。如果可以选择,士兵上战场一般就拿一件顺手的兵器就足够了。

软件工程师的工作只需要一台电脑足够,任何地点,任何时间,一台电脑,OK!

硬件工程师的工作一台电脑可满足不了,还得各种各样的硬件设备,电路板、测量工具、各种元器件,等等。我之前的公司就是一个主打硬件的公司,不过我是在里面做软件系统。硬件部门的师傅,他们的桌子上除了自己的东西占10%,剩下的全是设备,各种各样的设备。

所以,这是很多计算机专业的学生无法忍受的,即除了需要学习软件知识以外,还要学习各种硬件知识。超累,而且一点也不酷。

其次,硬件知识的复杂枯燥远超软件。硬件需要处理各种指令,这些指令都是十六进制表示的,当然,到了硬件上就全是二进制了。这些东西说实话,是个人都不会太愿意弄。我之前和硬件部门的工作对结果。就是处理各种十六进制的转化,非常枯燥复杂。

相比硬件,软件就要轻松许多。不同的业务逻辑,有的甚至可以产生某种莫名的成就感和喜悦感。

另外,软件和硬件的市场活跃程度也不尽相同。

从2000年以来,我国互联网行业飞速发展,很多IT企业全是虚拟产品,这就让人们看到了虚拟产品带来的巨大经济价值。相比硬件行业。很多硬件需要固定的客源以及销售才能逐步打开市场,这在竞争上,远不及面向全国互联网用户潜在的价值更大。所以,软件火也是一种必然。

在这样的趋势下,计算机专业的学生愿意选择软件开发也是再正常不多了。

综上三点就是我认为关于题目的一点见解。

希望可以帮助到你。


高级Bug调查员


不请自来。

我本科是电子信息工程专业,毕业后也没做硬件开发,而是做软件了,后来读研做人工智能了。

先给出结论:都是钱在作怪!

待遇方面

学东西都是为了以后能挣钱养家,既然都是学,为什么不学来钱多的?下图是随意找的网上招聘硬件和软件的薪资图

可以看到,软件开发比硬件开发高了一大截,这是学生选择软件而不选择硬件最主要的原因。

学习成本方面

学习软件技术基本0投入,学生只需要准备一根网线,一台笔记本,就能凭借丰富的网络资源从软件开发菜鸟进阶到大神。学习期间试错成本几乎为0,学的东西马上就能练手,学习得特别快。

而硬件学习就很杯具了,学生需要购置硬件开发板,动辄几百上千,学生很伤不起的,我本科期间就买了差不多合计3千多的板子。啥?您不买,那你怎么学,你写的程序必须要用板子来验证,没板子您玩啥呢。

这就是我弃硬从软的直接原因。

学习难度方面

软件学习相比硬件学习那就简单太多了,需要数学不是很多,难一点的也就数据结构和编译原理,都很OK。

要说到硬件的话,那可就惨了,各种电路,特别是模电,我们班上2/3的人都挂了,学院差不多挂一半,模电重修班都开好几个,有的同学大四了都还要重修模电,简直不要太惨,一个三极管咋就能玩出这么多花样。后续的信号与系统、通信原理、电磁场,哪个不是让人头发掉光的科目,我本科期间只挂了模电真的太幸运了。

结语

在这一行的, 大家都知道嵌入式是大坑,所以学的人越来越少,嵌入式也看不到曙光,现在早就是互联网的天下了,未来将是人工智能的,学习未来,向前方看齐这是正常人都会有的想法吧。硬件学习成本高,收入低,软件成本低,回报高,不怪这些学生会弃硬从软了。


小枫师兄


我是一名计算机专业的毕业生,本科学习的专业是信息安全,研究生学习的专业是计算机应用。毕业之后在美团点评做服务器后台开发的工作。

为什么一些计算机专业的学生毕业后都愿意从事软件开发而不愿意做硬件开发工程师?

  • 计算机学院的专业大多偏软件,重软件而轻硬件

以我们学校计算机学院为例,学院目前开设五个专业:计算机科学与技术、信息科学与技术、信息安全、网络工程、物联网工程。这五个专业全部是偏向于互联网软件的方向,课程安排中基本没有硬件相关的课程,大家平时学习的都是计算机基础知识和计算机软件开发方面的知识,所以毕业之后,大都会选择自己比较擅长的软件开发相关工作,而不会去做自己不擅长的或者说根本一窍不通的硬件开发相关工作。

  • 硬件比软件的学习难度要高

我们信息安全专业偏软件、偏数学计算,但是读大学的时候也学院也为我们专业开设了一门硬件相关的专业课《微机原理》,这门课讲了单片机嵌入式开发的相关知识,开发语言使用的是汇编。汇编,这个词学计算机的都知道,语法难懂,上手困难,还看不明白。这门课结课之后,班里的同学都表示云里雾里啥也不懂,到最后考试的时候,挂掉了接近一半的人。举这个例子,想说嵌入式太难,如果要想学精学明白,估计会花大量的时间和精力。经过这门课的考试结果表明,大家对硬件开发兴趣不大。本科毕业之后据我说知,我们专业一百多人无一人从事硬件开发相关工作。一起研究生毕业的同学也无一人从事硬件开发的工作。

  • 硬件开发对技术水平要求高

现在的硬件开发工程师,不仅要求懂硬件开发也要懂软件开发,只有软硬兼修的人才能真正的适应这个工作。举个简单的例子,美团外卖的订单打印机是美团自己开发的硬件产品,但是开发硬件的工程师也都是软件开发大牛。现在的计算机专业的同学毕业之后,能胜任硬件开发工程师的并不太多,除非是专修硬件开发专业的同学,这也是为什么我们毕业之后大多都去做软件开发相关工作的原因之一。


虽然硬件开发工程师入门要求比较高,但是工资也高,所以如果想从事硬件开发工程师的工作,必须软硬兼修,提高自己的综合实力才能更好的胜任这份工作。


个人拙见,欢迎诸位评论交流!


【我是小马锅,热爱互联网,热爱数码,如果您喜欢我的回答,劳烦您为我点个赞!欢迎您关注、支持我!感谢!】【如果您有任何计算机相关的问题,可以私信我,必定知无不答!】


分享到:


相關文章: