
專業(yè)指南丨計(jì)算機(jī)科學(xué)和軟件工程,哪個(gè)更適合你
2018年高考已落下帷幕,選擇什么大學(xué)、報(bào)考什么專業(yè)又將成為考生和家長(zhǎng)要面對(duì)的難題。對(duì)于之后想成為軟件工程師的考生而言,計(jì)算機(jī)科學(xué)和軟件工程專業(yè)哪個(gè)更適合自己呢?前谷歌的軟件開發(fā)人員YK在本文中給出了自己的見解。
大家好!我叫YK,目前我正在運(yùn)營(yíng)一個(gè)YouTube的編程教育頻道,擁有20萬的訂閱量。我以前是一名Google的軟件開發(fā)人員。
聽眾經(jīng)常會(huì)問我這兩個(gè)問題:
“計(jì)算科學(xué)專業(yè)和軟件工程專業(yè)有什么區(qū)別?”
“如果我想成為軟件工程師,我應(yīng)該選擇計(jì)算機(jī)科學(xué)還是軟件工程?”
在本文中,我會(huì)回答這兩個(gè)問題,針對(duì)這兩個(gè)專業(yè)給出我的分析和建議。
專業(yè)概述
· 計(jì)算機(jī)科學(xué)是探究計(jì)算機(jī)運(yùn)行原理的學(xué)科,主要從理論和數(shù)學(xué)的角度出發(fā)。
如果你喜歡數(shù)學(xué)、邏輯學(xué),或者你想進(jìn)入計(jì)算機(jī)科學(xué)的專業(yè)領(lǐng)域,例如人工智能、機(jī)器學(xué)習(xí)、安全或圖形,那么你應(yīng)該選擇計(jì)算機(jī)科學(xué)專業(yè)。
· 軟件工程是研究軟件系統(tǒng)如何構(gòu)建的學(xué)科,包括項(xiàng)目管理、質(zhì)量保證和軟件測(cè)試等內(nèi)容。
如果你對(duì)實(shí)際操作方法更感興趣,并且想了解軟件構(gòu)建和維護(hù)的整個(gè)過程,那么你應(yīng)該選擇軟件工程專業(yè)。
計(jì)算機(jī)科學(xué)和軟件工程都包括編程和計(jì)算機(jī)科學(xué)的基礎(chǔ)知識(shí),因此選其中任何一個(gè)專業(yè)都能成為軟件開發(fā)人員。
為了明白計(jì)算機(jī)科學(xué)與軟件工程專業(yè)之間的區(qū)別,讓我們以加拿大滑鐵盧大學(xué)為例,具體看這兩個(gè)專業(yè)各自包含的課程。
之所以選擇滑鐵盧大學(xué)是因?yàn)樗哂斜泵理敿獾挠?jì)算機(jī)科學(xué)課程。
工作前景
我們首先比較一下選擇這兩個(gè)專業(yè)能找哪些工作。
以下是滑鐵盧大學(xué)關(guān)于計(jì)算機(jī)科學(xué)與軟件工程專業(yè)的畢業(yè)生所從事的工作列表:(職位,公司)
計(jì)算機(jī)科學(xué)
Web開發(fā)人員/架構(gòu)師,The Steele Group
程序員,Harry Rosen Inc.
移動(dòng)端/云開發(fā)人員,Clearbridge Associates Limited
軟件工程,General Dynamics Canada
軟件開發(fā)工程, Microsoft
Agile工程師,Pivotal Labs
業(yè)務(wù)分析師,Canadian Tire Corporation
開發(fā)者倡導(dǎo)者,Google
產(chǎn)品經(jīng)理,Dropbox
軟件工程
軟件開發(fā)人員,Tagged
軟件開發(fā)人員,IBM Canada
軟件經(jīng)理,Arius Software Corporation
軟件工程師,VistaPrint USA
軟件工程師,Harris Corporation
軟件開發(fā)人員,Accenture Inc.
技術(shù)產(chǎn)品經(jīng)理,軟件設(shè)計(jì)與開發(fā),NexJ Systems Inc
顧問,PureFacts Financial Solutions
實(shí)施顧問,Desire2Learn
可以看到,無論選擇兩者間哪個(gè)專業(yè),之后所找的工作區(qū)別并不大。
計(jì)算機(jī)科學(xué)和軟件工程專業(yè)的畢業(yè)生中,最常見的工作是軟件開發(fā)人員或軟件工程師。
還有其他相關(guān)工作,比如產(chǎn)品經(jīng)理,質(zhì)量保證分析師和技術(shù)顧問。你所從事的工作取決于你掌握的專業(yè)技能。
第一年的課程
現(xiàn)在,我們來看看每個(gè)專業(yè)的必修課程。首先比較一下第一年需要學(xué)習(xí)的課程,以滑鐵盧大學(xué)為例。
計(jì)算機(jī)科學(xué)
CS 135 - 設(shè)計(jì)功能程序
CS 136 - 算法設(shè)計(jì)和數(shù)據(jù)抽象
MATH 135 - 代數(shù)
MATH 136 - 線性代數(shù)1
MATH 137 - 微積分1
MATH 138 - 微積分2
另外還有一些選修課。
軟件工程
CS 137 - 編程原理
CS 138 - 數(shù)據(jù)抽象和實(shí)現(xiàn)
MATH 115 - 工程線性代數(shù)
MATH 117 - 工程微積分1
MATH 119 - 工程微積分2
MATH135 - 數(shù)學(xué)系代數(shù)
ECE 105 - 電氣工程物理1
ECE 106 - 電磁學(xué)
ECE 124 - 數(shù)字電路和系統(tǒng)
ECE 140 - 線性電路
SE 101 - 軟件工程方法
注:
CS:計(jì)算機(jī)科學(xué)
MATH:數(shù)學(xué)
ECE:電子與計(jì)算機(jī)工程
SE:系統(tǒng)工程
可以看到,第一年的課程也很相似。兩個(gè)專業(yè)都涵蓋了基礎(chǔ)的計(jì)算機(jī)科學(xué)課程,以及一些線性代數(shù)和微積分的數(shù)學(xué)課程。
唯一的主要區(qū)別是,軟件工程有更多的物理和電子工程課程,而計(jì)算機(jī)科學(xué)有更多的選修課。
之后的課程
那么第一年之后有哪些必修課和選修課程呢?讓我們看幾個(gè)例子:
計(jì)算機(jī)科學(xué)
MATH 239 組合學(xué)概論
STAT 230 概率
STAT 231 統(tǒng)計(jì)
CS 240 數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)管理
CS 241 序列程序基礎(chǔ)
CS 245 邏輯和計(jì)算
CS 246 面向?qū)ο筌浖_發(fā)(軟件工程專業(yè)不需要)
CS 251 計(jì)算機(jī)組織與設(shè)計(jì)
CS 341 算法
CS 350 操作系統(tǒng)
此外還有一些計(jì)算機(jī)科學(xué)選修課。
軟件工程
CHE 102 工程師化學(xué)
ECE 222 數(shù)字計(jì)算機(jī)(包含匯編語言)
ECE 358 計(jì)算機(jī)網(wǎng)絡(luò)
MATH 213 軟件工程師高等數(shù)學(xué)
MATH 239 組合學(xué)概論
STAT 206 軟件工程統(tǒng)計(jì)
MSCI 261 工程經(jīng)濟(jì)學(xué):工程師財(cái)務(wù)管理
CS 241 序列程序基礎(chǔ)
CS 240 數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)管理
CS 247 軟件工程原理 (計(jì)算機(jī)科學(xué)專業(yè)不需要)
CS 341 算法
CS 349 用戶界面(計(jì)算機(jī)科學(xué)專業(yè)不需要)
CS 343 并行和并行編程(計(jì)算機(jī)科學(xué)專業(yè)不需要)
CS 348 數(shù)據(jù)庫管理概論
SE 212 邏輯和計(jì)算
SE 350 操作系統(tǒng)
SE 465 軟件測(cè)試和質(zhì)量保證
SE 464 軟件設(shè)計(jì)和結(jié)構(gòu)
SE 463 軟件需求規(guī)格和分析
SE 490 設(shè)計(jì)項(xiàng)目
此外,還有一些計(jì)算機(jī)科學(xué)和電子工程選修課。
總結(jié)
這兩個(gè)專業(yè)對(duì)于數(shù)學(xué)和統(tǒng)計(jì)方面的要求幾乎相同,兩者都包括組合學(xué),概率和統(tǒng)計(jì)的知識(shí)。
關(guān)于計(jì)算機(jī)科學(xué)的核心知識(shí)需求也相似,包括算法,數(shù)據(jù)結(jié)構(gòu)和操作系統(tǒng)。
關(guān)鍵區(qū)別在于:
軟件工程專業(yè)在電氣工程和軟件工程基礎(chǔ)方面有更多的要求,例如軟件測(cè)試,設(shè)計(jì)和軟件需求規(guī)范。
計(jì)算機(jī)科學(xué)則能選擇更高級(jí)的計(jì)算機(jī)科學(xué)課程。你可以在大量的選修課中進(jìn)行選擇,例如安全性、軟件工程基礎(chǔ)知識(shí)、計(jì)算機(jī)視覺、機(jī)器學(xué)習(xí)和數(shù)據(jù)庫管理。
應(yīng)該選擇哪個(gè)專業(yè)?
選擇哪個(gè)專業(yè)主要取決于你的喜好。
簡(jiǎn)而言之:
如果你喜歡數(shù)學(xué)、邏輯學(xué),或者如果你想進(jìn)入計(jì)算機(jī)科學(xué)的專業(yè)領(lǐng)域,比如人工智能,機(jī)器學(xué)習(xí),安全或圖形,那你應(yīng)該選擇計(jì)算機(jī)科學(xué)。
如果你對(duì)實(shí)際操作更感興趣,并且想要了解軟件構(gòu)建和維護(hù)的整個(gè)過程,則那你應(yīng)該選擇軟件工程。
如果想成為軟件工程師,哪個(gè)專業(yè)更好?
根據(jù)滑鐵盧大學(xué)具體的課程要求來看,如果你想成為一名軟件工程師,那么計(jì)算機(jī)科學(xué)是更好的選擇。
假設(shè)你想在美國從事高薪(每年約10萬美元)的軟件工程師工作,這些工作通常在大型軟件公司(例如微軟,谷歌,亞馬遜等)或中型、高增長(zhǎng)企業(yè)(例如Dropbox,Lyft,Snapchat,Pinterest等)。
通常,這些公司希望軟件工程師能夠編寫可靠的代碼并構(gòu)建有趣的項(xiàng)目,并且熟練掌握數(shù)據(jù)結(jié)構(gòu)和算法等計(jì)算機(jī)科學(xué)基礎(chǔ)知識(shí)。
我認(rèn)為培養(yǎng)這些技能的最好方法是,快速學(xué)習(xí)計(jì)算機(jī)科學(xué)基礎(chǔ)知識(shí),花時(shí)間練習(xí)解決問題和編寫代碼。
我認(rèn)為根據(jù)軟件工程的課程,以及該專業(yè)課業(yè)的繁重程度,比起計(jì)算機(jī)科學(xué)專業(yè),軟件工程專業(yè)能夠支配的時(shí)間和精力更少。
計(jì)算機(jī)科學(xué)專業(yè)的另一個(gè)好處是能夠選擇更多的選修課。這很好,因?yàn)槟憧梢愿鶕?jù)就業(yè)市場(chǎng)的需求調(diào)整課程。例如,如果移動(dòng)應(yīng)用程序開發(fā)需求很多,你就可以針對(duì)這方面進(jìn)行學(xué)習(xí)。如果并行計(jì)算的需求多,你則可以學(xué)習(xí)這方面。
當(dāng)然學(xué)習(xí)軟件工程基礎(chǔ)知識(shí)(項(xiàng)目管理、設(shè)計(jì)、測(cè)試等)也很有幫助。但我更希望有更多的時(shí)間學(xué)習(xí)特定的技能。這就是為什么我認(rèn)為要成為軟件工程師,計(jì)算機(jī)科學(xué)是更好的專業(yè)選擇。
但這只是我的個(gè)人看法,如果你有不同的看法,或有計(jì)算機(jī)科學(xué)、軟件工程專業(yè)的學(xué)習(xí)經(jīng)歷,請(qǐng)給我留言。
注意
· 不同的大學(xué)對(duì)這兩個(gè)專業(yè)有不同的要求。你應(yīng)該根據(jù)具體學(xué)校的課程進(jìn)行選擇。
· 一些大學(xué)沒有軟件工程專業(yè)。例如,溫哥華的不列顛哥倫比亞大學(xué)有計(jì)算機(jī)科學(xué)和計(jì)算機(jī)工程學(xué)位,沒有軟件工程專業(yè)。但是計(jì)算機(jī)科學(xué)專業(yè)和計(jì)算機(jī)工程專業(yè)都有軟件工程課程。
如果你感興趣的大學(xué)沒有軟件工程專業(yè),而且你想成為軟件開發(fā)人員,那么我建議選擇計(jì)算機(jī)科學(xué)專業(yè)。與計(jì)算機(jī)科學(xué)或軟件工程相比,計(jì)算機(jī)工程更側(cè)重于硬件,因此與一般的軟件開發(fā)人員的工作相關(guān)性較小。
參考來源
滑鐵盧大學(xué)計(jì)算機(jī)科學(xué)
https://uwaterloo.ca/future-students/programs/computer-science
滑鐵盧大學(xué)軟件工程
https://uwaterloo.ca/future-students/programs/software-engineering
感謝您的閱讀,祝愿您選到心儀的大學(xué)和專業(yè)!
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實(shí)戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動(dòng)態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價(jià)值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時(shí),“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場(chǎng)景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對(duì)象的 text 與 content:區(qū)別、場(chǎng)景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請(qǐng)求開發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請(qǐng)求工具對(duì)比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請(qǐng)求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營(yíng)問題、提升執(zhí)行效率的核心手段,其價(jià)值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營(yíng)銷案例:數(shù)據(jù)驅(qū)動(dòng)下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當(dāng)下,精準(zhǔn)營(yíng)銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價(jià)值 在數(shù)據(jù)驅(qū)動(dòng)決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實(shí)踐到業(yè)務(wù)價(jià)值挖掘 在數(shù)據(jù)分析場(chǎng)景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計(jì)模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價(jià)值導(dǎo)向 統(tǒng)計(jì)模型作為數(shù)據(jù)分析的核心工具,并非簡(jiǎn)單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10