關(guān)于軟件工程的一些淺見
今天上午考完了整個大學(xué)階段最后一門專業(yè)課。就對自己的專業(yè)--軟件工程做個總結(jié)吧岔绸。個人淺見理逊,僅供參考。
軟件工程盒揉,顧名思義晋被,是一個工程學(xué)科。什么是工程刚盈?建一座大樓是一個工程羡洛,修一個水庫也是一個工程。那什么是軟件工程呢藕漱?在我看來欲侮,就如同建大樓,軟件工程需要有一個目標(biāo)(建大樓)肋联,需要有一整個完整的流程(設(shè)計威蕉,規(guī)劃,施工橄仍,驗收等)韧涨。簡單來說,軟件工程就是編寫一個軟件以及圍繞這件事要做的一系列流程侮繁。以下是維基百科對軟件工程的定義:
軟件工程研究和應(yīng)用如何以系統(tǒng)性的虑粥、規(guī)范化的、可定量的過程化方法去開發(fā)和維護(hù)軟件鼎天,以及如何把經(jīng)過時間考驗而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來的學(xué)科舀奶。它涉及到程序設(shè)計語言、數(shù)據(jù)庫斋射、軟件開發(fā)工具育勺、系統(tǒng)平臺但荤、標(biāo)準(zhǔn)、設(shè)計模式等方面涧至。
那么腹躁,我們會怎樣去學(xué)習(xí)這個專業(yè)呢?
課程設(shè)計
課程教材
主要可以分為以下部分:
- 基礎(chǔ)學(xué)科
《高等數(shù)學(xué)》(上下兩冊)南蓬、《概率統(tǒng)計及隨機(jī)過程》纺非、《線性代數(shù)》、《離散數(shù)學(xué)》赘方、《大學(xué)物理》(上中下三冊)烧颖、《基礎(chǔ)物理實驗》、《數(shù)字電路》 - 編程語言
《Visual C# 2013》窄陡、《Java編程思想》炕淮、《C++ Primer》 - 計算機(jī)基礎(chǔ)知識
《數(shù)據(jù)結(jié)構(gòu)》,《算法導(dǎo)論》跳夭、《計算機(jī)文化》涂圆、《數(shù)據(jù)庫系統(tǒng)概念》、《深入理解計算機(jī)系統(tǒng)》币叹、《編譯原理及編譯程序構(gòu)造》润歉、《計算機(jī)網(wǎng)絡(luò)》 - 軟件工程
《軟件工程》、《軟件工程實用教程》《系統(tǒng)分析與設(shè)計》颈抚、《軟件工程過程》 - 其他
《數(shù)據(jù)挖掘?qū)д摗凡锐谩ⅰ稊?shù)學(xué)模型》
課程安排
在大一大二階段,會安排基礎(chǔ)數(shù)學(xué)邪意、編程語言九妈、數(shù)據(jù)結(jié)構(gòu)和算法的教學(xué)。到了大三雾鬼,就會安排工程類科目以及計算機(jī)知識的深入學(xué)習(xí)萌朱。我們可以將其分為三大類:
數(shù)學(xué)類基礎(chǔ)學(xué)科
數(shù)學(xué)類的科目會分布在整個大一和大二上。這些知識是幾乎所有科目的基礎(chǔ)策菜,學(xué)起來也有一些難度晶疼,但是學(xué)好數(shù)學(xué)帶來的收獲也不是一般的大。計算機(jī)知識
計算機(jī)知識包括了編程語言又憨、計算機(jī)體系結(jié)構(gòu)翠霍、網(wǎng)絡(luò)等等蠢莺,在整個學(xué)習(xí)階段都會安排相應(yīng)教學(xué),重要度也是不言而喻。這些都是一開始學(xué)習(xí)會非常慢锄弱,學(xué)起來也比較吃力。但是當(dāng)你到達(dá)一定程度会宪,學(xué)習(xí)速度會變快很多。軟件工程相關(guān)知識
我覺得這是軟件工程學(xué)科與計算機(jī)專業(yè)的最大區(qū)別掸鹅。一系列的軟件工程相關(guān)課程會在大二下開始,一直持續(xù)到大三結(jié)束巍沙。這些課程會將簡單的編碼上升到一個項目工程的高度葵姥,教會我們現(xiàn)實世界中一個軟件開發(fā)的全過程句携。
總結(jié)一下,不同階段會有不同階段的目標(biāo)务甥。
大一:學(xué)會編碼喳篇,去解決一個已經(jīng)抽象好的數(shù)學(xué)問題。在這個階段麸澜,我們應(yīng)當(dāng)可以將自己的樸素思想轉(zhuǎn)化為代碼。
大二:提升代碼能力炊邦,寫出更加高效簡潔的代碼编矾。對于同一個問題馁害,我們應(yīng)當(dāng)可以從不同的角度進(jìn)行思考窄俏,去提升自己的代碼質(zhì)量。另外碘菜,這個階段還會學(xué)習(xí)一部分工程知識凹蜈,了解需求、開發(fā)等概念忍啸,并學(xué)會管理自己的代碼仰坦。
大三:提升工程能力 && 掌握計算機(jī)知識。在這個階段计雌,我們會更加系統(tǒng)地學(xué)習(xí)軟件工程悄晃,掌握一些軟件開發(fā)模型(這個階段編碼并不會被刻意強(qiáng)調(diào),因為通過之前的學(xué)習(xí)默認(rèn)你有一定的編碼能力)凿滤。另外妈橄,對計算機(jī)知識的深入理解也有助于我們更好地進(jìn)行編碼庶近。
Question && Answer
- Q1:為什么這個專業(yè)說起來會很累呢?
首先眷细,這門課是一門實踐學(xué)科拦盹!很多課程上學(xué)到的東西,如果沒有用實踐進(jìn)行鞏固溪椎,很容易還給老師普舆。經(jīng)常在電腦前敲代碼容易給人一種很苦逼的感覺。其次校读,這門課的理論知識也很抽象沼侣,不是很好學(xué)。任何一門計算機(jī)大課(算法歉秫,操作系統(tǒng)蛾洛,編譯原理等)深入研究下去都是計算機(jī)的一個方向。要想學(xué)好這些科目要花不少時間雁芙。但是轧膘,我覺得你只要高中養(yǎng)成了良好的學(xué)習(xí)習(xí)慣,這些都不是問題兔甘。規(guī)劃好自己的時間谎碍,軟件工程還是比較好學(xué)的。以我自身為例洞焙,我每天生活都非常規(guī)律蟆淀,晚上11點上床(玩手機(jī)并不會立刻睡),第二天早上7點起澡匪。并不會像宣傳的那樣每天肝到很晚熔任,就算是考期,只要有一個好的復(fù)習(xí)節(jié)奏唁情,也并不需要熬夜疑苔。
- Q2: 這門課的優(yōu)勢和弊端
優(yōu)勢
- 1 計算機(jī)專業(yè)就業(yè)前景很好,畢業(yè)起薪都比較高(雖然現(xiàn)在有些人說計算機(jī)泡沫正在破碎)荠瘪。
- 2 軟件工程專業(yè)學(xué)習(xí)到的開發(fā)知識可以讓你更快地融入實際開發(fā)夯巷,上手更快
弊端
- 1 學(xué)習(xí)周期短,很多科目學(xué)得很快哀墓,需要較強(qiáng)的學(xué)習(xí)能力
- 2 實踐不足趁餐,很容易“紙上談兵”