電腦學習要經曆一個從理論———實踐———理論的認識不斷深化的過程,下面談談本人通過軟體設計師考試的一些體會。
軟體設計師考試大綱中電腦與軟體工程知識
(1)首先基礎知識中涉及到電腦硬體的內容和多媒體知識以及語言知識問題,這是一個量的積累,最後實現質的飛躍。
(2)資料結構部分,這是首次學習線性表、數組、廣義表、樹、圖、尋找演算法和排序及演算法的分析等。這部分的學習,要吃透理論、適當加大習題量、最好能結合上機,深化理解。資料結構好比是武功中的內功,資料結構學慣用了我一至二年的時間,以自學教材為主。吃透理論就是反覆讀書,以一本書為主(目前清華大學嚴蔚敏老師的資料結構是一個經典),可能的話,再搜羅其他版本的教程,這樣可以互相印證,就同一問題,多看幾本書這一做法,也可推廣到其他學科的學習中。
(3)作業系統知識,主要從資源管理的角度來分析系統功能的實現。假設你要設計一個新的作業系統,如何?它?作業系統理論就是向讀者逐步介紹和解釋。重點是五大管理職能的實現及其原理。
(4)電腦網路中對ISO/OSIRM七層的劃分以及各種協議的功能。傳輸理論、互聯裝置、Internet知識,除參考模型理論外,其他的比較比較淩亂。
(5)系統安全問題是目前社會關注的問題,也是應用價值較高的知識,可結合現實中的相關問題來加深理解。
軟考中的資訊化、標準化知識是新增考點,是對基本素質的考查,也要重視。
專業英語,不是軟體考試特有的,是專業知識+英語水平,考前不需專業準備,平時有意識地上網讀點英文專業資料。
軟考的考試內容既是大學電腦本科專業的必修課,同時又有著鮮明的側重點,這對於沒有經過系統學習的朋友們來說,無疑是一次全面、深入學習的機會,無論是自學或是參加培訓,只要去學了就會對電腦有更深入全面的瞭解,而不只是停留在過去那些膚淺的認識上面。
以上是專業背景知識,是對軟體設計師基本素養的要求。
軟體設計師的專業能力
軟體設計師,關鍵是設計軟體的能力。考試大綱要求:要熟悉軟體工程、軟體流程改善和軟體開發專案管理的基礎知識;熟練掌握軟體設計的方法和技術;掌握C程式設計語言及指定的四種物件導向語言中的一種。這部分專業能力嚴重依賴工作實踐,要求有一定經驗的積累,是具有工程師的實際工作能力和業務水平的體現,但目前大量在校生參加考試,雖沒什麼工作經驗可言,但通過學習和借鑒,仍可以取人之長,補已之短。
這部分內容主要體現在下午的考試題中,現就如何應對下午的考試進行分析:
在近幾次考試中,下午試題分五個題目,一個資料庫、一個程式填空題、一個物件導向的語言題,另兩個題目分別為資料流圖、UML或流程圖等。
資料庫題目,要求補全SQL語言,這要求考生熟悉SQL的語言,無論對上午題目還是下午題目都很重要。這是學習和複習的一個重點。
資料流圖,DFD是一種分析系統資料流程的圖形,意在讓使用者理解系統的功能、輸入、輸出和資料存放區等。請認真弄清其應用後,在畫出資料流圖的情況下,系統的功能也就確定了,再經過細化,逐步向物理結構邁進。考核時,試題多從父圖和子圖的平衡來分析。這部分內容,解題的關鍵是高度重視題目說明,務必正確、深入理解其內容,必要時要讀幾遍,同時對於給出的圖表,也要務必看懂。這樣答題就輕鬆了,答案實際就蘊含在說明中。
流程圖類題目,是大家再熟悉不過的了,它就一個具體問題的解題思路進行描述,是面向過程的。但所求問題是千差萬別的,因此應理解思路,細心作答。
程式填空是答題形式最簡單同時也是難度最大的。為便於閱卷,這類題目以程式填空形式出現,這不僅要求理解問題本質,同時也要弄清作者解題思路,這一點比自己獨立完成程式設計要難得多。依個人經驗,首先要針對問題,設計自己的思路,解決問題,確定先後順序;然後試讀程式,如果思路大體一致,題就容易解決了,如果思路不一致,就要設法弄清每一段代碼的功能及其邏輯結構,進而弄清命題人的解題思路,再順勢解決問題。人們常講,答案就在題目中,這是對的。在分析問題過程中,找到所求答案。不過前提條件是考生要熟悉這種語言,又要明白解題思路,這樣才能正確作答。
近年來對於整合模組化語言UML考查較多,已引起了考生的注意。它代表了軟體工程的發展趨勢,目前是可視化建模的事實上的工業標準。人們對於圖的理解相對其他形式更容易一些,圖能更清晰地描述和說明問題的本質,因此,UML體現了這一特點。這類題目難度與資料流圖相似,自然解題思想也相同。從形式上看,資料流圖更樸實一些,UML類的題目則透出一種新穎、現代的氣息。
最後的題目物件導向語言是一個選做題,給考生以自由,可以發揮個人的優勢。命題已注意到不同語言的考查難度的一致性,要求考生就同一問題回答,實現了形式上的公平。