如何精進自己的C/C++功力
<本文轉錄自 ptt.cc BBS 站 C_and_CPP 板 FAQ 作者: Khoguan Phuann>
我是個自學者,努力讀了幾本「精通 C++程式設計」這類的書,但還是寫不出什麼真正有用的程式,怎麼辦?
這些書大概只談到了 C++ 語言本身的結構、語法,加上一些 C++ 標準程式庫的東西,然後示範了幾個不是很有用的小程式。要寫出真正有用的程式,光知道這些還不夠。一方面,還要往下紮根,學習一些資料結構及演算法的知識,探討各種程式設計典範,如:物件導向程式設計、設計模式(design patterns)的理論;一方面還要往廣度擴展,根據想要寫的程式的種類,去學習諸如圖形介面、資料庫、網路通訊、影像處理等的觀念及其程式庫的使用。還有作業系統平台上的系統呼叫,如 Unix/Linux system call、Win32 API等。
另外,也常需要學習一些應用程式框架(application framework)以及快速應用程式開發工具(Rapid Application Development Tool, RAD Tool)。當程式的規模越來越大,軟體工程理論的知識也越形重要。
想一個覺得有趣的專案主題,其所需的程式能力比自己目前的程度高一點,然後邊寫邊學習不足的相關知識,從做中學吧。或者找一套開放源碼的軟體,修改並增加自己想要的功能,回饋給社群,和高手們互動,更是極佳的訓練。
我是個自學者,努力讀了幾本「精通 C++程式設計」這類的書,但還是寫不出什麼真正有用的程式,怎麼辦?
這些書大概只談到了 C++ 語言本身的結構、語法,加上一些 C++ 標準程式庫的東西,然後示範了幾個不是很有用的小程式。要寫出真正有用的程式,光知道這些還不夠。一方面,還要往下紮根,學習一些資料結構及演算法的知識,探討各種程式設計典範,如:物件導向程式設計、設計模式(design patterns)的理論;一方面還要往廣度擴展,根據想要寫的程式的種類,去學習諸如圖形介面、資料庫、網路通訊、影像處理等的觀念及其程式庫的使用。還有作業系統平台上的系統呼叫,如 Unix/Linux system call、Win32 API等。
另外,也常需要學習一些應用程式框架(application framework)以及快速應用程式開發工具(Rapid Application Development Tool, RAD Tool)。當程式的規模越來越大,軟體工程理論的知識也越形重要。
想一個覺得有趣的專案主題,其所需的程式能力比自己目前的程度高一點,然後邊寫邊學習不足的相關知識,從做中學吧。或者找一套開放源碼的軟體,修改並增加自己想要的功能,回饋給社群,和高手們互動,更是極佳的訓練。
留言