美國大學(xué)計(jì)算機(jī)專業(yè)有很多分支,而軟件工程是其中很歡迎的分支之一,美國軟件工程指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的一門工程學(xué)科。采用工程的概念、原理、技術(shù)和方法來開發(fā)和維護(hù)計(jì)算機(jī)軟件,把經(jīng)過時間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)和方法結(jié)合起來,以經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件并有效地維護(hù)它。它旨在開發(fā)滿足用戶需求、及時交付、不超過預(yù)算和無故障的軟件,以質(zhì)量保證為基礎(chǔ),包括過程、方法和工具三個要素。
本文是申請美國大學(xué)計(jì)算機(jī)專業(yè)軟件工程方向的經(jīng)驗(yàn)總結(jié),主要討論了美國大學(xué)軟件工程專業(yè)的研究內(nèi)容,申請難度以及申請建議,希望能給有意申請美國大學(xué)計(jì)算機(jī)專業(yè)軟件工程方向的同學(xué)一些啟發(fā)。
1、喜歡軟件工程,該申請什么program?
首先,美國有一些學(xué)校有專門的軟件工程碩士,這個跟信息安全碩士,MBA等一樣,感覺算是職業(yè)培訓(xùn)。如果有幾年工作經(jīng)驗(yàn),手頭有錢,自費(fèi)讀這個方向也可以。但是中國人大多要獎學(xué)金,這種碩士program不太可能提供offer。
如果想作軟件工程的研究,想拿offer,得申請CS。CS分很多方向,軟件工程是其中之一。軟件工程這種東西,有人喜歡,有人覺得太泛,有人覺得太理論,但是我也聽這個領(lǐng)域的有些人說太實(shí)際了,empirical SE也是有人做的。這些是非話題就不討論了??傊?,申請CS,指明對軟件工程感興趣, that's it. --如果你申software engineer的offer,錯誤的申請了職業(yè)培訓(xùn)類型的SE master,你拿offer得難度至少會像MBA一樣大。
2、軟件工程研究什么
現(xiàn)在軟件工程里面大家主要是對軟件的正確性感興趣。簡單點(diǎn)講,軟件不正確,有錯誤,容易導(dǎo)致各種問題,造成各種經(jīng)濟(jì)損失。比如說,現(xiàn)在比較熱門的計(jì)算機(jī)安全問題。我個人認(rèn)為,安全問題跟軟件中的錯誤是成比例的。如果軟件沒有錯誤,我們可能沒有100%的安全,但是最起碼MS不必經(jīng)常發(fā)布補(bǔ)丁了吧,針對windows的攻擊也會變得很困難,各種由軟件導(dǎo)致的損失也會大大減少。每一種攻擊的方法或者工具,背后基本都是一個或者數(shù)個軟件錯誤,有的是實(shí)現(xiàn)中的錯誤,有的甚至是設(shè)計(jì)上的。---說這些,是說明軟件正確性的重要性。
現(xiàn)在大家都在努力想出方法,能結(jié)合軟件開發(fā)理論,保證正確性。當(dāng)然軟件開發(fā)的東西,比如feature oriented development,specification, software process等等也很popular. 軟件工程不是單純的開發(fā)或者測試,而是圍繞著用戶需求的一系列的activity以及資源的分配和利用。軟件工程,就是要提高productivity and reliability of software development。
3、軟件工程申請激烈嗎?這個方向好嗎?
軟件工程申請是很激烈的。簡單點(diǎn)講,IT行業(yè)的發(fā)展造就了無數(shù)的programmer,盡管大家開發(fā)的軟件應(yīng)用于不同的領(lǐng)域,但是大家都是programmer,好聽一點(diǎn),叫software engineer。所以申請的時候,寫過程序的,都可以claim有這方面的實(shí)際經(jīng)驗(yàn),都可以往這條船上擠。因此,軟件工程,除了學(xué)校的學(xué)生們,公司里工作的人也很喜歡申請,申請人數(shù)就特別多,拿offer也更難 -- 一清二白的學(xué)生們拿什么跟有數(shù)年工作經(jīng)驗(yàn)的軟件工程師pk? 但是軟件工程不僅僅是工作經(jīng)驗(yàn)這么簡單,不是單純的比誰會寫code,誰的code寫的好。我知道的這個領(lǐng)域的幾個牛人,都喜歡找學(xué)生。
我認(rèn)為軟件工程是一個很好的方向,很適合將來在美國就業(yè)立足。比如說,如果你作一個關(guān)于測試?yán)碚摶蛘唛_發(fā)方法的thesis,接觸一些軟件開發(fā)和測試過程中的問題,找工作interview的時候,你可以拿你的thesis project當(dāng)成經(jīng)驗(yàn)來吹,容易跟別人談的來。而且,由于很多軟件工程的research project適用于各個領(lǐng)域,找工作局限性小。我當(dāng)年就是這樣子,不管是EMC這樣的存儲公司,還是cisco這樣的網(wǎng)絡(luò)公司,或者是oracle這樣的數(shù)據(jù)庫軟件開發(fā)傷,我都可以兜售自己的project,都可以瞎掰乎如何在開發(fā)的過程中用什么樣的方法開發(fā),問題何在,用什么樣的方法測試,coverage如何。
如果你是AI,比如研究intelligent tutoring system,盡管你寫過幾行程序來驗(yàn)證自己的idea,但是公司可能想,這是個AI 的project,我們是網(wǎng)絡(luò)公司,不需要,kill~~對于master level的人找工作來說,軟件工程方向局限性小一些,更容易找到工作。phd有所不同,但是很多phd不也得放下身價,到公司里寫程序作高尚的軟件工程師。
本文是申請美國大學(xué)計(jì)算機(jī)專業(yè)軟件工程方向的經(jīng)驗(yàn)總結(jié),主要討論了美國大學(xué)軟件工程專業(yè)的研究內(nèi)容,申請難度以及申請建議,希望能給有意申請美國大學(xué)計(jì)算機(jī)專業(yè)軟件工程方向的同學(xué)一些啟發(fā)。
1、喜歡軟件工程,該申請什么program?
首先,美國有一些學(xué)校有專門的軟件工程碩士,這個跟信息安全碩士,MBA等一樣,感覺算是職業(yè)培訓(xùn)。如果有幾年工作經(jīng)驗(yàn),手頭有錢,自費(fèi)讀這個方向也可以。但是中國人大多要獎學(xué)金,這種碩士program不太可能提供offer。
如果想作軟件工程的研究,想拿offer,得申請CS。CS分很多方向,軟件工程是其中之一。軟件工程這種東西,有人喜歡,有人覺得太泛,有人覺得太理論,但是我也聽這個領(lǐng)域的有些人說太實(shí)際了,empirical SE也是有人做的。這些是非話題就不討論了??傊?,申請CS,指明對軟件工程感興趣, that's it. --如果你申software engineer的offer,錯誤的申請了職業(yè)培訓(xùn)類型的SE master,你拿offer得難度至少會像MBA一樣大。
2、軟件工程研究什么
現(xiàn)在軟件工程里面大家主要是對軟件的正確性感興趣。簡單點(diǎn)講,軟件不正確,有錯誤,容易導(dǎo)致各種問題,造成各種經(jīng)濟(jì)損失。比如說,現(xiàn)在比較熱門的計(jì)算機(jī)安全問題。我個人認(rèn)為,安全問題跟軟件中的錯誤是成比例的。如果軟件沒有錯誤,我們可能沒有100%的安全,但是最起碼MS不必經(jīng)常發(fā)布補(bǔ)丁了吧,針對windows的攻擊也會變得很困難,各種由軟件導(dǎo)致的損失也會大大減少。每一種攻擊的方法或者工具,背后基本都是一個或者數(shù)個軟件錯誤,有的是實(shí)現(xiàn)中的錯誤,有的甚至是設(shè)計(jì)上的。---說這些,是說明軟件正確性的重要性。
現(xiàn)在大家都在努力想出方法,能結(jié)合軟件開發(fā)理論,保證正確性。當(dāng)然軟件開發(fā)的東西,比如feature oriented development,specification, software process等等也很popular. 軟件工程不是單純的開發(fā)或者測試,而是圍繞著用戶需求的一系列的activity以及資源的分配和利用。軟件工程,就是要提高productivity and reliability of software development。
3、軟件工程申請激烈嗎?這個方向好嗎?
軟件工程申請是很激烈的。簡單點(diǎn)講,IT行業(yè)的發(fā)展造就了無數(shù)的programmer,盡管大家開發(fā)的軟件應(yīng)用于不同的領(lǐng)域,但是大家都是programmer,好聽一點(diǎn),叫software engineer。所以申請的時候,寫過程序的,都可以claim有這方面的實(shí)際經(jīng)驗(yàn),都可以往這條船上擠。因此,軟件工程,除了學(xué)校的學(xué)生們,公司里工作的人也很喜歡申請,申請人數(shù)就特別多,拿offer也更難 -- 一清二白的學(xué)生們拿什么跟有數(shù)年工作經(jīng)驗(yàn)的軟件工程師pk? 但是軟件工程不僅僅是工作經(jīng)驗(yàn)這么簡單,不是單純的比誰會寫code,誰的code寫的好。我知道的這個領(lǐng)域的幾個牛人,都喜歡找學(xué)生。
我認(rèn)為軟件工程是一個很好的方向,很適合將來在美國就業(yè)立足。比如說,如果你作一個關(guān)于測試?yán)碚摶蛘唛_發(fā)方法的thesis,接觸一些軟件開發(fā)和測試過程中的問題,找工作interview的時候,你可以拿你的thesis project當(dāng)成經(jīng)驗(yàn)來吹,容易跟別人談的來。而且,由于很多軟件工程的research project適用于各個領(lǐng)域,找工作局限性小。我當(dāng)年就是這樣子,不管是EMC這樣的存儲公司,還是cisco這樣的網(wǎng)絡(luò)公司,或者是oracle這樣的數(shù)據(jù)庫軟件開發(fā)傷,我都可以兜售自己的project,都可以瞎掰乎如何在開發(fā)的過程中用什么樣的方法開發(fā),問題何在,用什么樣的方法測試,coverage如何。
如果你是AI,比如研究intelligent tutoring system,盡管你寫過幾行程序來驗(yàn)證自己的idea,但是公司可能想,這是個AI 的project,我們是網(wǎng)絡(luò)公司,不需要,kill~~對于master level的人找工作來說,軟件工程方向局限性小一些,更容易找到工作。phd有所不同,但是很多phd不也得放下身價,到公司里寫程序作高尚的軟件工程師。