這一篇繼續討論「如何學習 C++?」。先前有推友問道:「入門之後該如何進階?」,這是個很重要的問題,我相信許多人曾卡在這一關。每個人的學習經驗不同,本文就我的親身經驗以及觀察,說說我對「如何進階 C++ 技能」的看法。
其實我上一篇有提到,再貼一次:如何成為一位真正的「C++ Pro」?我認為:
我在部落格分享了初出社會時的景況,其中提到:
學歷慘不忍睹,經驗全無。專業技能「玩電腦」的技術能力弱到想哭。
退伍當時,我只有使用 Turbo C++ 寫一些練習題的經驗,連寫一個功能完整的 Class 能力都沒有。但基於對 C++ 特別的情感,我覺得這個程式語言值得投入心力學習。運氣不錯,第一間公司的主要開發語言就是 C++。進去從打雜開始做起:改一改設定檔、Setup Script,套用多國語言,也就是幾乎沒有寫過會到客戶手上的程式碼。
那時我的 C++ 技能處於初學者剛入門:一般語法看得懂,迴圈、STL 知道怎麼用,編譯器的運作原理則是似懂非懂。平台相依的技能也很平庸,Win32 API 剛接觸,還不知道怎麼寫「視窗應用程式」。原本以為自己 Windows 作業系統玩得很熟,其實很多開發者才會去碰的東西,我壓根兒不知道。
當年就這麼跌跌撞撞,開始了「用 C++ 混飯吃」的日子,一混就是十多年。
我的第一間公司,一待十三年。第一年,前輩們很忙,不會有一對一教學的時間。Pair Programming 什麼的,聽都沒聽過。那時不像現在有這麼多的資源,免費、付費線上課程、數不盡的高手部落格。
第二年,師父離職後,開始了真正的考驗。開始維護公司的產品,一個接一個,漸漸地,主力產品開始由我負責開發與維護。當時能取得的學習資源:
我認為學習 C/C++ 沒有速成的方法。其實,那些「很會印 Hello World 的程式語言」也是同樣的情況:語法入門很容易,但要看懂語法背後,更深一層的意義,甚至看得懂架構,懂得架構軟體,都需要投入時間與精力。
執行的部分,我推薦幾個學習資源:
最後,C++ 已經「轉型」,而且隨著新規格的提出,未來會變得更好。