1. 程式人生 > >牛人十個月自學C++ 現在做C#開發工作

牛人十個月自學C++ 現在做C#開發工作

我從去年11月份開始自學C++(本人現在做C#開發),現在把我這10來個月學習體會寫出來和大家分享。

  1。關於要不要學習C++?(結論:要學,一定要學!)

  如今在網上很多為要不要學C++爭的不可開交,因為現在JAVA,C#,。NET都炒的很火,特別是JAVA,大有炸平廬山,停止地球轉動之勢。用林銳同志的話說,其實JAVA只是C++外甥,跑到舅舅身上撒了一泡尿而已。首先,我們從JAVA 的來歷上來說,JAVA的設計初衷是用來給家用電器設計程式使用的,最初設計者想用C++,但覺得C++太複雜,就在C++的基礎上做了一些簡化,設計出了JAVA,它的設計思想是跨平臺,所以必須先在執行平臺上安裝虛擬機器,然後把源程式編譯成中間語言在執行。這是一個優點,但我們說任意優點都是建立在缺點上的,JAVA的缺點就是執行速度慢,這對於某些系統來說是致命弱點。況且,JAVA中沒有指標,對於製作系統軟體來說,這更是無法饒恕的。再來看C++。C++產生於美國貝爾實驗室,就是發明電話那個公司。設計初衷是用來改進C的開發效率,C是面向過程的語言,開發效率底,貝爾實驗室有大量的C程式設計師,所以只要在開發效率上提高一點點,就可以節約數目龐大的成本。C是什麼東西?是用來代替彙編編寫作業系統的語言,用C++代替C,可以得出兩個結論:第一,C++必須具有同C相當的執行速度;第二,C++必須比C具有較高的開發效率。執行速度方面,C++的設計者的思想就是在改進開發效率的同時儘量不增加C++的系統開銷,當然有些地方非增加開銷不可,也把開銷控制在最小程度內。具非權威研究報告,C++比C的執行開銷多出不到10%。開發效率方面,C++引進了面向物件機制,庫機制,最大程度上實現了程式碼重用,這是軟體開發人員的福音。C++在改進C的開發效率的同時,對C的缺陷做了一些修補。C的優點在C++中都得到了很好的保留,C的缺點在C++中都有了改進,有了更好的解決辦法。而且,為了現有的大量C程式維護,C++還全面相容了C。縱觀當今程式語言家族,我覺得只有C可以C++相提並論,門當戶對,其它語言都無法和C++相提並論。無論從什麼角度來說,C++都算的上語言中的老大。

  如今,網上有很多關於C++的爭論,其實爭論的人都是一些不知情的人,絕大多數是學校裡的學生,我也曾經這樣。在學校裡的時候,不知道究竟應該學習什麼,要是遇到好的老師還可以,遇到垃圾老師,垃圾學校那就更糟糕。如今,什麼MCSE,CCNA,CIW等等認證漫天飛,把人搞的昏頭昏腦,其實這都是認證公司炒的。社會上需要的是有真才實學的人,而不是需要證書。

  我從大二開始學習程式設計,一開始學習VB,後來學習DELPHI,再後來學習C#,再後來學習C++,繞了個大圈子,最後還是繞回來了。而且重新學習資料結構,作業系統,學習軟體工程,學習大學本科的基本課程,重新讀外國的程式設計名著,而這些以前在大學是不屑一顧的。勸如今還在學校的師弟師妹們,努力學習C++。

  2。為什麼要學習學習C++

  1)C++的程式設計師身價普遍較高,當然,前提是你必須是高手。我所在的城市,那些公司根本就招不到合格的C++程式設計師,一方面C++程式設計師要求高,學習C++的人越來越少了。當然,懷著這個目的,你或許永遠無法成為C++高手,但我把這個原因放在最前面,可以給大家一個很明確的激勵,當你接觸C++後,發現從學習中獲得樂趣比高的工資更有動力;

  2)C++的優勢是用來開發大型軟體,從中可以學到很多優秀的軟體設計思想。C++不是軟體開發的首選工具,一般說來,大多人更願意學習和使用VB,為什麼,簡單。簡單的另一個方面是功能的侷限。微軟公司恨不的所有人都學VB,只有他一家會C++。容易上手,大家都喜歡學,喜歡用,很多人拿一本200頁的書,看個兩三個星期,就覺得自己是個程式設計師了,可以開發軟體了,而且覺得做出來的東西很不錯。當軟體規模大到一定程度的時候,其他語言就越來越無法駕馭,這時C++的優勢就體現出來了。你說做個成績管理系統,人事查詢系統,用VB,DELPHI,C#,JAVA都行,但是例如銀行,電信,保險,作業系統,資料倉庫,圖形處理,編譯系統,較底層的軟體時,其他工具幾乎是無法完成的。就說C++的指標,JAVA沒有,在遇到資料量交大的資料排序,搜尋,動態記憶體分配時,它就沒有辦法了。所以說,學習C++,不僅僅是學到的一種語言,還學習了優秀的軟體設計思想。

  3)學習C++可以學習到計算機底層的理論,即使不是用C++開發,對計算機執行機制的理解,對建制穩定的系統,對運用其他語言,也是一種促進。這一點,我是在學習過程中體會到的,所以,要說出個大家可以接受的理由來較難,大家以後學習就知道了。

  3。怎樣學習C++?

  首先,我們必須承認,學習要講究方法,有捷徑。其次,我們還得承認,學習要下苦功,要務實。上小學的時候,書上有個故事,是關於王羲之學習書法的:王獻之問他父親王羲之,學習書法的祕訣是什麼,他父親把他帶到後院,指著18口大水缸說,你如果把這裡的水都寫完了,就知道書法的祕訣在那裡了。這個故事相信很多人都還記得。前幾天看樑肇新(豪傑公司老闆)的《高手箴言》,他說如果你如果願意利用5年時間來成為高手,那麼你只要兩三年就會成為高手,如果你想一年成為高手,那麼你5年也成不了高手。學習要切忌浮躁,要腳踏實地。我曾經很浮躁,結果一直呆在菜鳥堆裡,當半年前我靜下心來學習C++,才感覺有真正的進步。現在做WEB開發,雖然我從來不看WEB開發的書,但是我的同事遇到問題時,我經常能一下說出問題的所在。因為你看問題的角度變了。所以,學習C++的第一個方法是:切忌浮躁。其實學任何東西都一樣,欲速則不達。從基本資料型別看起,從基本流程控制語句寫起。

  其次,教材很重要,要看經典名著