【軟體工程師中級職稱】學習總結
計算機系統 & 程式設計語言 & 作業系統知識
計算機系統知識這一塊側重於底層,或者說是硬體。
1.我們需要對CPU內部的那些元器件都分別負責什麼瞭解清楚
2.掌握資料的原碼、反碼、補碼、移碼,以及相關的二進位制、十六進位制的轉化
3.對於奇偶校驗、海明碼、迴圈冗餘校驗需要明白其原理
4.需要明白各種計算機系統、儲存系統的不同
5.明白加密和認證技術的原理
程式設計語言這一塊的知識就是針對高階語言怎麼一步步變成機器中的0和1
通過詞法分析、語法分析、語義分析、中間程式碼生成、程式碼優化、目的碼生成,我們的程式碼就這樣變成了機器可以看懂的指令。
在其中文法的知識比較晦澀,但是最終還是可以弄懂的。
至於作業系統,其實總體來講,作業系統向上面向使用者,為使用者提供一些簡單易操作的介面或者介面,向下面向硬體,幫助使用者處理一些繁瑣複雜的儲存、管理的事物。
軟體工程基礎知識
軟體工程的提出是為了解決軟體危機。
它主要的貢獻就是將工程的思想引入到了軟體開發中,其中的模型、方法、工具都有相應的體現。
http://blog.csdn.net/column/details/13141.html
這是關於軟體工程總結的相關連結
軟體系統分析與設計 & 系統開發與執行
軟體系統分析與設計講述的一個軟體如何從無到有
它包括結構化分析與設計、資料庫分析與設計、面向物件分析與設計、演算法分析與設計、面向物件的程式設計與實現
系統開發與執行講述的就是軟體的開發與運維了
它從開始的分析設計到最後的測試與維護,展現了程式設計師在其中各個階段的工作。
網路
關於網路的知識分為三塊,一是硬體,二是協議,三是安全
我們需要各種各樣的硬體來搭建網路,網路搭建好了,需要一系列的協議來讓我們能夠正常的通訊,最後還需要相關的安全手段來保障我們的通訊安全。
資料結構 & 演算法設計與分析
有人說資料結構和演算法加起來就是程式。
在這裡資料結構就是我們將現實中的資料以什麼樣的組織形式存放到電腦中,不同的存放形式讀取起來的效果是不一樣的。
至於演算法,就是我們如何組織處理這些資料,其中一些精妙的演算法,那些邏輯真是令人歎服。很多時候大家都會覺得難,但這些智慧是高度凝結的,所以需要花費時間去理解。可能難是因為想一蹴而就罷了。
總結
整個軟體工程師中的知識,向上就是程式,向下就是硬體。
其中我認為核心都是服務於軟體二字。
底層的計算機系統、程式語言知識、作業系統知識可以讓我們的軟體執行的更加好。
中間的資料結構、演算法、網路、多媒體都是我們製作軟體要掌握的知識。
上層的軟體分析、開發、設計、維護就是創作軟體的整個流程。
知識有很多,原因大概就是因為軟體這個東西作為一個高度凝結的智慧,成為了一個節點,將太多的東西連線到了一起。
最後,我們學習做軟體,某種形式上,也在學習著如何規劃人類社會中的資源。