C語言是在70年代初問世的。一九七八年由美國電話電報公司(AT&T)貝爾實驗室正式發表了C語言。同時由B.W.Kernighan和D.M.Ritchit合著了著名的“THE C PROGRAMMING LANGUAGE”一書。通常簡稱為《K&R》,也有人稱之為《K&R》標準。但是,在《K&R》中并沒有定義一個完整的標準C語言,后來由美國國家標準學會在此基礎上制定了一個C 語言標準,于一九八三年發表。通常稱之為ANSI C。
從學習C++到現在已經有四個年頭了,但是從來沒有很深入學習,有人說C++是面向對象的編程語言,但是我在這里想說的是,C++是一個多泛型的編程語言,它既可以面向過程,比如我們完全可以用C++寫C的代碼,這是沒問題的,它也是一個面向對象的語言,它具有面向對象的特征,可以模擬現實世界中的各種事物;它也是一個泛型編程語言,里面包含大量的模板特性,比如C++的標準庫STL就是基于模板的一個庫,C++語言的難學也就是因為它的功能十分強大。
C++初學者一般可以按照下列的順序進行學習:
剛開始接觸C++時,如果是學校開了C++課程的話那就更好了,可以跟著老師的進度學習,在課余時間可以多做一些習題或上機練習。如果你是完全自學,你可以找一本面向大學生的教材(譚浩強的教材比較適合入門)。掌握了一些基本的C++概念了,那就開始學習面向對象的部分了,這部分內容比較多,初學者理解起來也會感覺比較吃力,建議多上機練習。在基本了解了C++的面向對象之后,可以開始學習模板庫,比如STL,因為STL在我們的軟件開發中非常重要,甚至有些招聘都要求會STL,(STL:標準模板庫),這里面包含了大量的數據結構和算法的實現,有些可以直接拿來用,但是如果你對數據結構有特殊需求,那么你就要自己去實現這些數據結構。
如果你已經進入了C++的世界,那么你就可以進階學習了,學習了這些你或許感覺有疑惑,為什么我不能開發出一個帶界面的程序呢,呵呵,如果你又這樣的需求,那么你可以學習一些界面庫,比如QT,MF等,這兩個是比較常用的,QT入門稍微容易些,但是往后深入會比較困難,MFC入門起來會麻煩一點,有很多人也就是因此而放棄,但是甜頭在后面,只要入門了后面的路將會是一馬平川,障礙比較少。
庫,在c++的世界里具有很高的位置,你如果對某一領域感興趣,你就需要去了解和學習相關的庫,比如三維圖形庫OPENGL,網絡通信庫ACE等等,這些庫基本是都是標準C++寫成的,一般都是跨平臺的。也許有很多會有疑問,我學習了C++以后能做什么樣的軟件開發工作?目前C++軟件開發主要集中在以下領域:
1、服務器端開發:很多游戲或者互聯網公司的后臺服務器程序都是基于C++開發的,而且大部分是linux,unix等類似操作系統,所以說,你如果想做這樣的工作,你需要熟悉linux操作系統及其在上面的開發,熟悉數據庫開發,精通網絡編程。
2、游戲:目前很多游戲客戶端都是基于C++開發的,除了一些網頁游戲可能不是,這個領域需要學習的東西就比較多,個人不太了解就不多說。
3 、虛擬現實仿真:這個也是發展很快的計算機領域,目前各種數字地球,數字城市,虛擬地理環境什么的,出現了這方面的大量應用,不過也不限于這些方面,比如科學計算可視化也是其中一個方向。這個方向重點需要學習的是圖形學。
4 、數字圖像處理:現在市面上有很多VC++圖像處理的書籍,可見在這個領域的應用軟件開發也是占了很大比重,需要深入學習數字圖像處理和模式識別等課程。
呵呵,說到這里都感覺好像跑題了,都沒看到具體什么學習路線啊,就當是自己的學習感言吧,有什么不對的,也歡迎大家討論。