第壹:操作系統知識。操作系統知識是軟件工程師必須具備的重要內容。Windows系列操作系統可能會用在Web開發領域,Linux系列操作系統會用在大數據和物聯網方向。掌握操作系統的架構是軟件研發的重要基礎。主要內容包括資源管理、任務調度、並發管理、權限管理、網絡管理等。
第二:編程語言和算法。編程語言是軟件工程師的必備技能。不同方向的開發需要不同的編程語言。比如Web開發可能用PHP、Python、Java等語言,大數據可能用Java、R、Scala,物聯網開發可能用C、C等編程語言。壹般來說,軟件工程師往往需要掌握多種編程語言,以應對不同的開發環境。算法是軟件工程師的關鍵知識結構,因為軟件研發歸根到底是壹個數學問題,所以對算法的掌握往往能決定軟件工程師的成長高度。當然,對於應用級軟件工程師來說,可能接觸不到更多的算法。
第三:領域知識。不同的發展領域需要掌握不同的知識結構。比如大數據軟件工程師往往需要掌握Hadoop和Spark平臺的使用,而Web開發工程師往往需要掌握前端和後端的開發技術,包括壹系列Web開發框架的使用。
軟件工程師需要學習以下知識:
熟悉計算機系統的基礎知識;
(2)熟悉網絡操作系統的基礎知識;
(3)了解計算機應用系統的設計和開發方法;
(4)熟悉數據通信的基本知識;
(5)熟悉系統安全和數據安全的基礎知識;
(6)掌握網絡安全基礎技術和主要安全協議、安全系統;
(7)掌握計算機網絡體系結構和網絡協議的基本原理;
(8)掌握與計算機網絡相關的標準化知識;
(9)掌握局域網的組網技術,了解城域網和廣域網的基本技術;
(10)掌握計算機網絡互聯技術;
(11)掌握TCP/IP協議網絡的組網方法和網絡應用服務技術;
(12)了解接入網和接入技術;
(13)掌握網絡管理的基本原理和操作方法;
(14)熟悉網絡系統基本性能測試和優化技術、可靠性設計技術;
(15)了解網絡應用的基本原理和技術;
(16)了解網絡新技術及其發展趨勢;
(17)了解知識產權和互聯網相關法律法規;
(18)正確閱讀和理解該領域的英文資料。