关于软件工程师和硬件工程师总有太多的话题。
常态往往是这样滴:
板子出问题了,
硬件工程师:肯定是软件的原因!
软件工程师:绝对是硬件的问题!
第二点我觉得要归功于现在的创业潮。
不管在美国在中国互联 创业都是趋势,但是可以说绝大部分的初创互联 公司做的都是软件方向。有个点子,有点技术,找几个合伙人抱着电脑就能开干了。但是初创公司要专注做硬件开发就比较难了,因为成立设计硬件公司的门槛和起步开销比较大。所以这也导致大部分初创公司以互联 为主,能做的了硬件设计的公司基本上都是处于垄断地位的大企业。
第三个很重要的原因就是硬件设计在现在来看已经是相对成熟的技术,我甚至有ee的同学跟我说大部分硬件的东西已经步入夕阳产业的范畴,因为很多东西已经成了规范,也因为很多东西被自动化所取代。前一阵子全球大牌的硬件公司才裁了不少人,intel更是裁掉了接近20%的硬件工程师。但是互联 热从90年代开始到现在热头还没过,而且未来诸多产业如人工智能,机器学习,图像识别,大数据都才刚起步,所以还有一定的上升空间。
还记得当初我们学校的初创公司招聘会上几十家公司只有一家招硬件工程师,而且还是偏软件的硬件工程师,剩下的公司里98%都在找会码代码的人;大企业的招聘会上才能见到nvidia, arm, intel, TI 的身影,但是哪怕是这样基本上所有的公司招牌上都会有大写加粗的招computer science的字样。
再从个人的角度来讲。想成为一名软件工程师找到工作的门槛远比成为一名合格的硬件工程师低很多。要想以软件工程师的身份混到个饭碗,能学两门语言学好常用的数据结构刷点题就基本上能找到薪水小几千的岗位。我甚至知道国内有专门的软件工程师培训机构,那种专门教java和算法,两个月速成班,而且所声称的学生就业率还挺高的。
但是要想成为一名合格的硬件工程师,不是科班出身的不好好学几门模电数电信 逻辑设计的课,没有在学校实验室里自己焊点电路做实践,连简历都发不出去。而且现在要想学个什么语言框架, 上搜一搜“”xxx语言入门教程“”就有非常丰富的资源,但是要是在 上搜“如何学好超大规模集成电路设计”,要想找到可以受用的资源几乎是不可能的。而且就我所参加的招聘会来说,如果有招硬件工程师基本都要求有研究生的学位,但是对软件工程师的要求基本上就是熟悉算法数据结构,会web编程有相关经历就够了。
软件工程师很多时候吃的是体力,硬件工程师大部分时候是吃经验,所以硬件工程师一般得有一定的经历积淀才能脱颖而出。尤其像模电这种上手程度很高的方向,没个十年八年的相关经验根本不算学成出师。所以说本身对从业者的资质要求更高,也是硬件工程师不好找工作的原因之一。
上面是我所认为的短时间内软件工程师就找工作方面来说会比硬件工程师更容易的原因。但是这并不意味着会编程就肯定找得到工作,也不意味着硬件产业就会低迷下去。
软件工程师的职位多,但是每年从事这个职业的人也更多,虽然我认为现在软件工程师短期内还没有出现饱和的趋势(毕竟那么高的工资还摆在那),但是总有一天这个行业也会像金融产业一样降温(人才供过于求)。硬件产业虽然大部分已经有步入夕阳产业的趋势,但是曾经一度被宣称没啥好搞的供电 络最近也被smart grid搞得神乎其神,美国top5的高校都还设立了相关实验室。
此外,现在物联 ,车联 ,智能家居的概念被炒得火热,我相信等相关成熟的支持技术(能量采集,低功耗通信)以及统一的开发平台一旦出现,硬件工程师的需求只会更多,虽然这些产品依旧只有那些有背景的大公司才做得动(不过因为欧美国家电子产业上的封锁,国家也在硬件设计上砸了很多银子,初创企业也会慢慢增加,相信国内的相关机遇也会更多)。
而且毕竟软件产业毕竟还是依靠硬件,如何设计低功耗,高稳定性,能够承载大吞吐量计算量的硬件也是这个产业的挑战,毕竟人工智能,机器学习,视觉处理等领域是很吃硬件计算量的。没有强大的硬件支持,阿狗要想打败李世乭还是痴心妄想吧。
2. 工作常态 现在在一家设计为设计硬件的公司所设计软件的百强软件公司实习,做的工作大部分还是偏软件,所以本身对工作常态也并没有非常深入的自己的感受。但是就我观察身边的同事以及跟别人的交流来看,不管是做软件硬件,都是要:对。着。电。脑。。。
3. 我个人的感觉是不管怎样,这两个行业在未来都会有非常非常多的机遇与挑战(详细原因见第一点)。不管是软件设计还是硬件设计底下都有更多细小的分支(比如说你硬件设计是想做vlsi,dsp,处理器设计,通信,fpga开发还是嵌入式,软件设计你想做web开发,app开发,软件开发,嵌入式软件工程师,操作系统还是distributed system)。
我个人是对两个大方向都很有兴趣,但是我决定自己最终的方向还是嵌入式设计和处理器设计,这两个行业都应该算是夹在了纯硬件设计和纯软件设计的中间。尤其是产业对嵌入式工程师的要求更高,能够自己设计mixed signal pcb,自己调试应用代码写kernel code,能调试无线通信,基本意味着一个合格的嵌入式工程师要对硬件和软件相关方面有足够的知识。
我自己是比较讨厌做web开发app纯开发软件的工作,因为这些工作的门槛太低,不是科班出身的人可能都能混的比你好得多,体现不出来自己的价值。而且我比较喜欢把电路板和各种元件握在手里的感觉,而且我发现自己能够设计一个可以用的硬件的时候那种成就感会高于debug之后的成就感。
当你发现自己在经受了大学的磨练真正拥有了学习知识的能力以后,丰富的 上资源以及自身的积累都会让你学习这些 页app知识非常轻松,所以我个人更喜欢硬件底层,以及和硬件底层打交道的软件领域。软件硬件的课程都不会简单,而且两个学科的工作量不是其他学科能比的(学工科的天天做project呆lab,学统计的上完课就回家看电影)
所以要想学好,还是需要花一定精力,尤其美国的大学工科院系workload相对国内高校来说有增无减。确定这是你想要的,再给予考虑。
以上内容是不是说出了做软件与做硬件的不同体会过,据说,老工程师对此的回答是:工作久了就会发现其实需求才是根本,软件硬件只是实现需求的途径……
-END-
﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
往期好文合集
谈一谈无人机的编队控制方法。戳这里>>
干货 | 双目摄像头实现手势识别,完美还原人体运动手势。戳这里>>
这篇文章后,不要再问我怎么做一台智能车了。戳这里>>
//end
若觉得文章不错,转发分享,也是我们继续更新的动力。
5T资源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,PCB、FPGA、DSP、labview、单片机、等等!

长按识别图中二维码关注
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!