#### 問:在大學分專業的時候,計算機科學與技術和軟件工程要選哪個好?
鄒欣:一個比較偏“科學”,一個比較偏“工程”。大學也有像計算機/軟件工程那樣相關的一對專業,例如化學/化學工程,建筑學/土木工程,你也可以問一下這些專業的學長,它們之間的關系,就業方向有什么不同。
《構建之法》第一章就援引了托尼·霍爾(Tony Hoare)的論述,比較計算機科學和軟件工程的不同側重點。
|計算機科學|軟件工程|
|--|--|
|發現和研究長期的、客觀的真理|短期的實際結果(具體的軟件會過時)|
|理想化的|對各種因素的折衷|
|確定性,完美,通用性|對不確定性和風險的管理,足夠好,具體的應用|
|各個學科獨立深入研究,做出成果|關注和應用各個相關學科的知識,解決問題|
|理論的統一|百花齊放的實踐方法|
|強調原創性|掌握最好的、成熟的實踐方法|
|形式化,追求簡明的公式|在實踐中建立起來的靈感、經驗和直覺|
|正確性|可靠性|
表1_2計算機科學和軟件工程的不同側重點
#### 對今后的就業方向您有什么看法?
如果你想走科研為主的道路,或者你想做和計算機體系結構,算法,硬件相關的工作,那么建議你讀CS,否則二者差不多。當然,在中國,這還要看某個具體大學的水平如何,是否真的有計算機科研的實力。
給大家一個實踐題目:做個視頻采訪。在校園里,找到計算機系的老師或者研究生,問他們:
> 請問你發現了、或者正在研究哪方面長期的、客觀的真理?
找到軟件工程學院的老師或者研究生,問他們:
> 請問你在軟件構建方面取得了哪些實際結果,總結了什么成熟的實踐方法?