毫無疑問,學習C++是一件痛苦的事情。
我大概十年前接觸C++。那是在學校里,准備考研究生,某學校要求考C++。我就開始一點一點學習,學習的過程還是比較舒服的。不得不說,就古典C++的理論,錢老講的還是很好的。但是主要是能完成“Hello, World!”的幾個版本而已,而這對於應考來說是足夠啦。雖然我最后未能直接讀研,但自覺C++理論我還是學得不錯的。
05年畢業遇到了兩個尷尬事。第一件事是我去一家公司面試開發,要求寫一個1+1=2的有界面的程序,結果被鄙視啦。俺只學過C語言,沒有開發過任何有界面的程序(Matlab不算的話),因為俺是數學系畢業的。第二件事是,我終於找到工作,但面臨相同的問題。好的一點是,領導給我兩個月學習。我經過兩個月的艱苦學習,終於,敗下陣來。搞了半天連MFC的main函數在哪里都不知道。總是覺得好深好深,像一個無底洞一樣。找不到開始,也找不到結束,跟我理解的C語言差距太大啦。最終被領導拐騙到C#上啦。C#實在是太可愛啦,就像是Q版的C一樣,一切井井有條,簡簡單單。
十年來,我對C++懷着極其復雜的心情。討厭它,因為我在它面前敗下陣來;恐懼它,因為它深不見底;向往它,因為它是一座高峰!
十年后的今天,因為工作需要,我被迫必須使用C++。我再次向C++發起了進攻!主要有四個步驟:買書、啃書、加入QQ討論群、修改C++產品代碼。
買書。買什么書是個很講究的是,實際上這也使決定成敗的一步。我的感觸是——“沒有學會一門技術,要么這門技術還不迫切需要,要么沒有找到一本合適的書”。在迫切需要這項技術的前提下,我急需找到一本好書。翻遍各種博客論壇,我最終決定買《Visual C++ 2012 入門經典》這本書。事實證明,我得決定是明智的,除了這本書太厚以外。呵呵。
啃書。這是必經的階段。我看書一向很慢,我一步一步,如履薄冰。一頁一頁看,生怕漏了啥東西,后頭看不懂。關於厚書,我有一句名言“書非拆不能讀也”——拆一章看,看完再拆一章下來。這樣容易打消看書的恐懼感。不過還保存好看完的那些章,最后把這些再訂起來。這方面我的感謝我的老婆,她最后總是把我的書訂好,訂得跟線裝書似的,比原裝的還漂亮。言歸正傳,看書不能光看,還要練習,就是把書上的例子一個字母一個字母的錄入IDE中,編譯,運行。感受這些理論和代碼。這里還有一句名言——“Pratice makes perfect”,與君共勉。
加入QQ討論群,群里不一定要有大牛,只要有熱心的同行者、過來人就行。我特別感謝“C++/C#技術交流”群里的馬東同學,他屢屢三更半夜回到我的問題,幫我答疑解惑。這極大地鼓舞了我的信心,讓我沒有像八年前那樣郁悶、潰逃。
修改C++產品代碼。寫在最后,但這不是最后做的事情。上班就要工作,工作就要寫代碼。雖然還不是太熟悉,但是必須得寫啦,哪怕是一天寫幾行。然后不斷學習,不斷重構,直到必須結束。
結語
好的開始是成功的一半,借發哥一句廣告詞“我才剛剛上路呀”!