1. 程式人生 > >學完C++基礎後再學什麼?

學完C++基礎後再學什麼?

學完?那是什麼程度?STL用得熟練嗎?演算法和資料結構掌握得怎麼樣呢?會寫介面嗎?BOOST呢? 像樓上所說的換一種語言,簡直是痴人說夢,如果不深入一門語言,誇張一點說,就好比你會用很多程式語言寫“Hello,World!”一樣,有什麼用呢? C++的水很深的,基本上,在所有的程式語言中,C++可以說是最複雜的一種。

我覺得C++深入了研究才有意思,如果急著寫介面什麼的,用VB或者C#最好,這兩個都是直接拖控制元件的。如果你想換,我推薦C#,一方面比較容易從C++過度,另一方面,也是微軟強推的語言,有前景,你如果想在.NET這個平臺上混,那還是C#比較好。因為C++標準委員會的限制,微軟的重點早已經不在C++上了。

你說學完C++,又說是新人,我不太明白你到底是什麼程度。一般而言,按照下面的次序學習,你對照著看看你現在是到了哪個階段吧:

一.C++基礎:   一般你學完一本入門書的程度,比如《C++ Primer》的第四版,《C++大學教程》、《C++程式設計原理與實踐》等等,當然,只要一本入門就行,國內的不算,基本上,國內的書一方面不標準,另一方面,示例什麼的,往往有一些惡劣C語言風格,具體很複雜,你看完一本國外的就明白了。如果你是用譚浩強之流的入門,還是建議重新換一本。   我重點推薦《C++程式設計原理與實踐》這本書吧,因為是C++之父Bjarne的新作,專門針對入門者的,而且裡面也涉及到了windows圖形介面的編寫(Bj的設定,就是不會只對你講容易理解的,而是對你講最使用的)。不過,這本書的中文版翻譯得不太好,建議如果用這本書,看英文的。

二.C++語言特性:   對C++語言細節不用全求甚解,但至少要知道一些。   《effectiveC++》《exception C++》《more effective C++》《more exception C++》這四本你至少看掉兩本吧)

三.C++資料結構和STL:   這兩部分學掉,基本上,開發兩個小專案,去公司應聘沒什麼問題了。STL就一本《STL標準程式庫》,資料結構就很多了,你隨便找一本,用C++都實現一遍就行。   到這時候,你可以同時去繼續深究C++,或者去研究Windows程式設計了,MFC走下坡路,怎麼說呢?至少微軟並沒有放棄MFC,一直在做改進——看看Foxpro,那才叫放棄。當然了,你也不必苦學MFC,框架知識搞懂了,再知道一些常用的就可以。   如果你繼續深究C++,那就把STL的原始碼看看,研究研究BOOST,看看他的原始碼(那叫一個神奇啊!)。   下面不講深究C++的問題,從實用性的角度,還是說一下其他發展方向吧。

四、發展方向:   這個方向就多了,看你要向什麼方向發展,如果你度過了前面的階段,基礎就已經很紮實了,下面的方向,你可以自己選。   1.Windows系統程式設計,那Windows系統機制和MFC都是必學的。其實這個也算是基礎,你學好了,其他的系統程式設計,原理也相通。   2.移動裝置程式設計,現在主要是MacOS、android和windows phone,這幾個吧,諾基亞動盪大,symbian大家都在觀望。   3.資料庫程式設計,你要再去學資料庫原理和知識,SQL語言有標準,大部分資料庫在一定程度上相通,你學好一個吧。   4.網路程式設計,主要是伺服器方向吧,那可能是學LINUX系統了,和資料庫有一定相通。   5.網頁程式設計、嵌入式系統開發,這兩個相對而言不太適合C++,不過你如果真的基礎紮實,估計最多一個月,也就能學完一套適合的程式語言了(JAVA、C語言、指令碼語言……這時候,你已經對C++有一定火候了,才應該去學習其他語言。),畢竟原理相通麼。

五,關於JAVA和C#:   JAVA入門比C#難,但是因為有入門的基礎,後面學起來相對C#容易一點點,然而做JAVA的人很多,高工資很難。   C#入門容易精通難(只和JAVA比,不和C++比),而且也有前景。但公司招.NET人才的話都是要精通的,如果你只會拖拖控制元件什麼的,公司不會要的。