精華區beta C_and_CPP 關於我們 聯絡資訊
之前從事了 C/C++ 相關基礎課程的教學大概有五六年, 接觸到大部分都是有心想學但是非本科系的學生。 如果你只是想學一個程式語言,我覺得 C/C++ 不是個好選擇。 如果你不知道為什麼想徹底的學會 C/C++,建議的曲線大概是: [C 語言] * 計算機概論 - 基礎知識, 主要是對於電腦結構運作抽象化、資料數位化以及運算有基礎認識 - 通常會帶一點編譯器和作業系統的觀念 * C 語言程式基礎 - 學會自己看懂標準函式庫的文件並可自由應用為目標 * C 語言程式進階 - 這階段就是學習怎麼學會使用第三方函式庫, 例如 SDL, OpenGL, OpenCV, GTK+ 之類, 應該牽涉到比較進階的概念跟使用慣例, 例如 C 風格封裝、函式指標與位 元運算 * 演算法和資料結構以 C 語言實作 - 我覺得演算法不太應該跟資料結構分開學 - 語言方面主要是加強遞迴使用、指標和動態記憶體配置的概念 [C++ 語言] * 計算機概論 - 所需要的基礎可以比 C 語言再少一點,因為有更強大的標準庫。 * C++ 語言中與 C 較接近的部分 - 雖然我相信很多人會覺得應該直接學 C++ 風格的設計, 但是教學實務上我還是覺得有很大的困難。 同時我也信奉 C 風格設計是 C++ 使用上的一種可能, 要透徹了解 C++ 在 "目前" 我覺得了解 C 跟 C++ 的差異還是有必要。 * 基於物件的 C++ 程式設計 - 主要學 C++ 風格封裝。 * C++ 與物件導向 - 主要學物件導向的語法,建議是實作某些大型系統,例如 GUI。 * 設計模式與 C++ 程式設計 - 主要學物件導向在實務系統上的應用 * C++ 泛型程式設計 - 用 C++ 實作資料結構 (泛型容器) 跟泛型演算法 - 之前的教學經驗就是直接自己實作 STL * 其他學不完的東西 - 例如例外之類的,但是實務上重要性目前還是不夠高,這類的東西在 之後的 C++ 可能又會有些改動,因此重要性就往後一點。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.122.83.198 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1431687381.A.0E7.html ※ 編輯: Feis (140.122.83.198), 05/15/2015 19:14:32
johnpage: 寫程式是需要毅力與耐心 05/15 23:31
Bencrie: OpenGL 拿來練 C ... 好像有點怪吧 XD 05/16 15:26
Feis: 怎麼說? 我覺得 OpenGL 是蠻標準的 C 風格函式庫設計 05/16 15:40
Feis: 神秘的全域函數, callback, 霧一般的記憶體配置, 猜不透的 05/16 15:42
Feis: 堆疊實作. 各種 MACRO 05/16 15:42
Feis: 真的通透的話, 以後用其他函式庫應該都不會怕 xD 05/16 15:42
※ 編輯: Feis (140.122.83.198), 05/16/2015 15:56:25
EdisonX: !! @Feis , 言下之意 , 您是否認為 global variable 是種 05/16 22:31
EdisonX: C++ 使用 C 的風格之一? 05/16 22:31
Bencrie: OpenGL 沒有 callback,glut 不能算 05/16 23:44
Feis: EdisonX: 有點難回答. 這問題是同等於 C++ 用 global 05/16 23:44
Feis: variable 是否萬惡嗎 ? 05/16 23:44
Feis: Bencrie: 抱歉. 也許我該嚴格定義他 05/16 23:46
Feis: 也許我們應該先定義好甚麼是 OpenGL XD 05/16 23:47
Bencrie: 我發現我好像會錯意 ... 以為是要拿他當 API 設計參考 05/16 23:53
Feis: Bencrie: 我不想再學一個像 OpenGL 家族的東西了 Orz.. 05/16 23:54
Bencrie: OpenAL 跟 libdevil XD 05/16 23:55
Feis: 感謝. 我會記得離他們遠點的 (握拳) 05/16 23:58
Bencrie: 這兩個其實沒那麼複雜,只是寫起來很像(命各種名也是 05/17 00:01
Bencrie: 各種命名 05/17 00:03
Feis: 樓上這是個 1A3B 阿. 05/17 00:04
Killercat: OpenGL跟DX都是同一個設計風格啦... XD 05/18 14:02
Killercat: 真的要說完全C++風格的 只有在wrap一層 比方說Ogre 05/18 14:02
Killercat: 但是事實是這就是紅不起來... 05/18 14:03
gary841208: 推 演算法跟資料結構是一體的 不該分開學 05/18 17:53