C++學習進程安排
本人本科不是計算機,不是軟件專業(yè)出身的,研究生階段學的是軟件,基礎(chǔ)很一般。我最近制定了一個學習C++的學習安排,現(xiàn)與大家分享一下,不足之處,歡迎指正!
第一階段(Linux C開發(fā))
目標:能使用并管理linux系統(tǒng),熟悉linux開發(fā)環(huán)境。熟練掌握C語言語法。掌握Linux下C開發(fā)方法。
主題?
內(nèi)容
Linux最佳入門
Linux基本操作、Linux基本命令、bash基礎(chǔ)、Linux文件系統(tǒng)、Linux管理命令、Linux文件權(quán)限、vi使用、grep命令與正則表達式、find命令等。
Shell編程
Shell編程基礎(chǔ)、輸入輸出、算術(shù)擴展、條件測試、條件與分支語句、循環(huán)語句、函數(shù)、sed、awk、Shell俄羅斯方塊
Linux開發(fā)工具
gcc、make、gdb
Linux C語言開發(fā)
數(shù)據(jù)類型、控制語句、自定義數(shù)據(jù)類型、模塊化程序設計、指針
實戰(zhàn)項目
餐館點菜系統(tǒng)(文件版)
第二階段(Linux C深入)
目標:對C語言進入深化,掌握Oracle數(shù)據(jù)庫以及數(shù)據(jù)庫開發(fā)。掌握Linux底下的數(shù)據(jù)庫開發(fā)技術(shù)。
主題
內(nèi)容
數(shù)據(jù)結(jié)構(gòu)
鏈表、linux內(nèi)核鏈表、棧和隊列、樹、哈希表、經(jīng)典查找與排序算法
Oracle數(shù)據(jù)庫
Oracle數(shù)據(jù)庫基礎(chǔ)、ER模型、數(shù)據(jù)庫系統(tǒng)的開發(fā)流程、數(shù)據(jù)庫設計、POWERDESIGNER工具使用、ORACLE體系結(jié)構(gòu)、DDL、DML、PLSQL、存儲過程、觸發(fā)器、函數(shù)、游標
PRO C編程
PRO C程序設計、宿主變量、指示器變量、錯誤處理、游標處理、PRO*C調(diào)用PL/SQL程序塊、PRO C調(diào)用存儲過程、動態(tài)SQL
實戰(zhàn)項目
餐館點菜系統(tǒng)(數(shù)據(jù)庫版)
第三階段(Linux系統(tǒng)編程)
Linux系統(tǒng)編程圍繞Linux操作系統(tǒng)的三大抽象展開講解(文件、虛擬存儲、進程)。并配合一個小型的Shell程序minishell做為教學項目
主題
內(nèi)容
Linux系統(tǒng)編程
Linux系統(tǒng)編程之文件篇、Linux系統(tǒng)編程之進程篇、Linux系統(tǒng)編程之信號篇、Linux系統(tǒng)編程之管道篇
實戰(zhàn)項目
Minishell
第四階段(Linux網(wǎng)絡編程)
Linux網(wǎng)絡編程基礎(chǔ)知識,socket編程、消息隊列、共享內(nèi)存、信號量、線程的創(chuàng)建、線程的狀態(tài)多線程編程、線程間的通信、線程同步、線程池等。通過這個課程的學習,實現(xiàn)一個小型的ftp服務器miniftpd。
主題
內(nèi)容
Linux網(wǎng)絡編程
Linux網(wǎng)絡編程之TCP/IP基礎(chǔ)篇、Linux網(wǎng)絡編程之socket編程篇、Linux網(wǎng)絡編程之進程間通訊篇、Linux網(wǎng)絡編程之線程篇
實戰(zhàn)項目
Miniftpd項目實戰(zhàn)
第五階段(認真學C++)
掌握C++語法、掌握理解面向?qū)ο蟮木幊趟枷肱c應用、初步掌握面向泛型的編程思想。
主題
內(nèi)容
C++程序設計
C++面向?qū)ο螅\算符號重載,模板,異常處理,資源管理
幾個重要的練習:
大整數(shù)類、字符串類、ptr_vector實現(xiàn)、面向?qū)ο蟀娴谋磉_式計算器、面向泛型版的表達式計算器、俄羅斯方塊的實現(xiàn)
OOAD&UML
UML、面向?qū)ο笤O計原則、設計模式
敏捷開發(fā)實踐
XP極限編程(結(jié)對編程、測試驅(qū)動開發(fā)、重構(gòu))
實戰(zhàn)項目
表達式計算器、俄羅斯方塊
第六階段(大并發(fā)服務器設計)
綜合應用Linux系統(tǒng)編程、Linux網(wǎng)絡編程、學C++所學的知識編寫一個大并發(fā)服務器
主題
內(nèi)容
大并發(fā)服務器設計
Mysql編程、Winsock編程、Linux Epoll模型、網(wǎng)絡編程基礎(chǔ)組件封裝
實戰(zhàn)項目
銀行儲蓄系統(tǒng)實現(xiàn)為大并發(fā)、客戶端Windows、服務器端Linux
第七階段(Windows編程)
在Windows操作系統(tǒng)環(huán)境下使用MFC進行圖形化界面編程,運用MFC中的GDI技術(shù)進行圖形圖像開發(fā),學習常用的游戲開發(fā)技術(shù)。
主題
內(nèi)容
Windows程序設計
MFC結(jié)構(gòu),文檔/視圖結(jié)構(gòu),消息映射,SDI,對話框,常用控件,圖形繪制,常用游戲編程技術(shù)
實戰(zhàn)項目
單機版連連看
第八階段(Windows網(wǎng)絡編程)
深入學習Windows多線程、網(wǎng)絡編程。
內(nèi)容
Windows網(wǎng)絡編程
動態(tài)鏈接庫,內(nèi)存管理,進程管理,多線程,進程與線程通信與同步(臨界區(qū),互斥量,信號量等),WinSock編程、完成端口等。
實戰(zhàn)項目
網(wǎng)絡對戰(zhàn)平臺(多人連連看)??
主要往三方面去努力:
?
(1)基礎(chǔ)扎實。注重基礎(chǔ):語言、數(shù)據(jù)結(jié)構(gòu)與算法、Linux、操作系統(tǒng)等等。
? ? ? ? ? ? ? ? ? ? ? ? 注重手寫代碼能力,有必要重點強化訓練。
(2)課外知識。課外花時間學習了web服務器Nginx,雖然研究得不是很深入,了解基本的架構(gòu)和重點模塊。只要能保證對于服務器 ? ? ? ? ? ? ? ? ? ? ? ? ? ? 模型有了基本理解即可。
(3)技術(shù)博客。多總結(jié),多交流,多分享經(jīng)驗心得,相互學習,相互幫助。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??





