为什么很好的朋友一直建议我做当了程序员的你们后悔吗,我是软件工程专业,但是我对编程不擅长没兴趣,我朋友是国贸专业?

计算机专业主修计算机硬件原理、软件编程、编译原理、数据结构、网络等课程,与电有关的,只有数字电路、模拟电路。计算机专业毕业,要做一个合格的硬件工程师,还差很多基础知识,是不行,而不是愿意与否的问题。

计算机专业优势很大。在编程上,一般的软件专业毕业生比不上,特别是做自动控制、通信相关的软件开发,那是为计算机专业毕业生定制的。

在系统架构设计上,计算机专业也有得天独厚的优势, 软、硬件都明白。从软件通讯协议制定,到硬件控制方式,时序分析,数学算法等等,都能很清楚地描述清楚。

很多硬件从业者,在系统结构上,体会的总没有计算机专业毕业生深刻,卡在了软件这一环节,主要是硬件设计者对软件的繁杂的协议搞不明白。

硬件用protel设计电路,用VHDL编写FPGA,是时下很时髦的。

但作为一个合格的硬件工程师,这些还远远不够。一般protel设计的PCB板,不可能一次OK,需很多次修改。比如,由于隔离不好,外部电路噪音对PCB板影响,导致误动作,需要进行抗干扰处理;电阻、电容选择不当,可靠性受影响。

看上去简单的问题,没有一定的电路设计水平,是无法解决的。这些小的修修补补,是专业硬件设计者的强项,但对于计算机专业毕业生,也许永远也搞不定。

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

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

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

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

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

1,硬件太复杂了,至今我还没有见过其他哪一个工种需要这么庞杂的知识体系。高数复变函数积分变换这些工程数学背景需求就不说了,就说工作中用得到的专业的数电模电电磁场电磁波,每一门都比C语言难学,而且C语言硬件工程师也要学,上学时这门课基本上70%以上的学生都能掌握。另外硬件还要学汇编,被广大软硬件工程师视作天书的一门语言,当年秒杀了同届90%以上的同学。

但是你以为学会了这些就够了?图样图森破,等你干了硬件才发现,还有电源系统设计,热设计,结构设计,emc设计,各种元器件和芯片原理以及使用方法和失效模型分析,各种总线接口,pcb知识,pcb布局布线知识,PCB可制造性设计。对了,还有高速信号处理,简直就是一门玄学,你以为你电压电流对了,线路接对了板子就能工作了?幼稚!时序,信号反射,串扰,地弹,开关噪声,差分耦合度,抖动,插入损耗,回波损耗,阻抗匹配的各种问题还在前方等着你,当然这些名词你们可能听都没听过。

可是上大学的时候和入行之前,鬼知道还要学这些啊?截止目前,相信国内还没有哪所大学开这门课。对了,硬件还要做项目周期管理和出BOM(也就是物料清单),产品成本管理,替代料管理,客诉处理,产品生命周期内的部分维护工作。还要懂和会大部分环境测试,可靠性测试,机械测试,兼容性测试,单板功能测试,噪声测试,emc和其他性能测试。

所以大学毕业之后,硬件五年才算入门,如果折算到学历上,最起码等同于硕士学历了,干得好的说博士也不过分(差别只是在于专和精),但是,这也才是入门。软件呢?不说那些培训几个月就上岗的简单工种,就是专业一点的,两年入门。干了这么多年,只看到硬件转软件的,从来没见过软件转硬件的。

2,成本。主要是以上所说的各种测试,便宜一点的设备就万用表,ACDC SOURCE,电子负载仪,其他的随便一台示波器几万几十万,高速的百十万。频谱仪,TDR,矢量网络分析仪,环路稳定性测试仪等等,也是没有一个便宜货。EMC测试的单项测试的仪器每台几十万,总共RE CE RS CS ESD SURGE DFT FLIGHTING等等十几项测试,就是十几种仪器,都没有便宜的,还有安规测试几种设备,这些设备还要配专门的实验室和操技术员(不是一般的技术员,也都是大学毕业的专业从业人员),就算你去租设备和场地,也是一个小时四五百,是的,按小时计费的。

