目前被程序員廣泛使用的編程語言,大都有自己擅長的方向,例如:
Java由于其強大豐富的庫,可以用來開發(fā)網(wǎng)站、Android App和企業(yè)級應(yīng)用軟件;C#是微軟推出的用于對抗Java的編程語言,主要用于Windows開發(fā)和網(wǎng)站開發(fā);
PHP、JavaScript 都是用來開發(fā)網(wǎng)站的;
Objective-C、Swift只能用于Mac OS X和iOS系統(tǒng)的開發(fā);
Google 推出的 GoLang 主要用來替代 C/C++,用于服務(wù)器底層開發(fā)。
但是,像C語言、C++、Python等都是通用性的編程語言,它們不針對某一個特定的方向,能做的事情很多。C語言主要用于底層開發(fā),例如:
Windows、Linux、Unix 等操作系統(tǒng)的內(nèi)核90%以上都使用C語言開發(fā);
開發(fā)硬件驅(qū)動,讓硬件和操作系統(tǒng)連接起來,這樣用戶才能使用硬件、程序員才能控制硬件;
單片機和嵌入式屬于軟硬件的結(jié)合,有很多使用C語言的地方;
開發(fā)系統(tǒng)組件或服務(wù),用于支撐上層應(yīng)用;
編寫PHP擴展,增強PHP的功能;
如果對軟件某個模塊(例如算法和搜索部分)的效率要求較高,也可以使用C語言來開發(fā)。
既然C語言能做這么多事情,為什么很多初學(xué)者學(xué)完C語言以后仍然非常迷茫,只能編寫沒有界面的控制臺程序呢?
這是因為,C語言僅僅是一個工具,它的標(biāo)準(zhǔn)庫也很簡單,只提供了基本的功能,如果希望開發(fā)出實用的程序,往往還需要學(xué)習(xí)其他方面的知識。例如:
開發(fā)硬件驅(qū)動要學(xué)習(xí)數(shù)字電路,了解 Windows 或 Linux 內(nèi)核,閱讀硬件廠商的接口說明書;
從事嵌入式開發(fā)要學(xué)習(xí)數(shù)字電路、模擬電路、ARM、Linux、Qt等;
開發(fā)PC軟件要學(xué)習(xí)Windows編程,了解 GTK。
可以這么說,如果只會C語言,基本上是找不到工作的,讀者要選定一個方向,繼續(xù)學(xué)習(xí)其他知識。后面你會發(fā)現(xiàn),C語言不過是冰山一角,是一項基本技能而已,程序員要學(xué)習(xí)的東西還很多。
《C和C++到底有什么關(guān)系》一節(jié)中講到,C++是C語言的拓展和升級,極大提高了程序員的開發(fā)效率。和C語言類似,C++也是一門通用性的語言,主要用于PC軟件開發(fā)、服務(wù)器底層開發(fā)、游戲開發(fā)等。
C++和C語言之間有著非常模糊的界限,很少有只會C語言的程序員,往往還需要掌握C++,以提高開發(fā)效率。
另外,學(xué)習(xí)C語言并不一定要從事與C語言有關(guān)的開發(fā)工作。C語言是一門簡單、底層、較早的編程語言,后來的很多語言在語法上都和C語言類似,稱為“類C語言”,例如 Java、C++、C#、PHP、JavaScript 等,學(xué)完C語言再學(xué)這些語言都很容易上手。
并且,C語言能夠讓你更加深刻的認識內(nèi)存和編譯原理,了解程序的每一個細節(jié),夯實基本功,站得“低”才能望的遠,所以的程序員都會學(xué)習(xí)C語言。