入門語言不重要,但優秀程序員必精通至少一門語言。C++ 用戶群大、資源豐、前景廣,許多愛好者欲精通,卻因複雜度高而望而卻步。本文獻上學習建議。
正確認知 C++ 與 C 的關係
- C++ 由 C 發展而來,更豐富更複雜。
- 有 C 基礎者:從 C 向 C++ 過渡事半功倍,指針等核心概念已掌握,可繼承大量知識。《Thinking In C++》即採用此教學法:從 C 結構體引入類概念。
- 無 C 基礎者:無需先學 C,直接學 C++ 即可,兩者不衝突。
- 避免混淆:語法/關鍵字相似不代表語義相同,必查專業書勿臆測。
面向對象:核心差異
C++ 是面向對象語言(繼承、多態、類),但保留面向過程痕跡,不如 Java 純粹。若已懂 OO 思想學 C++ 易上手;若想借 C++ 學 OO 可能不適宜——可先把 OO 特性當特殊語法對待,深入後再補理論。
語言爭論與心態建設
- 「C++ 過時了,學 Java/Python」——沒有語言行不行,只有你學得好不好。學得似懂非懂,換最新語言也白費;學得透徹,金子終會發光。
- 「學哪個有前途」——前提是扎實知識。糾結選擇只會阻礙靜心鑽研。做踏實學習者,而非觀望者或三分鐘熱度者。
標準 C++ 的重要性
- 過去國內輕視標準 C++,現狀改善中。
- TC、VC6、DevCpp、VC2005 間代碼移植頻報錯,根因是編譯器對標準支持度不同。VC6 支持差,GCC/VC2005 較好。
- STL、模板、異常等均在標準中嚴格規定。——要學就學標準 C++,拒絕山寨 C++。
擺脫 IDE 依賴
TC/VC/GCC/BCB 只是 IDE,會用 IDE ≠ 掌握語言。早日斷奶,掌握語言本身,到任何環境都能從容應對。
未完待續……