iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 21
0

這一篇繼續討論「如何學習 C++?」。先前有推友問道:「入門之後該如何進階?」,這是個很重要的問題,我相信許多人曾卡在這一關。每個人的學習經驗不同,本文就我的親身經驗以及觀察,說說我對「如何進階 C++ 技能」的看法。

其實我上一篇有提到,再貼一次:如何成為一位真正的「C++ Pro」?我認為:

  1. 反覆閱讀幾本好書
  2. 做中學的實驗精神
  3. 待領域相同的職場
  4. 跟隨一位對的導師
  5. 公開分享學習心得
  6. 三年

我在部落格分享了初出社會時的景況,其中提到:

學歷慘不忍睹,經驗全無。專業技能「玩電腦」的技術能力弱到想哭。

退伍當時,我只有使用 Turbo C++ 寫一些練習題的經驗,連寫一個功能完整的 Class 能力都沒有。但基於對 C++ 特別的情感,我覺得這個程式語言值得投入心力學習。運氣不錯,第一間公司的主要開發語言就是 C++。進去從打雜開始做起:改一改設定檔、Setup Script,套用多國語言,也就是幾乎沒有寫過會到客戶手上的程式碼。

那時我的 C++ 技能處於初學者剛入門:一般語法看得懂,迴圈、STL 知道怎麼用,編譯器的運作原理則是似懂非懂。平台相依的技能也很平庸,Win32 API 剛接觸,還不知道怎麼寫「視窗應用程式」。原本以為自己 Windows 作業系統玩得很熟,其實很多開發者才會去碰的東西,我壓根兒不知道。

當年就這麼跌跌撞撞,開始了「用 C++ 混飯吃」的日子,一混就是十多年。

我的第一間公司,一待十三年。第一年,前輩們很忙,不會有一對一教學的時間。Pair Programming 什麼的,聽都沒聽過。那時不像現在有這麼多的資源,免費、付費線上課程、數不盡的高手部落格。

第二年,師父離職後,開始了真正的考驗。開始維護公司的產品,一個接一個,漸漸地,主力產品開始由我負責開發與維護。當時能取得的學習資源:

  1. 一些專案程式碼(那時沒版控,要前輩給)
  2. MSDN 開發者文件
  3. Code Project 等網上資源
  4. 天瓏書局
  5. 侯捷老師的譯作

我認為學習 C/C++ 沒有速成的方法。其實,那些「很會印 Hello World 的程式語言」也是同樣的情況:語法入門很容易,但要看懂語法背後,更深一層的意義,甚至看得懂架構,懂得架構軟體,都需要投入時間與精力。

執行的部分,我推薦幾個學習資源:

  1. Scott Meyers 的 Effective 系列書
  2. 不要排斥 Design Pattern
  3. 留意並觀看 C++ 為主的研討會錄影
  4. 訂閱 C++ 界知名開發者的部落格
  5. GitHub 上找幾個表現不錯的專案,研究其原始碼
  6. 找一個同領域的導師,巴著不放

最後,C++ 已經「轉型」,而且隨著新規格的提出,未來會變得更好。


上一篇
DAY 19:關於新手學習 C/C++ 這件事
下一篇
DAY 21:讓跨平台檔案及目錄處理更輕鬆的 std::filesystem
系列文
山姆大叔談 C++:從歷史談起,再給個定義—Modern C++ 解惑26

1 則留言

0
alantsui
iT邦新手 5 級 ‧ 2019-09-23 01:04:34

Winapi真的是C++裏最友好的GUI lib了,遺憾的是他只支持Windows.....

我要留言

立即登入留言