最近遇到一些事情,讓我對於現在的C++程式員有了很大的擔憂。主要是:
- 將C++ = VC,不知道 VC/C++ 之間的差異,不清楚C++的標準其實是開放的,而非C#一樣為Microsoft所"壟斷"
- 不知道 C++ 的程式需要經過 編譯(Compile)與連結(Link)過程,完全不知道 Make
- 不知道 C++ 程式的編譯模式,不清楚 Debug 與 Release 間的差異
- 不知道 C++ 程式可以離開IDE單獨運行,彷彿每次運行都要先按 F5
- 不知道 C++ 程式最主要的運行方式是 Console,所有的程式都要用 GUI
- 只知道 C++ 開發 GUI 使用 MFC,不知道可以用QT、wxWidgets、SmartWin 或者 VCF
- 不知道 Boost 庫,也不知道 STL 庫不是一種
- 不知道 GDB,不知道如何利用命令列方式進行調試
C++學習者,以上的一些問題你是否遇到呢?可惜的是,我遇到一些自稱是”c++高手“的朋友,對上述問題無法做答。因此,我不得不大聲對C++初學者強烈建議:千萬不要碰Visual Studio。其實,這本不是Microsoft的問題。作為一個軟體供應商,其為使用者提供最方便快捷的IDE工具是必然的。但Visual Studio是商業軟體(除了Express版本以外),要獲得Visual Studio的授權是需要支付高額的費用(相對於學生而言)。因此作為學生,不應該也沒有經濟基礎在學習C++階段應用VisualStudio這樣的IDE軟體。他們應該去用 Code::Blocks、CodeLites,或者EclipseCDT。只有這樣,才能在簡單的環境下熟悉掌握C++最基本的概念,才能領會C++的精神。而一旦在這些環境下能夠開發C++程式,到了工作單位,有了Visual Studio這樣的環境,就能夠遊刃有餘地工作了。否則,在Visual Studio下學習很可能不熟悉C++基本知識,造成"與浮沙上築高台"的現象,最終所學不牢靠,遇到有些難度的技術問題找不到解決之路。這樣的記錄,希望C++的學習者們,要深刻反思Visual Studio對於學習的作用,讓工具輔助學習,而不要阻礙學習。