零基礎(chǔ)學c++怎么樣
時間:2019-08-26 00:00:00
來源:信盈達
作者:信盈達
想必大家學C的時候陷入過迷茫,也走過一些彎路,那時候?qū)W不會直接記憶代碼之類的事情估計有不少人都干過,希望我的分享這些經(jīng)驗可以對你有所幫助。
首先是一本好的C++書籍(Accelerated C++, C++ Primer),然后以及盡量多的完成書籍的習題,可以幫助完成C++語法的學習。雖然前面的書籍涵蓋了標準庫,但是不夠完善,這個時候你可以選擇在線查閱C++標準庫這種泛型的學習方式,也可以選擇閱讀《C++標準庫》的方式進行學習。通過這樣的步驟,你應(yīng)該可以完成C++的初步學習了。
然后,由于
C++是一門系統(tǒng)級語言,我想你需要到大三學習操作系統(tǒng)的時候,才會明白棧與堆、內(nèi)存管理等更深層次的含義。但是,在明白這些概念之前不會妨礙你利用C++做一些事情,比如寫一個簡單的XML Parser。這個時候,你應(yīng)該會發(fā)現(xiàn)很多問題,如效率,代碼規(guī)范等,這個時候,你可以研究Effective C++,Google C++ Code Standard等,只有自己犯了錯,回過頭反省才會更加深刻。
隨后,你可以更加深刻的去思考C++,你需要閱讀《The Design and Evolution of C++》。這本書的閱讀,會教會你很多,是對你影響最大的C++書籍。如果你對C++編譯器的一些細節(jié)有興趣,深入C++對象模型可以推薦。如果你對STL的一些實現(xiàn)有興趣,可以去翻翻STL源代碼(很多人推薦STL源碼剖析,但是我沒有閱讀過,我沒有辦法發(fā)表是否應(yīng)該推薦的觀點,列出來供你自行判斷是否應(yīng)該閱讀)。
到這一步驟,我想你應(yīng)該可以稱為C++ Programmer了,剩下的就是實踐中發(fā)現(xiàn)問題,然后補足自己。
此外,由于C++博大精深,應(yīng)用的范圍多如牛毛,特定方向所需要的知識未列舉。比如你要研究Android的NDK什么的,那就是屬于你后面的事情了。
至于這樣學習的C++夠不夠,我想我按照這樣的路線學習,可以做到我有能力去IBM寫C++編譯器,那么我想對于就單純題主所提的C++語言方面來說應(yīng)該已經(jīng)足夠了。誠然,計算機的世界不僅計算機編程語言,與之相關(guān)的還有操作系統(tǒng)、數(shù)據(jù)結(jié)構(gòu)、編譯原理、計算機網(wǎng)絡(luò)等知識。