美国计算机软件工程发展之迅速,就业良好,以下文章介绍美国计算机科学专业软件工程方向SOFTWARE ENGINEERING的申请概述,主要讨论美国软件工程专业的研究学习内容,与申请难度和申请建议相关,希望能给有意申请美国软件工程的同学一些启发。
1 喜欢软件工程,该申请什么program?
首先,美国有一些学校有专门的软件工程硕士,这个跟信息安全硕士, MBA等一样,感觉算是职业培训。如果有几年工作经验,手头有钱,自费读这个方向也可以。但是中国人大多要奖学金,这种硕士program不太可能提供offer。
如果想作软件工程的研究,想拿offer,得申请CS, CS分很多方向,软件工程是其中之一。软件工程这种东西,有人喜欢,有人觉得太泛,有人觉得太理论,但是我也听这个领域的有些人说太实际了,empirical SE也是有人作得。。。这些是非话题就不讨论了。总之,申请CS,指明对软件工程感兴趣, that's it. --如果你申software engineer的offer,错误的申请了职业培训类型的SE master,你拿offer的难度至少会像MBA一样大。
2 软件工程研究什么
现在软件工程里面大家主要是对软件的正确性感兴趣。简单点讲,软件不正确,有错误,容易导致各种问题,造成各种经济损失。比如说,现在比较热门的计算机安全问题。我个人认为,安全问题跟软件中的错误是成比例的。如果软件没有错误,我们可能没有100%的安全,但是最起码MS不必经常发布补丁了吧,针对windows的攻击也会变得很困难,各种由软件导致的损失也会大大减少。每一种攻击的方法或者工具,背后基本都是一个或者数个软件错误,有的是实现中的错误,有的甚至是设计上的。---说这些,是说明软件正确性的重要性。
现在大家都在努力想出方法,能结合软件开发理论,保证正确性。当然软件开发的东西,比如feature oriented development,specification, software process等等也很popular. 软件工程不是单纯的开发或者测试,而是围绕着用户需求的一系列的activity以及资源的分配和利用。软件工程,就是要提高productivity and reliability of software development。
3 软件工程申请激烈吗?这个方向好吗?
软件工程申请是很激烈的。简单点讲,IT行业的发展造就了无数的programmer,尽管大家开发的软件应用于不同的领域,但是大家都是programmer,好听一点,叫software engineer。所以申请的时候,写过程序的,都可以claim有这方面的实际经验,都可以往这条船上挤。因此,软件工程,除了学校的学生们,公司里工作的人也很喜欢申请,申请人数就特别多,拿offer也更难 -- 一清二白的学生们拿什么跟有数年工作经验的软件工程师pk? 但是软件工程不仅仅是工作经验这么简单,不是单纯的比谁会写code,谁的code写的好。我知道的这个领域的几个牛人,都喜欢找学生。
我认为软件工程是一个很好的方向,很适合将来在美国就业立足。比如说,如果你作一个关于测试理论或者开发方法的thesis,接触一些软件开发和测试过程中的问题,找工作interview的时候,你可以拿你的thesis project当成经验来吹,容易跟别人谈的来。而且,由于很多软件工程的research project适用于各个领域,找工作局限性小。我当年就是这样子,不管是EMC这样的存储公司,还是cisco这样的网络公司,或者是oracle这样的数据库软件开发伤,我都可以兜售自己的project,都可以瞎掰乎如何在开发的过程中用什么样的方法开发,问题何在,用什么样的方法测试,coverage如何。
如果你是AI,比如研究intelligent tutoring system,尽管你写过几行程序来验证自己的idea,但是公司可能想,这是个AI 的project,我们是网络公司,不需要,对于master level的人找工作来说,软件工程方向局限性小一些,更容易找到工作。phd有所不同,但是很多phd不也得放下身价,到公司里写程序作高尚的软件工程师。
(编辑:Hemern)