美国大学计算机专业软件工程方向申请常见问题解答(1)
美国大学计算机专业有很多分支,而软件工程是其中很欢迎的分支之一,美国软件工程指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发和维护计算机软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术和方法结合起来,以经济地开发出高质量的软件并有效地维护它。它旨在开发满足用户需求、及时交付、不超过预算和无故障的软件,以质量保证为基础,包括过程、方法和工具三个要素。
本文是申请美国大学计算机专业软件工程方向的经验总结,主要讨论了美国大学软件工程专业的研究内容,申请难度以及申请建议,希望能给有意申请美国大学计算机专业软件工程方向的同学一些启发。
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。