學完?那是什么程度?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人才的話都是要精通的,如果你只會拖拖控件什么的,公司不會要的。