C++語言誕生至今已有30多個(gè)年頭了寄摆,主要集中在需要運(yùn)行效率比較高的行業(yè),比如現(xiàn)在的游戲開發(fā)以及高效服務(wù)器等等修赞。
C++學(xué)習(xí)難度比其它語言都要高婶恼,這是不可否認(rèn)的,其學(xué)習(xí)難度主要在于它的復(fù)雜性柏副,如何入門C++勾邦,想必很多人都頭疼過。講到入門割择,我們首先是掌握基礎(chǔ)語法眷篇,C++的語法是和C語言的語法很相近。
要點(diǎn)一:掌握數(shù)據(jù)類型表達(dá)式荔泳。
要點(diǎn)二:掌握數(shù)據(jù)類型蕉饼,運(yùn)算符和表達(dá)式以及控制語句的要點(diǎn)虐杯。
要點(diǎn)三:掌握函數(shù)的傳值類型以及函數(shù)返回類型。
要點(diǎn)四:學(xué)習(xí)函數(shù)的參數(shù)類型和返回值類型分別為三種昧港,引用厦幅,對(duì)象和指針三種類型。
C++是一門面向?qū)ο蟮恼Z言慨飘,其面向?qū)ο笳Z言特性:抽象确憨,封裝,繼承瓤的,多態(tài)休弃。這些特征總結(jié)對(duì)象的特性。掌握面向?qū)ο缶幊趟枷胗兄谖覀兏美斫夂途帉懢幋a圈膏。
01
語言
在掌握基礎(chǔ)知識(shí)之后塔猾,進(jìn)階開發(fā)我們不討具體技術(shù),只說我們應(yīng)該學(xué)習(xí)什么東西稽坤。
我們要成為程序猿丈甸,要學(xué)習(xí)的很雜。學(xué)語言初期要選擇好一本書尿褪,在此推薦一本《C++ Primer》睦擂,這本書很厚,內(nèi)容也很豐富杖玲,對(duì)知識(shí)的講解不僅僅停留在表面顿仇。如果這本書能有耐心看完,語言方面基本就沒有什么大問題了摆马,對(duì)以后的學(xué)習(xí)也打下了一個(gè)很好的基礎(chǔ)臼闻。小編推薦一個(gè)學(xué)C語言/C++的學(xué)習(xí)裙【 六二七,零一二囤采,四六四 】述呐,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)蕉毯!裙內(nèi)有開發(fā)工具乓搬,很多干貨和技術(shù)資料分享!
02
GUI
C++方面的GUI庫有很多種恕刘,比如MFC缤谎、WTL抒倚、wxWidgets褐着、QT。這些GUI庫都各有自己的特點(diǎn)托呕,其實(shí)我們只要先了解一種就可以了含蓉,只要深入了解了一種GUI庫频敛,需要的時(shí)候再學(xué)習(xí)其他的就夠了,本質(zhì)上都差不多馅扣,很快就可以上手了斟赚。MFC雖然設(shè)計(jì)上有很多問題,但是作為入門還是不錯(cuò)的差油,而且學(xué)習(xí)資料很多拗军,碰到問題也好解決。
03
數(shù)據(jù)結(jié)構(gòu)和算法
很多人都忽視了數(shù)據(jù)結(jié)構(gòu)和算法方面的知識(shí)蓄喇,尤其是一些編程語言的庫做得非常好发侵,幾乎不需要自己去實(shí)現(xiàn)一些數(shù)據(jù)結(jié)構(gòu)和算法,導(dǎo)致現(xiàn)在很多程序員不重視甚至忽略這方面的知識(shí)妆偏。但是刃鳄,當(dāng)我們想讓我們的程序跑的更快、內(nèi)存占用更少的時(shí)候钱骂,這些知識(shí)就非常非常重要了叔锐。很多程序員都是剛開始的時(shí)候不重視這些,但是工作幾年后又來補(bǔ)習(xí)這些知識(shí)见秽。
最開始可能不需要學(xué)習(xí)的太深入愉烙,但是基本的數(shù)據(jù)結(jié)構(gòu)和算法一定要知道。推薦《數(shù)據(jù)結(jié)構(gòu)(C語言版)》解取,在數(shù)據(jù)結(jié)構(gòu)和算法的學(xué)習(xí)中齿梁,最好不要去關(guān)心面向?qū)ο蠓矫娴募记桑陀肅語言來實(shí)現(xiàn)肮蛹,這樣能更關(guān)注于算法本身的內(nèi)容勺择。
04
數(shù)據(jù)庫
學(xué)習(xí)數(shù)據(jù)庫的基礎(chǔ)知識(shí),并且掌握一種數(shù)據(jù)庫使用伦忠,推薦使用mysql省核,而且最好不要用一些封裝好的接口,而應(yīng)該直接用mysql提供的數(shù)據(jù)庫api昆码,可能對(duì)數(shù)據(jù)庫了解的會(huì)更深入气忠。
05
并行
cpu主頻已經(jīng)不能遵循摩爾定律了,現(xiàn)在cpu發(fā)展的趨勢(shì)是多核心赋咽。無論是多線程旧噪,還是多進(jìn)程,都是為了更好的利用cpu的性能脓匿,提供更好的用戶體驗(yàn)淘钟。這就要求我們?nèi)绻獙懗龈咝У膽?yīng)用程序,必然要涉及到并行計(jì)算陪毡。多花些精力在并行計(jì)算上吧米母,一定會(huì)有豐富的回報(bào)勾扭。
06
網(wǎng)絡(luò)編程
這里所指的網(wǎng)絡(luò)編程是指socket編程。現(xiàn)在C++的應(yīng)用很多都是在做服務(wù)器開發(fā)铁瞒,如何開發(fā)一個(gè)高并發(fā)妙色、大吞吐量、高穩(wěn)定性的服務(wù)器就是我們要考慮的了慧耍。
07
設(shè)計(jì)模式
設(shè)計(jì)模式不是具體的技術(shù)身辨,更多的是如何讓代碼更容易閱讀、更好擴(kuò)展芍碧、更容易使用栅表。
08
庫的使用
C++標(biāo)準(zhǔn)庫僅僅提供了一些很基本的功能,所以我們經(jīng)常會(huì)引入一些第三方庫师枣。最著名的恐怕就是被稱為準(zhǔn)標(biāo)準(zhǔn)庫的boost庫怪瓶,它提供了我們編程中用到的各方面的技術(shù),文本處理践美、算法洗贰、網(wǎng)絡(luò)、多線程陨倡、圖像處理等等敛滋,幾乎無所不包。其它也有一些專著于某一方面的庫兴革,比如ACE是網(wǎng)絡(luò)通信方面的绎晃,TinyXML是解析xml的,OGRE是圖形渲染方面的杂曲。
09
操作系統(tǒng)的知識(shí)
程序員需要了解的操作系統(tǒng)知識(shí)和普通用戶是不一樣的庶艾,一個(gè)高手是需要深入了解操作系統(tǒng)的方方面面,而不是停留在使用層面擎勘。至于應(yīng)該了解哪些知識(shí)咱揍,windows上的去看《windows核心編程》,linux的去看《深入理解linux內(nèi)核》棚饵,應(yīng)該可以知道自己應(yīng)該學(xué)什么了煤裙。