C++ 的核心優勢領域
或許 Java 與 C# 的浪潮將迫使 C++ 回歸本位——回到其擁有根本性優勢的領域:底層系統程式設計、大規模高效能應用設計、嵌入式程式設計、通用程式設計與數值科學計算。電力系統軟體要求的高效能與大規模數值計算正是 C++ 擅長領域。南瑞、魯能等電力軟體(如 PAS)多以 C++ 開發。
C++ 驅動的世界級軟體
C++ 吸引大量智力投入,優秀作品數不勝數。Stroustrup 個人主頁列出大量採用 C++ 的系統:
- Adobe Systems:Photoshop、Illustrator、Acrobat 等主力產品
- Maya:「蜘蛛人」、「指環王」電腦特效核心軟體
- Amazon.com:大型電子商務平台
- Apple:核心組件
- Google:Web 搜尋引擎
- Microsoft:Windows XP/NT/9x、Office、IE、Visual Studio、SQL Server、Exchange、遊戲等
- Symbian OS:流行蜂窩電話作業系統
- KDE:Linux 桌面環境
新手迷思與工具觀
新手常懷疑所學語言是否過時、是否有用。任何語言只是工具,關鍵在使用工具的人。業界資深開發者傾向成熟熟悉的技術;新手偏好新奇技術與花俏介面。真正有上進心的開發者應追求更優雅高效的編程技術,這是成為「大牛」的好習慣。軟體開發行業停滯易被淘汰。
學習路徑建議
學習語言只是跨入軟體開發「地獄」第一步,遠遠不夠。必須學習:
- 相關程式庫(C++ 首選 C++ 標準程式庫 STL)
- 相關平台技術(如 .NET)
- 目標問題分析、歸納能力
工作前技術路線自主,工作後多受公司技術路線左右。趁有時間學習感興趣領域。電力系統軟體開發,學好 C++ 不會失望。跨過 C++ 黑暗之路,抵達光明頂,將體味「一覽眾山小」。
推薦讀物
《編程高手箴言》(梁肇新著):強調學習需耐心、耐得住寂寞、走自己的路。
C++ 學習的關鍵認知
- C++ 絕非 C 的升級或擴充,應視為一門新語言學習(Stroustrup 語)。
- 寫程式優先序:正確執行 → 效率可接受 → 易於維護。
- C++ 是難學易用語言,提供四種思考模式:基於過程、基於物件、面向物件、泛型。
- 我們更多時候是在使用程式庫(MFC、STL、ATL、VCL)寫程式。要寫出結構優美、效能卓越、代碼簡潔、易維護的代碼,首推 C++ 標準程式庫 (STL)。
- STL 對效率有嚴格要求,泛型思維能充分體會模板之美。