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





