範文齋

位置:首頁 > 行業範文 > 就業前景

美國計算機科學cs專業就業前景

loper/programmer/software engineer

美國計算機科學cs專業就業前景

不管你是碩士,還是博士,不管你是學CS哪個方向的,研究算法(algorithm)的也好,搗鼓人工智能(AI)的也罷,或者是啥軟件工程(software engineering)、圖形處理(graphics/image processing)、網絡(network)etcetcetc,大家將來都有一條共同的也是CS裏最大的出路,就是去寫code編程做軟件開發。

很多人申請的時候,或者在學校讀書學習期間,很在意各個方向的區別,癡迷於某個領域,但是工作幾年回過頭來一看,沒啥區別,大家都有一個光榮的頭銜,好聽點叫軟件工程師,難聽點叫程序員,職稱(title)和工資高點低點而已。區別無非是有的人通過學校期間的學習或者研究,具有domain knowledge(比如說常見的image processing算法,數據庫知識,各種網絡協議和分佈式系統知識),然後去開發各種相應的domain-specific application(比如圖形圖像處理軟件,數據庫管理軟件,網絡設備/分佈式系統上運行的軟件)。等你每天寫了無數programs之後,可能對領域上的區別早就麻木了;等你工作多年,做了無數個project以後,可能早就不care到底算是那個domain/area的了,來了通殺。

不管你是在哪個行業工作,IT也好,金融保險也罷,或者是啥諮詢、生物技術、whatever,不管你的工作頭銜(jobtitle)聽上去很好聽還是很丟人(比如architect/Principle/Technical Lead vs programmer),也不管你的工資是1萬一個月還是5000一個月,最關鍵的是你的工作性質是什麼,只要是以軟件開發/編程爲主,那麼你就是此類的。

這麼一說,可能大家就明白了,原來學CS的,不論你是什麼方向,殊途同歸啊,那我還計較個啥?區別還是有的,比如說現在cloudcomputing比較hot,不少公司在做相關的東西,如果你在學校裏是研究這類技術的,公司可能會因爲你的do main knowledge招你而不是一個研究圖形學的,但是你將來的工作性質,跟開發圖形處理軟件的兄弟們是一樣的,說高尚點叫larges cale system design and development,說俗了就是coding,coding and coding。

大家都說做IT的是民工活,其實公司裏資歷久,對核心產品底層architecture懂的多的技術骨幹,工資也是很高的,而且地位高工作也穩定。

ware QA(quality assurance)/testing

每年網上都有很多人發帖子說我學cs,但是我編程能力比較弱或者不喜歡編程,將來我能不能不去coding?做軟件測試(QA/testing)就是一個選擇。

從軟件工程的角度來說,有人寫軟件,就得有人專門跟在後面找bug提高軟件的quality。QA的活一直被輕視,以前曾經被認爲是可有可無的東西,不需要專門的QA,現在被越來越重視了,當然還是有些人覺得qa不如做developers更重要,但是不可否認的事實是,QA不可或缺,QA工作現在很多,已經在計算機行業裏佔了很大的比例了。當年幫我settledown的師兄,03年去了微軟,05年被調整做SQLServer軟件的QA。

QA對技術的要求相對低。QA可以粗略的分成兩種,一種是mannualtesting,全手工測試,你不需編程,基本就是分析軟件系統,制定測試計劃和用例,然後用鼠標去點擊爲主,從技術角度來看,的確低級了點,早些年,developers覺得去做QA是降級,跟發配充軍一個意思,所以QA不得不到處找,來源很複雜,做QA的整體技術能力也比較低下;現在隨着公司對產品質量和測試工作的重視,有CS技術背景出身的qa越來越被青睞;第二種QA,做的是自動化測試(automated testing),就是用軟件工具或者自己編程來自動化測試,這個就要求懂技術甚至要會編程,但是要求又沒有developer那麼高,這種技術性的QA也比較缺乏,現在的趨勢是很多公司儘量用automated testing替代mannual testing來提高效率。

同樣經驗/教育背景,QA的工資應該比developer低,但是差別也不是很大。很明顯,學cs任何一個方向的人,都可以勝任QA的工作。

base/network administration

developer和qa已經囊括了cs大多數的工作機會,繼續寫這個類別還是爲了滿足有些人既想學cs又不想編程的願望---話說回來,如果不想編程,最好別學cs了。。。。

數據庫/網絡管理對編程要求也很低,你不需要像開發數據庫或者網絡管理軟件的人那樣子,天天耗在編程裏。這類工作優點很多:

1)就業範圍廣,稍微大點的公司、學校或者任何機構都需要有高級管理員來管理維護網絡和存儲備份數據庫;

2)工作經驗越豐富越受歡迎,因爲很多job就是得經驗豐富的administrator才能處理好,不是隨便扒拉一個沒多少經驗的`人就能湊合着做的;

3)信息社會,公司對數據庫和網絡依賴嚴重,所以有時候一個經驗豐富的database/network administrator對公司可能非常重要,如果他突然撒手走了,公司又沒有準備好替代人員的話,會損失慘重的。

因此,這類工作工資高,也比較穩定。前段時間有些金融公司即使大幅度裁員,核心的網絡和數據庫管理員也會被保留。

這類工作的缺點是入門比較難,公司希望你能有相關的實戰經驗而不僅僅是會點學校裏的理論知識,剛畢業的學生往往根本沒有這方面的經驗;有時候需要在晚上或者週末工作,也可能有oncall的情況出現。

rs

其他的工種也有,比如release management,用戶界面(UI,user-interface)設計,usability,Technical support等等,但是一方面這些工作數量相對少,另一方面,不同的公司裏,相同的職位名稱可能具體的工作性質不太一樣,比如做release management的,有的公司要求做很多QA的活,有的公司更靠近developers,還有的公司可能讓你安裝/搭建系統來管理不同的releases,跟個系統管理員似的,所以就不一一詳敘。

通過上面對美國計算機cs專業的就業情況的解讀,相信對於很多計劃申請美國研究生的學生可以參考上面的信息來提前做好申請美國研究生的準備和規劃。