如何深入學習C++?
大二學生
謝邀,我覺得大致的路線是這樣吧,C++語言的基本語法-&>運用C++進行一些小項目的開發-&>開始研究C++,如C++對象模型-&>C++大型項目的開發-&>返樸歸真,開始深入研究C++的本質,開始理解The Design and Evolution of C++-&>開始探尋C++在編譯器的實現,如詞法,語法,類型系統等-&>開始研究C++標準,閱讀C++最新的標準Paper;不過當我寫完以後,我突然想起 @Milo Yip似乎發表過類似的答案,找了一下,然後用指針傳過去吧:用一年時間如何能掌握 C++ ? - Milo Yip 的回答
自己衝上來回答。
從現在的行業發展來看,C++不屬於快餐型的開發語言,所以如果你是想快速上手,一兩個月就能用它做出個像模像樣的軟體,然後就成為C++高手的話是不現實的。基於現在這個講究快餐的年代,這也導致市場上越發難找到有工作經驗的C++的工程師了。現在剛畢業的都在學習和C++不處在同一時代的語言(例如JAVA,C#,Obj-C),至少他們更期望如此。。
C++的演變是基於C語言的,但因為增加了Class這個概念,以及不同操作系統上有不兼容的類庫,直接使它的學習重點完全與C不一樣(看看MFC就知道了),但又為了與C兼容,使得市面上太多的C++程序不倫不類,雖然很大原因也不在程序員,誰讓UNIX/LINUX 下的原生系統調用就是C語言。
好吧,說了一大堆廢話。如果想學好C++,那麼問題來了,你學習它是為了幹嘛?如果是為了畢業後找工作,那你可能最初的幾年,會像竹子的生長過程一樣,完全看不到希望,然後到時候如果你還在活(堅)著(持),你就會變成一個NB的程序員(塞亞人)。如果你真的熱愛程序,那麼就不要在這問了,去學習C++里的每一章,包括細節,然後你就會像當年的張無忌一樣,九陽神功在身,學習其它的語言(框架)都是輕而易舉的事。
C++的設計是盡量減少運行時的開銷,你不用的東西,運行的時候就不消耗你的性能。同時,C++也支持從微晶元開發到大型分散式系統的開發,所以有比較多的編程範式。在各個公司之中,通常都是用的C++的一個子集。
深入是一個相對的詞。實際上沒有比較目標的話,加這個修飾毫無意義,不同的人對深入、精通有不同的標準。比如我做了C++有20年,但是不敢說精通C++,但是簡歷里書籍里提到精通C++的到處都是。要找工作的話,做到可以審核別人的代碼,可以改,就滿足日常工作需要了。至於這需要學到哪一步,可以看看一些大公司的公開編程規範中都用到什麼C++特性,比如Google C++ Style Guide。要當公司其他程序員的C++顧問的話,可以參考怎麼樣才算是精通 C++? - vczh 的回答。
定下學習目標之後,可以參考藍色的回答看書寫代碼。國人總是喜歡糾結於語言,沒有意思。學好C++是代表什麼?你語法再熟練,演算法不好,或者類設計得不好,或者對STL不清楚,照樣寫不出好程序來。C++不需要全部去學,你只需要快速掌握自己開發所需要的語言的子集就可以。很多C++的高級語言特性不需要深究,你真正需要的,不就是C+類庫嗎?
想要深入學習C++ ,這個很多老鳥建議你去買書 ,看語法,這個基礎的東西
還是必須的,
有了一定基礎後,就要開始進行一些小項目的開發了,
但是小項目開發,面試的時候,幫不上太大的忙,你是大學生,可以考慮下找點企業級的源碼看看
開始可以先簡單的 架設起來,然後再慢慢的轉入深入研究源碼,
這裡介紹一個源碼給你 ,企業級手游源碼 ,包含android ,蘋果端,PC端
這個是網上為數不多,可以編譯的源碼,網上有很多其他亂七八糟的源碼,但是好多是不能編譯的
這個我自己編譯好了的,能架設起來,
可以前期先架設起來,先跑一段時間,然後就通過換皮膚,
慢慢深入,等你大學畢業了 ,基本也研究透了,找一份好的工作,絕對不是問題,
加油吧
推薦閱讀: