美国计算机专业:美国计算机专业就业前景

计算机专业|2014年03月06日 14:34
信息时代的到来,计算机专业不可否认是最吃香的专业,尤其是国内门户网站的不断崛起,科技富豪层出不穷,造就了计算机专业毕业生的不愁出路,但随着计算机人才的不断增加,新老更迭的加速,计算机专业就业前景是依旧光明还是不可预估?下面是一位计算机过来人给大家分享的就业情形,与千千万万的计算机毕业生共享。

  信息时代的到来,计算机专业不可否认是最吃香的专业,尤其是国内门户网站的不断崛起,科技富豪层出不穷,造就了计算机专业毕业生的不愁出路,但随着计算机人才的不断增加,新老更迭的加速,计算机专业就业前景是依旧光明还是不可预估?下面是一位计算机过来人给大家分享的就业情形,与千千万万的计算机毕业生共享。

  首先说一下计算机专业毕业生能做什么

  一、developer/programmer/software engineer

  不管你是硕士,还是博士,不管你是学CS哪个方向的,研究算法(algorithm)的也好,人工智能(AI)的也罢,或者是软件工程 (software engineering)、图形处理(graphics/image processing)、网络(network) etc etc etc,大家将来都有一条共同的也是CS里最大的出路,就是去写code编程做软件开发。

  很多人申请的时候,或者在学校读书学习期间,很在意各个方向的区别,痴迷于某个领域,但是工作几年回过头来一看,没啥区别,大家都有一个光荣的头衔,好听点叫软件工程师,难听点叫程序员,职称(title)和工资高点低点而已。区别无非是有的人通过学校期间的学习或者研究,具有domain knowledge(比如说常见的image processing算法,数据库知识,各种网络协议和分布式系统知识),然后去开发各种相应的domain-specific application(比如图形图像处理软件,数据库管理软件,网络设备/分布式系统上运行的软件)。等你每天写了无数programs之后,可能对领 域上的区别早就麻木了;等你工作多年,做了无数个project以后,可能早就不care到底算是那个domain/area的了,来了通杀。

  不管你是在哪个行业工作,IT也好,金融保险也罢,或者是咨询、生物技术、whatever,不管你的工作头衔(job title)听上去很好听还是很丢人(比如architect/Principle/Technical Lead vs programmer),也不管你的工资是1万一个月还是5000一个月,最关键的是你的工作性质是什么,只要是以软件开发/编程为主,那么你就是此类的。

  这么一说,可能大家就明白了,原来学CS的,不论你是什么方向,殊途同归啊,那我还计较个啥?区别还是有的,比如说现在cloud computing比较hot,不少公司在做相关的东西,如果你在学校里是研究这类技术的,公司可能会因为你的domain knowledge招你而不是一个研究图形学的,但是你将来的工作性质,跟开发图形处理软件的兄弟们是一样的,说高尚点叫large scale system design and development,说俗了就是coding, coding and coding。

  大家都说做IT的是民工活,其实公司里资历久,对核心产品底层architecture懂的多的技术骨干,工资也是很高的,而且地位高工作也稳定。

  二、software QA(quality assurance)/testing

  从软件工程的角度来说,有人写软件,就得有人专门跟在后面找bug提高软件的quality。QA的活一直被轻视,以前曾经被认为是可有可无的东西,不需要专门的QA,现在被越来越重视了,当然还是有些人觉得qa不如做developers更重要,但是不可否认的事实是,QA不可或缺,QA工作现在很多,已经在计算机行业里占了很大的比例了。

  QA对技术的要求相对低。QA可以粗略的分成两种,一种是mannual testing,全手工测试,你不需编程,基本就是分析软件系统,制定测试计划和用例,然后用鼠标去点击为主,从技术角度来看,的确低级了点,早些年,developers觉得去做QA是降级,跟发配充军一个意思,所以QA不得不到处找,来源很复杂,做QA的整体技术能力也比较低下;现在随着公司对 产品质量和测试工作的重视,有CS技术背景出身的qa越来越被青睐;第二种QA,做的是自动化测试(automated testing),就是用软件工具或者自己编程来自动化测试,这个就要求懂技术甚至要会编程,但是要求又没有developer那么高,这种技术性的QA 也比较缺乏,现在的趋势是很多公司尽量用automated testing替代mannual testing来提高效率。

  同样经验/教育背景,QA的工资应该比developer低,但是差别也不是很大。很明显,学cs任何一个方向的人,都可以胜任QA的工作。

  三、Database/network administration

  数据库/网络管理对编程要求也很低,你不需要像开发数据库或者网络管理软件的人那样子,天天耗在编程里。这类工作优点很多:

  1 就业范围广,稍微大点的公司、学校或者任何机构都需要有高级管理员来管理维护网络和存储备份数据库;

  2 工作经验越丰富越受欢迎,因为很多job就是得经验丰富的administrator才能处理好,不是随便扒拉一个没多少经验的人就能凑合着做的;

  3 信息社会,公司对数据库和网络依赖严重,所以有时候一个经验丰富的database/network administrator对公司可能非常重要,如果他突然撒手走了,公司又没有准备好替代人员的话,会损失惨重的。

  因此,这类工作工资高,也比较稳定。前段时间有些金融公司即使大幅度裁员,核心的网络和数据库管理员也会被保留。

  这类工作的缺点是入门比较难,公司希望你能有相关的实战经验而不仅仅是会点学校里的理论知识,刚毕业的学生往往根本没有这方面的经验;有时候需要在晚上或者周末工作,也可能有on call的情况出现。

  四、Others

  其他的工种也有,比如release management,用户界面(UI, user interface)设计,usability,Technical support等等,但是一方面这些工作数量相对少,另一方面,不同的公司里,相同的职位名称可能具体的工作性质不太一样,比如做release managment的,有的公司要求做很多QA的活,有的公司更靠近developers,还有的公司可能让你安装/搭建系统来管理不同的 releases,跟个系统管理员似的,所以就不一一详叙。

  最后,谈一下cs研究生教育和工业界需求的不同。

  很多人来美国以前对研究生学习充满了期望,以为可以通过学习,迅速获得将来在社会上求职谋生的技能。这个想法当然没错,但是我想提醒,学校里侧重培养学术科研能力,传授理论知识,跟工业界需求不同。

  大家都希望选择排名高的学校接受研究生教育,而这些学校,只所以排名高,很大程度上是因为理论研究做的好;research做的不好的学校,排名不可能高了,甚至是没有什么排名。

  研究生学习,尤其是在一个侧重理论研究的氛围下,老师们强调的是你在一个小方向内深入研究,获得领域知识(domain knowledge)和解决问题的能力;学校里做research,经常可以听到强调”IDEA”(中文可以翻译成“点子”),把IDEA挂在嘴边,因为 找到新颖的idea设计一套方法理论来解决学术问题,才是科研的核心;老师当然希望你有强大的编程能力来实现你的idea,但是找出idea远比编程更重要,因为编程能力可以慢慢培养,idea可不是你想有就可以有的。

  研究生的课程,根本目的还是系统的传授理论知识给学生,而不是教学生如何使用某项具体技术,所以到了研究生这个层次,就没有什么很应用的课程比 如说C++/Java了。开设的程序语言设计(programming language design)这种课程,也是从底层告诉你如何设计一个程序语言,而不是教你指针数组怎么用,类怎么设计。整体上,学校里轻视成熟技术,学校的老师不会很 excited陪你整天玩j2ee,.NET这些东西,尽管他们在工业界用途广泛。

  相比之下,公司决大部分职位需要的是能熟练使用某些具体技术的人,公司基本不需要你卓越的研究能力和超群的理论水平。

  如果想要了解更多关于美国计算机专业的相关资讯,可以访问http://www.cs.easyoz.com,或是拨打热线电话4006-918-230 进行具体咨询。

我要咨询

您的姓名 所在地区
联系电话 QQ
意向国家 邮箱Email
咨询内容
 
留学专业大联盟