學了 C 語言到底能做什么, 能從事什么工作?


前言

經常有小伙伴問我,你是做C/C++的,那學C語言可以做什么呢?尤其是還在學校的同學,感覺自己學了很久,什么也做不了,一度懷疑自己是不是不適合程序員這個方向。

開始我都是直接說可以開發嵌入式啊,做操作系統啊,開發數據庫啊等等,說到這,其實大家就應該明白了,C語言是接近底層的,他的很多應用都是處在摸不着看不見的后台,這對於初學編程的同學確實太不友好了,大家都喜歡所見即所得的效果,要不python怎么這么火呢!

但是,作為編程排行榜經典不衰的語言,我還是想好好說下,到底學C語言可以做什么?

有數據為證

還是采用我喜歡的類比學編程的方法,這個也是學編程很好的方法之一,觸類旁通的道理。

在計算機高速發展的最近幾十年中,出現了上百種編程語言,有的編程語言是針對某個領域專門設計的,例如:

PHP是在服務器端執行的腳本語言,與C語言類似,是常用的網站編程語言。

JavaScript一種直譯式腳本語言,是一種動態類型、弱類型、基於原型的語言,內置支持類型。它的解釋器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用於客戶端的腳本語言,最早是在HTML(標准通用標記語言下的一個應用)網頁上使用,用來給HTML網頁增加動態功能。​

Objective-C 只能用於蘋果產品的開發,包括 iPhone、iPad、Mac、MacBook 等,Swift 改進了Objective-C,是一種新的編程語言,用於編寫 iOS 和 OS X 應用。

Visual Basic(簡稱VB)是Microsoft公司開發的一種通用的基於對象的程序設計語言,為結構化的、模塊化的、面向對象的、包含協助開發環境的事件驅動為機制的可視化程序設計語言。是一種可用於微軟自家產品開發的語言。
在這里插入圖片描述
而大部分的編程語言不是針對某個特定領域設計的,它們能做很多事情,比較通用化。但是在長期的實踐過程中,這些編程語言也找到了適合自己的位置,例如:

Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。Java 可以用於網站后台開發、Android 開發、PC軟件開發,在大數據領域也有應用;

Python是一種計算機程序設計語言。是一種面向對象的動態類型語言,最初被設計用於編寫自動化腳本(shell),隨着版本的不斷更新和語言新功能的添加,越來越多被用於獨立的、大型項目的開發。主要用於系統運維、網站后台開發、數據分析、人工智能、雲計算等領域;

Go(又稱 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開發的一種靜態強類型、編譯型語言。Go 語言語法與 C 相近。Go語言除了用於服務器、通訊等較底層的開發,還能用於網站后台開發。

C語言也是一門通用性的語言,歷史很悠久,就目前而言,C語言主要用於較底層的開發。
在這里插入圖片描述
除了Windows、Linux、Mac、Unix等大型操作系統,還有freertos,ucos等嵌入式系統等操作系統的內核都使用C語言開發;

開發硬件驅動,這部分也是C語言的強項,當然也有很多C語言的就業機會;

單片機和嵌入式屬於軟硬件的結合,有很多使用C語言的地方;

開發系統組件或服務,用於支撐上層應用;

開發lua腳本,可以做到無縫銜接。

很多高級語言使用的庫,底層也是C語言編寫的,主要是考慮運行效率的部分。

當然,C語言也能用於PC軟件開發,做出類似 QQ、迅雷、Chrome 等帶界面的程序,但是由於C語言開發效率低,第三方庫較少,實際項目中已經沒有程序員這么做了,大家已經轉向了 C++。

初學者的疑問

既然C語言能做這么多事情,為什么很多初學者學完C語言以后仍然非常迷茫,只能編寫沒有界面的控制台程序呢?
在這里插入圖片描述
這是因為,C語言僅僅是一個工具,它的標准庫也很簡單,只提供了最基本的功能,如果希望開發出實用的程序,往往還需要學習其他方面的知識。例如:

開發硬件驅動要學習數字電路,了解 Windows 或 Linux 內核,閱讀硬件廠商的接口說明書;

從事嵌入式開發要學習數字電路、模擬電路、ARM、Linux、Qt等;

開發PC軟件要學習Windows編程,了解 GTK。

可以這么說,如果只會C語言,基本上是找不到工作的,讀者要選定一個方向,繼續學習其他知識。后面你會發現,C語言不過是冰山一角,是一項基本技能而已,程序員要學習的東西還很多。

另外,學習C語言並不一定要從事與C語言有關的開發工作。C語言是一門簡單、底層、較早的編程語言,后來的很多語言在語法上都和C語言類似,稱為“類C語言”,例如 Java、C++、C#、PHP、JavaScript 等,學完C語言再學這些語言都很容易上手。

並且,C語言能夠讓你更加深刻的認識內存和編譯原理,了解程序的每一個細節,夯實基本功,站得“低”才能望的遠,所以優秀的程序員都會學習C語言。


在這里插入圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM