C++基礎入門學什麼?後期開發學什麼?

摘要

C++語言誕生至今已有30多個年頭了,主要集中在需要運行效率比較高的行業,比如現在的遊戲開發以及高效服務器等等。

C++學習難度比其它語言都要高,這是不可否認的,其學習難度主要在於它的複雜性,如何入門C++,想必很多人都頭疼過。講到入門,我們首先是掌握基礎語法,C++的語法是和C語言的語法很相近。

要點一:掌握數據類型表達式。
要點二:掌握數據類型,運算符和表達式以及控制語句的要點。
要點三:掌握函數的傳值類型以及函數返回類型。
要點四:學習函數的參數類型和返回值類型分別爲三種,引用,對象和指針三種類型。

【文章福利】:小編推薦一個C語言/C++交流羣:967051845!整理了一些個人覺得比較好的學習書籍、視頻資料共享在羣文件裏面,有需要的可以自行添加~

C++是一門面向對象的語言,其面嚮對象語言特性:抽象,封裝,繼承,多態。這些特徵總結對象的特性。掌握面向對象編程思想有助於我們更好理解和編寫編碼。

01 語言

在掌握基礎知識之後,進階開發我們不討具體技術,只說我們應該學習什麼東西。

我們要成爲程序猿,要學習的很雜。學語言初期要選擇好一本書,在此推薦一本《C++ Primer》,這本書很厚,內容也很豐富,對知識的講解不僅僅停留在表面。如果這本書能有耐心看完,語言方面基本就沒有什麼大問題了,對以後的學習也打下了一個很好的基礎。

02 GUI

C++方面的GUI庫有很多種,比如MFC、WTL、wxWidgets、QT。這些GUI庫都各有自己的特點,其實我們只要先了解一種就可以了,只要深入瞭解了一種GUI庫,需要的時候再學習其他的就夠了,本質上都差不多,很快就可以上手了。MFC雖然設計上有很多問題,但是作爲入門還是不錯的,而且學習資料很多,碰到問題也好解決。

03 數據結構和算法

很多人都忽視了數據結構和算法方面的知識,尤其是一些編程語言的庫做得非常好,幾乎不需要自己去實現一些數據結構和算法,導致現在很多程序員不重視甚至忽略這方面的知識。但是,當我們想讓我們的程序跑的更快、內存佔用更少的時候,這些知識就非常非常重要了。很多程序員都是剛開始的時候不重視這些,但是工作幾年後又來補習這些知識。

最開始可能不需要學習的太深入,但是基本的數據結構和算法一定要知道。推薦《數據結構(C語言版)》,在數據結構和算法的學習中,最好不要去關心面向對象方面的技巧,就用C語言來實現,這樣能更關注於算法本身的內容。

04 數據庫

學習數據庫的基礎知識,並且掌握一種數據庫使用,推薦使用mysql,而且最好不要用一些封裝好的接口,而應該直接用mysql提供的數據庫api,可能對數據庫瞭解的會更深入。

05 並行

cpu主頻已經不能遵循摩爾定律了,現在cpu發展的趨勢是多核心。無論是多線程,還是多進程,都是爲了更好的利用cpu的性能,提供更好的用戶體驗。這就要求我們如果要寫出高效的應用程序,必然要涉及到並行計算。多花些精力在並行計算上吧,一定會有豐富的回報。

06 網絡編程

這裏所指的網絡編程是指socket編程。現在C++的應用很多都是在做服務器開發,如何開發一個高併發、大吞吐量、高穩定性的服務器就是我們要考慮的了。

07 設計模式

設計模式不是具體的技術,更多的是如何讓代碼更容易閱讀、更好擴展、更容易使用。

08 庫的使用

C++標準庫僅僅提供了一些很基本的功能,所以我們經常會引入一些第三方庫。最著名的恐怕就是被稱爲準標準庫的boost庫,它提供了我們編程中用到的各方面的技術,文本處理、算法、網絡、多線程、圖像處理等等,幾乎無所不包。其它也有一些專著於某一方面的庫,比如ACE是網絡通信方面的,TinyXML是解析xml的,OGRE是圖形渲染方面的。

09 操作系統的知識

程序員需要了解的操作系統知識和普通用戶是不一樣的,一個高手是需要深入瞭解操作系統的方方面面,而不是停留在使用層面。至於應該瞭解哪些知識,windows上的去看《windows核心編程》,linux的去看《深入理解linux內核》,應該可以知道自己應該學什麼了。

總結:

整個學習週期六到八個月!看個人的學習以及找資料渠道效率吧!學習過程很“痛苦”,但是結果大家一定會對自己很滿意!

最後,如果覺得學習資料難找的話,可以添加小編的C語言/C++交流羣:967051845! 學習資料已經共享在羣裏了,期待你的加入~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章