參加完軟考后心里總有些話想說,那就談?wù)剬浛嫉母邢氚伞?(成績是50,47)。
首先,你要對軟件設(shè)計(jì)師證有個(gè)正確的認(rèn)識,它只是一張紙,有了它不能說明你水平就很強(qiáng),沒有它也不能說明你就不適合搞軟件開發(fā),你不會(huì)因?yàn)橐粡埣埦痛_定了自己的能力水平吧(你看過研究生或博士去考的嗎!如果你堅(jiān)持看重的話,你應(yīng)該不適合做開發(fā)工作了,多也只能做個(gè)代碼寫手)。而且中國的考試向來都是只重課本不重應(yīng)用,所以對軟考也不要太害怕(我就是個(gè)半道出家的,沒進(jìn)入正規(guī)的大學(xué),通過胡亂的自學(xué)也敢去考),考試出的題目技巧性都不強(qiáng),很多都是那類一看就知道考點(diǎn)是什么,更過份的是有些題目很可能甚至?xí)净蛸Y料上都有(中國的教育也要進(jìn)步了吧:()。更重要的一點(diǎn)是,現(xiàn)在感覺看重這個(gè)證的企業(yè)是越來越少了,所以請把自己的精力放在提高自己的理論基礎(chǔ)水平上,并且要不斷的提高自己的數(shù)學(xué)能力(看看國外的計(jì)算機(jī)課程開設(shè),你就不會(huì)再小看數(shù)學(xué)的作用了)。
其次,說說我參加軟考時(shí)的學(xué)習(xí)過程。
1.課本準(zhǔn)備:大綱、軟件工程的教材(推薦《軟件工程——原理、方法與應(yīng)用(第二版)》高等教育出版社)、編譯原理的教材(推薦《編譯原理(第2版)》清華大學(xué)出版社)、數(shù)據(jù)庫的教材(《數(shù)據(jù)庫設(shè)計(jì)原理》)、數(shù)據(jù)結(jié)構(gòu)的教材(推薦一本學(xué)C++用得上的(如果你有時(shí)間學(xué)C++的話)《數(shù)據(jù)結(jié)構(gòu)與算法——面向?qū)ο蟮腃++設(shè)計(jì)模式》國外計(jì)算機(jī)科學(xué)教材系列)、操作系統(tǒng)的教材(《操作系統(tǒng)教程(第3版)》高等教育出版社)、還有就是要準(zhǔn)備一到2本練習(xí)題及1套模擬試卷。
2.制定學(xué)習(xí)計(jì)劃,我是從報(bào)名的那個(gè)月開始,除了早晨用于學(xué)點(diǎn)英語外(不過英語水平一直很差,可能有英語學(xué)習(xí)障礙),每天分3個(gè)學(xué)習(xí)時(shí)段(上午、下午、晚上),每個(gè)時(shí)段學(xué)2門(一門簡單的,一門較難的),其中軟件工程、編譯原理、數(shù)據(jù)庫原理、操作系統(tǒng)、C++為單獨(dú)的課程,其它的課程就用大綱那本書。并且要保證考試前一個(gè)月做練習(xí)用的復(fù)習(xí)時(shí)間,除非你有計(jì)算機(jī)硬盤一樣的記憶能力,否則好有一個(gè)月的練習(xí)時(shí)間,其中前1-2個(gè)星期用來做模式試題。
軟件工程是復(fù)習(xí)的重點(diǎn),因?yàn)橄挛缫欢ㄉ儆?道軟件設(shè)計(jì)分析方面的題目,一定要熟練的掌握書本中說到的各種軟件分析設(shè)計(jì)方法及有關(guān)的分析用圖,對各種圖的功能作用和制作方法(特別是各種圖的組成元素)以及各種圖之間的轉(zhuǎn)換及聯(lián)系(如果有的話),UML面向?qū)ο蟮能浖O(shè)計(jì)方法及面象過程的軟件設(shè)計(jì)方法完全理解,軟件測試要達(dá)到理解的程度,其它的內(nèi)容只有去強(qiáng)記了,因?yàn)榛臼嵌际巧衔珙},而且每年的題都不定,但與CMM有關(guān)的一定會(huì)有。(這科的復(fù)習(xí)我認(rèn)為難一點(diǎn),因?yàn)槲覜]有參加項(xiàng)目開發(fā)的經(jīng)驗(yàn),對里面的概念只能強(qiáng)行理解和記憶,所以在腦中的影像不太深刻,而且考完后就忘得一干二凈了,不過學(xué)還不是太難,可能是我的教材簡單)
數(shù)據(jù)庫也是重點(diǎn),下午一定有至少一道數(shù)據(jù)庫的題目,而且也一定是考關(guān)系型數(shù)據(jù)庫,E-R模式也要搞懂,可由它導(dǎo)出關(guān)系,一定要弄懂關(guān)系數(shù)據(jù)庫的幾個(gè)范式及關(guān)系的建立方法(因此就要對關(guān)系數(shù)據(jù)庫的基礎(chǔ)概念非常清楚,如鍵的定義,函數(shù)依賴,范式的定義、作用及轉(zhuǎn)換是建立關(guān)系的基礎(chǔ)),要熟練SQL常用的幾個(gè)語句,好是自己用筆寫上幾遍每個(gè)語句的各種形式以加深記憶,數(shù)據(jù)庫的學(xué)習(xí)還是不太難的(因?yàn)榭荚嚥粫?huì)考數(shù)據(jù)的物理存儲及數(shù)據(jù)安全,感覺這方面的知識更難,交叉學(xué)科更多)。
數(shù)據(jù)結(jié)構(gòu)的復(fù)習(xí)以普通的教材為主(相關(guān)書籍學(xué)計(jì)算機(jī)的應(yīng)該都有一本吧),對數(shù)組、鏈、隊(duì)列、棧、樹及堆等基本的數(shù)據(jù)組織方式要非常熟悉(要做到看見算法就知道要用什么數(shù)據(jù)組織方式更高效),排序、索引、HUSH及圖的各種算法要了然于心(算法的分析過程及代碼要非常清楚),算法的分析方法達(dá)到理解應(yīng)用的水平;對C語言要非常熟練(要會(huì)應(yīng)用C語言語句的一些技巧,如可以利用函數(shù)的返回值做為判定條件,在循環(huán)中對數(shù)組的處理可使用a[i++]來提高編寫代碼的效率,這類的小技巧只有通過大量的閱讀代碼才能提高),如果是初學(xué)面向?qū)ο蠓矫娴母呒壵Z言,建議還是先學(xué)C++,感覺它更象一種語言規(guī)范,而JAVA是一種編程的工具并且由于它的跨平臺特性所以它有很多自己獨(dú)有的功能和特點(diǎn),有時(shí)間一定要看一本C++語言的數(shù)據(jù)結(jié)構(gòu)它能使你更全面和深刻的理解類及對象的編程方法。(下午那道編程題你拿不到分,就考慮做其它方面的工作吧,程序員不適合你了,因?yàn)槟氵B編程工具都不會(huì)用)
編譯原理一定會(huì)考詞法分析它是后面編譯過程的基礎(chǔ),產(chǎn)生的表格在整個(gè)編譯過程中都會(huì)用到(主要考的內(nèi)容是NFA與DFA的轉(zhuǎn)換、正規(guī)式與有窮自動(dòng)機(jī)的轉(zhuǎn)換等),文法分析有一年考過下午題,這科對初學(xué)者比較難,比較抽象,理論性也比較強(qiáng),反正我是學(xué)了4個(gè)來月才學(xué)通一點(diǎn),這課復(fù)習(xí)沒什么技巧,用功死學(xué)吧。
操作系統(tǒng)沒什么說得了,把它的幾個(gè)功能模塊搞清楚及相關(guān)的算法搞清楚就好了,如處理器的管理、存儲管理、設(shè)備管理、文件管理及系統(tǒng)安全,其中我認(rèn)為比較難理解的是PV操作(在并發(fā)進(jìn)程中它的應(yīng)用非常靈活)和中斷(反正這個(gè)對我比較難),一定要把相關(guān)內(nèi)容所講到的算法及分析過程搞懂,這樣考試相關(guān)的題目對你來說就小兒科了。
其它課程的復(fù)習(xí)就按考試大綱進(jìn)行,把里面的概念搞清楚就行,因?yàn)樗蟛糠侄际巧衔珙}。
3.復(fù)習(xí)練習(xí),在復(fù)習(xí)的一個(gè)月中,留出考前的一個(gè)星期作為做模式試卷的時(shí)間,此間以做練習(xí)為主,它能強(qiáng)化你的記憶,并能做到查缺補(bǔ)漏,遇到不懂不會(huì)的就查書把概念搞清楚,畢竟現(xiàn)在不明白總比考試時(shí)不明白好多了。后再說一句,別把考試看得太難了它只是名頭大(軟件設(shè)計(jì)師一個(gè)嚇人的虛頭),只要你準(zhǔn)備充分,我想沒有考不過的理由(要不就是上帝對你太記恨了)。
好了就說這些,由于本人水平有限(寫作能力就更差了),如有說的不對或表達(dá)不清楚的地方請指正(要不你就當(dāng)是癡人狂語),順祝打算參加軟考的朋友們順利過關(guān)。