優(yōu)選答案不要把時(shí)間浪費(fèi)在所謂的大學(xué)課程上,很多都是沒有營(yíng)養(yǎng)的。其實(shí)軟件工程的知識(shí)體系也就是那樣,各個(gè)大學(xué)也是照著這個(gè)思路編排課程的。所以,自學(xué)的時(shí)候直奔主題就可以了。
軟件工程。包含兩個(gè)部分:軟件和工程。軟件是程序員做的,而工程是項(xiàng)目負(fù)責(zé)人管理、程序員實(shí)踐的。
軟件又包含兩部分:語(yǔ)法和算法。語(yǔ)法,即要掌握某種編程語(yǔ)言。一般來講,要想工作中用的上,那么面向過程的語(yǔ)言和面向?qū)ο蟮恼Z(yǔ)言都得掌握。一般學(xué)C、C++、Java、Dephi等等。面向過程的程序比較好學(xué),條目也很清晰。而面向?qū)ο蟮木幊绦枰獙W(xué)兩方面的內(nèi)容:語(yǔ)法本身和龐大的類庫(kù)。算法,這是編程的靈魂。一般包括:數(shù)據(jù)結(jié)構(gòu)和經(jīng)典算法。學(xué)無(wú)止境,一般性的工作話,掌握基本的就夠了,如果工作較復(fù)雜得多看看算法方面的期刊。
工程。現(xiàn)代軟件越變?cè)酱?,大型的編寫工作?dòng)不動(dòng)就涉及萬(wàn)人。工程的方法只是為了更好的組織、協(xié)調(diào)編寫過程。《軟件工程》本身就是一本書,很厚的。主要講軟件的生命周期,比較抽象和繁雜,但是規(guī)范的工作方式就是從這本書里來的。另外關(guān)注一些編程習(xí)慣的知識(shí)。這也是工程的一部分。
軟件只是計(jì)算機(jī)科學(xué)中的一種。所以,比如計(jì)算機(jī)基礎(chǔ)、計(jì)算機(jī)系統(tǒng)等等宏觀的知識(shí)也需要理解。特別是對(duì)于高級(jí)程序員,計(jì)算機(jī)運(yùn)行的底層知識(shí)就更重要了。操作系統(tǒng)、80x86以及匯編語(yǔ)言是底層知識(shí)中的一部分。
軟件行業(yè)分工很多:網(wǎng)絡(luò)編程、數(shù)據(jù)庫(kù)編程、應(yīng)用程序編程、游戲編程以及操作系統(tǒng)編程等(中國(guó)似乎還沒有商業(yè)化的操作系統(tǒng)),研究任何一個(gè)都挺累人的。學(xué)習(xí)完上面的基礎(chǔ)知識(shí)后,就需要給自己選一個(gè)專業(yè)方向了。
建議一個(gè)學(xué)習(xí)流程。如果你什么都沒有學(xué)。
1】計(jì)算機(jī)基礎(chǔ)知識(shí)。主要是硬件方面(大一水平)
2】同時(shí),學(xué)習(xí)C語(yǔ)言,語(yǔ)法就夠了
3】透徹的理解C++需要用C語(yǔ)言去編寫一個(gè)圖形化的應(yīng)用程序,但是,似乎也有一些直接上手的C++教材。學(xué)習(xí)語(yǔ)法,簡(jiǎn)單的類庫(kù)。(現(xiàn)在就是大二的水平)
4】數(shù)據(jù)結(jié)構(gòu),C++表述的?!稊?shù)據(jù)結(jié)構(gòu)》的書里面會(huì)有一些經(jīng)典的算法的。
5】操作系統(tǒng)、80x86與匯編(大三水平,大四幾乎沒有幾本書要念的。)
6】專業(yè)學(xué)習(xí)。一方面是專業(yè)上的知識(shí),另一方面是類庫(kù)在專業(yè)上的使用。(我想,應(yīng)該可以工作了,大學(xué)里關(guān)于這方面的知識(shí)是很淺薄的,僅僅建立一個(gè)概念而已。但是要拿來謀生的話,就需要學(xué)多點(diǎn)了,前面所有的積淀都是為了這個(gè)目標(biāo)的)
先學(xué)著,自己有體會(huì)后,就能確定自己應(yīng)該學(xué)到什么程度。如果一切順利的話,大概兩年多一點(diǎn)就可以完成這個(gè)過程。