
說到軟件,我想很多人會覺得它并不陌生。在這個高度信息化的時代,我們生活中越來越多的地方都在被“智能”所取代,這里的“智能”主要是軟件開發人員開發的軟件。小到你手機上的一款天氣軟件,大到如微軟的Windows操作系統,甚至航天航空中用到的嵌入式操控軟件。可見軟件在21世紀的社會發展中起著重要的作用。
軟件工程是一門綜合性學科,涉及多個領域的知識,包括計算機科學、數學、管理學、市場研究等等。
我清楚地記得,剛上大學不久那會兒,經常和高中的同學聊起各自的專業。而我的那些同學在聽了我的專業是軟件工程以后,大部分認為我是在學編代碼,更有一個喜歡玩游戲的同學跟我開玩笑說:“以后你開發一款游戲,我讓我兒子來玩”。
這些說法雖然沒錯,但卻是很片面的。俗話說得好:“隔行如隔山。”
使軟件運行只是軟件工程的一個方面,它更加注重的是“工程”,也就是軟件的開發。開發一款軟件首先要對軟件的用途進行定位,它是聊天軟件還是辦公軟件。軟件工程中將這一部分稱為需求分析。它包括大量的走訪、調研該軟件服務的用戶群。然后將根據需求分析的結果對軟件進行模型化的設計:主界面大小、顏色、背景、首頁將實現哪些功能等。接著把設計的圖紙交給程序編輯員,最后由程序編輯員完成整個軟件的開發工作。這還不算完,因為從軟件交付的那一天開始,一直到此軟件退出歷史舞臺這個長期的過程中,需要不斷的測試、更新和維護,這也是整個軟件運行周期中所花時間最長,耗費財力最多的一個階段。
通過上面對軟件開發過程的簡要介紹,我想大家也能夠體會到我們軟件工程就是用這種工程化、規范化的構建方法來開發實用、高質量軟件的一門學科。
俗話說“萬丈高樓平地起”,學習同樣如此,要建好軟件工程這幢高樓,基礎當然必不可少。學習這門學科,需要兩個重要的基礎學科:數學,英語。
這里說到的數學與大家所熟知的傳統的數字學科有所區別。這門學科里用到的數學更注重的是一種數學邏輯。有人可能會覺得數學邏輯這個名詞太過抽象。舉一個簡單的例子你應該就很容易理解什么叫數學邏輯。已知a,b∈R,若a>0,b>0,則a+b>0,ab>0。這就是一種簡單的演算邏輯。而我們的軟件學科里很多時候都需要類似這種邏輯的思維。
眾所周知,計算機起源于美國,由于國內在計算機領域起步較晚,很多計算機方面的技術和思想都要不斷向國外學習。因此,掌握英語對于學習軟件工程來說必不可少!
除此之外,本科階段還要學習幾種開發語言,大多數高校都開設的開發語言有:C語言、java語言、C#語言。
這里要重點提一下的是數據結構這門課,它也是軟件工程專業最重要的一門課程。如果說各種計算機語言是句子的話,那么數據結構就是語法。它通常用來反映一個數據的內部構成,即一個數據由哪些成分數據構成,以什么方式構成,呈什么結構。數據結構有邏輯上的數據結構和物理上的數據結構之分。邏輯上的數據結構反映成分數據之間的邏輯關系, 而物理上的數據結構反映成分數據在計算機內部的存儲安排。數據結構是信息的一種組織方式。比如你現在要做一個考試系統,你要描述每個考生的信息,有姓名、性別、考號等,全部這些信息就構成一個小數據結構,每個考生有他自己的數據結構,這些結構要如何存放在計算機中,各個結構之間是什么關系,對整體需要哪些操作,比如查詢、刪除,怎樣存儲會使這樣的操作效率更高,這些就是數據結構要解決的問題。
由于我國現階段對高素質IT人才的需求很大,因此軟件專業就業形勢是相對樂觀的。在就業方向的選擇上就包括可視化編程 、WEB應用程序設計 、軟件測試 、數據庫管理 、圖形圖像制作 、網絡構建技術 、網絡系統管理 、多媒體制作 、計算機辦公應用等多個專業領域。就單位而言,各種企業、政府、社區、各類學校、多媒體設計與制作公司、動畫美術制作出版公司、廣告制作公司;建筑設計公司、包裝裝潢設計公司、居室裝修公司、出版印刷公司等都招收軟件工程的畢業生。