曾经解过一个emc的bug,折腾半年累计测试了两三百个小时,加上人力样机物料等,花了20多万。其他的各种物料成本,小小的导光柱开模好几千,外壳打样一套好几百,开模更可怕,十几万二十万,其他的PCB板厂开机费,贴片厂开机费,钢网开模费等各种成本,一个字,贵!最贵的是项目周期,硬件如果出了问题改一次版本,很多工作和测试从头来一遍,快的话一二十天,慢的话两三个月半年。相比之下,软件出了问题,解解bug,敲敲键盘,成本要小得多。

所以做硬件,真的压力山大,这些年来,很少开心笑过,整天都一脸严肃如临大敌。已经成为一种职业性格了,恐怕一定要等到转行或者退休的那一天才能彻底放松吧。可以说硬件工程师真的是用钱和项目经验堆起来的。

3,地位不如软件,不管是在公司的地位还是社会地位,甚至在相亲市场的地位。说到软件大家都感觉是人才,说到硬件,大家都觉得是打杂的,甚至都没听说过,我已经无数次跟相亲的姑娘们解释自己到底是干啥的了,妹纸们听了半天,哦了一声,再来一句,听不懂你说的啥。

还有就是你听说过软件一怒删库走人然后公司倒闭的,但是你从来没听说过硬件一怒,拿锤子把设备机器砸一砸走人的。动静太大,容易被发现,走不了还要赔钱。软件敲敲delete,换换账号口令,删除几行代码,鬼知道?等到发现的时候,对不起,已经不是贵公司员工了。

4,钱途。你以为你受了那么多苦就要苦尽甘来了?呵呵,相同工龄的硬件工程师大概是软件工程师待遇的一半,真的是操着卖白粉心,挣着卖白菜的钱。

现在,你明白大家伙儿为啥不干硬件干软件了吧?

但是硬件是基础是地基,再屌的软件再高的大厦,都离不开硬件支撑,再复杂的架构再快的协议,最终还是要靠每一个单元门电路实现0和1的翻转。中国的电子科技发展,软件在飞速发展,硬件和芯片发展,还长路漫漫。如果你身边还有坚守在硬件岗位上的兄弟,请珍惜他们,因为软件工程师的每一个秃头和强大里面,都有硬件工程师的一份功劳。

综上所述,计算机专业毕业生,即使想成为一个硬件开发者,也有很大难度;但作一名系统架构师是绝无问题的。至于硬件、软件那个难度更大,真的不好说,但一般的软件工程师薪资高于同级别的硬件工程师,是一个不争的事实。没办法,只能委屈搞开发的硬件从业者了。

现在很多计算机专业的研究生在校编程能力很弱,但就业却很好。这是为什么呢?

因计算机专业的研究生,学习一直在大学校园,从书本到书本,每天几乎都与书、同学、导师打交道。走出校园与社会接触的机会很少。

因此,编程只有在导师的指导下,学习编程相关的理论知识和实战课程。由于许多导师没有在校外挂职,编程的研究,多停留在理论层面,而实用性,有商用价值的编程比较少。

由于编程在理论层面,没有通过实践的检验,可能会在实际应用过程中,还会出现这样或那样的具体细节的问题。

这些细节问题,只有在实际应用过程中才会发现,而在校的导师和研究生是无法获得这些实际应用中的细节问题的。因此,导师和研究生在校是无法获得这些解决实际问题的能力的。

所以,从实验室培养出来的研究生人才,理论水平很高,却实际应用水平能力却很低。从而使得计算机专业的研究生编程能力较差。

但近年,随着我国工业智能化的异军突起,IT行业的发展十分迅猛,急需大量的ⅠT(即编程)人才。

这些人才,从那里来,当然只有从大学里来。

所以,自然就出现了计算机专业的研究生,即使编程能力很弱,也能找到很好的工作的原因。

而对于公司或企业来说,这些研究生,一旦进入公司或企业后。由于计算机理论知识功底深厚,它们就能在研究课题组的领军人的指导下,充分释放出来潜在的能力。

虽然在开始编程的水平较差,但由于在编写程序的过程中,不断地应用。它们就可从应用中不断发现问题,然后不断地修正问题。如此反复下去,应用、修正,研究生编程就会逐渐变得完美。同时,编程的水平也不断地得到了提高。

只要长期这样坚持下去,多开发几个项目,这些计算机专业的研究生,就可独立地进行编程,编的程序就能达到商用要求,从而就能为公司或企业创造巨大的经济效益。

综上,就是为什么计算机研究生编程能力较弱,而就业很好的原因。

我要回帖

更多关于 当了程序员的你们后悔吗 的文章

 

随机推荐