Linux/UNIX C++高級軟件工程師

參考一個培訓班課程,給自己下的學習目標,專注Linux/Unix服務器端的軟件開發(後臺開發)

主要學習:Linux/Unix,C/C++,Boost,ACE,Shell編程,Oracle/MySQL,數據塊建模,UML建模,項目實踐,開發模式


課程大綱
一、Linux操作系統

    * 系統環境:Ubuntu GNU/Linux、RedHat Linux AS5、FreeBSD
    * 課程要求:熟練使用常用的Linux/UNIX命令。
    * 時間:1周。

二、Linux C++開發環境搭建、開發工具的使用

    * 涉及內容:vi、GCC、GDB、Make、CVS、Subversion、Eclipse CDT
    * 課程要求:
          o 熟練使用vi文本編輯器;
          o 熟練使用GCC工具鏈進行編譯、調試、構建可執行文件或共享庫/靜態庫;
          o 熟練編寫Makefile;
          o 熟練配置、使用CVS和Subversion兩種版本控制工具;
          o 熟練配置、使用Eclipse CDT開發工具。
    * 時間:1周

三、C++語言

        C++是一門多範型編程語言,相對於C、Java、C#等C系語言,複雜度高,但一旦領悟C++的精髓,則能發揮C++語言的強大威力,爲了讓學員掌握C++語言編程技術,我們將這部分的課程分爲五個部分:

    * 面向過程編程: Core C++
          o 涉及技術:C++基礎:類型和聲明、指針與數組、表達式與語句、函數、名字空間、異常、代碼文件的組織
          o 課程要求:掌握紮實的C++基礎知識。
          o 時間:1.5周。
    * 面向對象編程: 封裝、繼承與多態(encapsulation、inherit & Polymorphism)
          o 涉及技術:類設計、運算符重載、繼承與多態。
          o 課程要求:正確理解面向對象的概念,用面向對象的思維和方法構建軟件,正確地設計和使用類以及繼承體系。
          o 時間:1.5周。
    * 泛型編程: C++模板(Template)
          o 涉及技術:類模板、函數模板、函數對象(Function object)。
          o 課程要求:C++模板是C++強大威力的技術支撐,是構建C++標準庫、Boost類庫、ACE框架等的基礎,必須熟練掌握C++模板技術。
          o 時間:1.5周。
    * 數據結構與算法
          o 涉及內容:常用數據結構(順序容器、鏈表、樹)和算法(排序與搜索)的C++實現。
          o 課程要求:能實現常規的數據結構(容器如vector、list、statck、queue等),排序和搜索算法。
          o 時間:1.5周。
    * C++標準庫應用
          o 涉及技術:標準容器(STL容器):vector、list、map、set等等;迭代器、算法庫、IO流、C語言數學庫等
          o 課程要求:對常用的部分如容器、迭代器、常用的算法、IO流,必須牢固掌握、熟練使用,對其它部分必須有認識,以免日後工作中頻繁的編寫標準庫中存在的內容,重複製造輪子。
          o 時間:2周。

四、C++ Boost模板庫

        Boost是由C++標準委員會成員發起、衆多C++界高手參與設計並實現的一個涉及面廣、質量高且業已廣泛使用的C++標準後備庫,其中TR1已經被納入C++0x標準庫。這部分的課程將涉及其中一些常用的類庫。

    * 涉及技術:Aiso、Thread、Interprocess、System、File System、Date Time、Format、Array、Lambda、Signals、TR1中的部分(Regex、Tuple、Smart Point、Hash Map、Hash Set等)。
    * 課程要求:必須掌握的類庫有:Aiso、Thread、Date Time以及TR1中部分內容。
    * 時間:2周。

五、ACE框架

        ACE是一個被廣泛使用、設計優雅、高性能的C++通信框架(不僅僅是通信框架),其設計及實現被衆多開源框架所借鑑。是構建穩定、高性能、高吞吐量、跨平臺的服務器端程序的優秀框架。

    * 涉及技術:ACE Reactor框架、ACE Proactor框架、MultiThread支撐、Timer(Scheduler)、ACE Service Configurator。
    * 課程要求:以上列舉的部分是服務器端編程必不可少的部分,均需熟練使用。
    * 時間:2周。

六、數據庫開發

        專注Oracle 10g、MySQL5.0+。這部分的課程分爲以下三大塊:

    * SQL語言:
          o 涉及技術:數據查詢語言DQL,數據操縱語言DML,數據定義語言DDL,數據控制語言DCL。
          o 課程要求:熟練使用SQL語言。
          o 時間:1周。
    * Oracle和MySQL存儲過程、函數、觸發器
          o 涉及技術:PL/SQL。
          o 課程要求:熟練編寫Oracle和MySQL存儲過程、函數、觸發器。
          o 時間:1周。
    * C++數據庫開發
          o 涉及技術:OTL或DTL(兩個高性能、易用的C++模板類,針對各大主流數據庫如:Oracle、DB2、SqlServer、MySQL等)。
          o 課程要求:熟練使用OTL和DTL進行數據庫編程。
          o 時間:0.5周。

七、軟件工程

        一個優秀的軟件工程師不僅具備優秀的編碼能力,更應該擁有優秀的軟件設計思維和方法,以下課程也是軒轅學員必修的內容。

    * 涉及技術:數據庫建模、軟件建模、GOF設計模式、文檔編寫
    * 課程要求:掌握數據庫建模、軟件建模的思想和方法,熟練使用建模工具,嘗試用設計模式來思考軟件的架構。至少學會編寫《詳細設計說明書》、《概要設計說明書》、《數據庫設計說明書》。
    * 時間:1.5周。

八、項目實戰
         企業級實戰項目如:電信級IM Server、電信級Billing Server等基於UNIX或Linux下的高負荷、大壓力的C++ Server端項目,同時提供Client端程序以便聯調及測試。

    * 涉及技術:本項目將涉及學習階段所有內容。
    * 項目要求:學員按分組,分工、協作,共同完成項目,最終評估兩個方面:軟件架構設計、軟件代碼實現質量。
    * 時間:4周。
     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章