据雅虎体育消息,迈阿密热火队的全明星球员克里斯-波什最近参与了一则公益广告的拍摄,呼吁美国人都学习编程。
“编程是完全能够学会的,我知道这对于有些人来说可能有些困难,但是其实很多事情都是这样的。”波什在广告当中这样说道。
在雅虎体育的文章里面,还给出了一张波什在更衣室里面玩弄电脑的照片,波什坐着一个小板凳,电脑放在两条腿上,波什的一只手放在电脑上,另外一只手则托着下巴,戴着耳机,好像若有所思的样子。令人不可思议的是,在广告当中可以得知,克里斯-波什在大学期间所学的专业是编程。
是的,波什在当年所学的专业正是编程,并且在他小时候,他就参加了一个名为“神童”的计算机学校,这所学校从1987年就开始招生。
在这部公益广告片当中,扎克伯格、纽维尔和其他人都谈到了自己的第一次编程经历,并且谈到了他们当初为什么会进入到这个行业,并且指出在目前计算机编程人员短缺。
帕托维则表示计算机科学并不受美国学校的重视,目前在美国50州当中,有41个州没有将计算机科学列入毕业学分统计范围,在未来十年当中,美国大概需要大约 140万名编程人员,根据之前的一些预测,按照现在的速度,到那时候只有40万名计算机专业的毕业生。帕托维还表示,编程不仅有助于科技行业,而且能够提供更多技术工人,这样可以帮助美国,也可以帮助他们自己拿到高收入工作。
前段时间也有报道指出一家美国重要基础设施公司的一位明星程序员竟然将自己的工作外包给了中国沈阳的一家软件公司,只需支付薪水的五分之一而已,他自己则在上班的时候在网上闲逛。一直以来,该名员工一直都是公司的明星程序员,被认为精通C、C++、Perl、Java、Ruby、PHP和Python。
综上可见,在美国学习计算机编程后的就业前景有多么可观,即使是一个小小的程序员,但由于人力资源的短缺,美国一直以来又致力于开发的高端产品,这无疑不极大刺激着对于计算机编程专业从业人员的大量需求。
接下来就为大家介绍一下美国的计算机科学专业
其实美国计算机科学专业在美国来说概念很模糊,可以说CS,CE和EE是相通的。
有些美国院校设有有单独的计算机科学系,也有一部分将EE和CS设在一个院系下的,比如说:MIT,UC Berkeley,Northeastern U等。还有一部分将CS和CE设在一起,比如说U Washington Seattle,UC San Diego,Penn State等。
一、CS该如何选校呢?
有些学生和家长对于选校特别纠结,其实我觉得选校是最为关键的一部分,一般选择学校都需要2个月的时间,从学校的地理位置,就业情况,学校的专业排名,学校的偏好,学费等都要权衡利弊。
二、硬件成绩和软件的包装
硬件成绩就是所谓的在校的平均成绩,美国院校的录取委员中心会很看重该学生的平时在校表现,他们不太喜欢这个学生平均成绩很低,但是GRE成绩很高,他会认为你是一个很懒惰的学生,只是考试型的。所以一定要保持良好的GPA固然重要。下一项就是你的学术考试GRE和非英语国家的英文考试TOEFL很重要,他们反映了你的英文水平和学习能力。一般美国大学计算机科学专业前30名大学的录取标准按照以往的录取线是GPA3.3分以上,GRE1350分以上。T 95分以上,需要PS和凸显该专业研究领域的科研项目,以及论文发表等。
下面给各位同学介绍几所大学录取标准如下:
Carnegie Mellon University
CMU是最早建立的计算机科学系之一,机器人领域一直处于世界领先水平。
学校每年招收30人,GPA 3.3分 GT G>1450分,T110分
学校截止日期:12月15日
University of Wisconsin-Madison
UWM每年录取200名学生、
其中90%--95%的学生拿到学校的RA,TA和Scholarship等类型的奖学金。
UWM非常注重申请人的专业背景,要求申请人本科一定要选修过以下课程:计算机结构,数据结构、离散数学、程序编程解析,算法,软件工程,操作系统,人工智能,微积分,微积分II, 线性代数,统计学之应用等。
UWM提供了三种给申请人选择:
﹡MS-only program
﹡MS/PHDprogram
﹡PHD-only program
University of Delaware
UD非常注重申请人的专业背景,要求申请人本科一定要选修过以下课程:微积分,离散数学,概率统计,数学逻辑,计算原理,数据语言编程,数据结构,计算机结构,操作系统,运算法则分析等的背景。
GPA: 3.0分
GT: G>1200分,T80分 TA >100分
UD比较注重论文的写作:学校有三条常规性的论文题目,分别是1你的职业目标是什么?与此相关的学习计划是怎么样的?类似PS,2在你的专业研究领域,你对哪一个细分方向比较感兴趣?简单解释一下,3.你在你的专业研究领域有什么特别出色的地方?你有被人怀疑犯罪的经历吗?如果答案是请进一步描述一下当时的情景以及从这件事中你学习到了什么?然后学校会根据你所感兴趣的研究方向来定你的其他的论文题目。
而计算机专业毕业后,在美国能从事什么样的工作呢?
一、developer/programmer/software engineer
不管你是硕士,还是博士,不管你是学CS哪个方向的,研究算法的也好,捣鼓人工智能的也罢,或者是图形处理、网络,大家将来都有一条共同的也是CS里最大的出路,就是去写code编程做软件开发。很多人申请的时候,或者在学校读书学习期间,很在意各个方向的区别,痴迷于某个领域,但是工作几年回过头来一看,没啥区别,区别就是有的人通过学校期间的学习或者研究,具有domain knowledge,然后去开发各种相应的domain-specific application。
这么一说,可能大家就明白了,原来学CS的,不论你是什么方向,殊途同归。但区别还是有的,比如说现在cloud computing比较hot,不少公司在做相关的东西,如果你在学校里是研究这类技术的,公司可能会因为你的domain knowledge招你而不是一个研究图形学的,但是你将来的工作性质,跟开发图形处理软件的兄弟们是一样的。
二、software QA(quality assurance)/testing
每年网上都有很多人发帖子说“我学cs,但是我编程能力比较弱或者不喜欢编程,将来我能不能不去coding?”做软件测试就是一个选择。
从软件工程的角度来说,有人写软件,就得有人专门跟在后面找bug提高软件的quality。QA的活一直被轻视,以前曾经被认为是可有可无的东西,不需要专门的QA,现在被越来越重视了,当然还是有些人觉得qa不如做developers更重要,但是不可否认的事实是,QA不可或缺,QA工作现在很多,已经在计算机行业里占了很大的比例了。
QA对技术的要求相对低。QA可以粗略的分成两种,一种是mannual testing,全手工测试,你不需编程,基本就是分析软件系统,制定测试计划和用例,然后用鼠标去点击为主,从技术角度来看,的确低级了点,早些年,developers觉得去做QA是降级,跟发配充军一个意思,所以QA不得不到处找,来源很复杂,做QA的整体技术能力也比较低下;现在随着公司对产品质量和测试工作的重视,有CS技术背景出身的qa越来越被青睐;第二种QA,做的是自动化测试,就是用软件工具或者自己编程来自动化测试,这个就要求懂技术甚至要会编程,但是要求又没有developer那么高,这种技术性的QA也比较缺乏,现在的趋势是很多公司尽量用automated testing替代mannual testing来提高效率。
三、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,跟个系统管理员似的,所以就不一一详叙。