不止一個學生問到我:“老師,為什麼我們的應用程序設計要學C語言而不是別的?C語言不是已經過時了嗎?如果現在要寫一個Windows程序,用VB或Dephi開發多快呀,用C行嗎?退一萬步,為什麼選擇C而不是C++呢?”
這個問題三言兩語還真說不全。簡單來說,C語言是計算機程序語言的基礎,是實用的程序設計工具,學好C語言對你今後學習JAVA、C++、VB 等可以打下良好的基礎,因為這些語言大部分都是由C語言擴充或衍生而來的。C可以用於開發比較底層的東西,比如驅動、通信協議之類,在Unix和 Linux環境中也是不可或缺的,另外在嵌入式領域也大有作為。
站在本專業的角度看,雖然信息管理對程序設計的要求不如計算機專業那麼高,但如果你不懂得C,基本上就很難理解程序設計的思想,因為想真正學會 程序設計就不可能不跟數據結構打交道,而初學者如果直接從VB或Java入手,基本上很難理解如何構造數組、鏈表、樹、圖等結構,這些東西很容易和封裝、 繼承等概念打架。而用C語言則可以清楚明白地把它們表示出來。也只有真正理解了數據結構,才有機會體驗程序設計的思想和算法的精髓。
那麼為什麼還會有那麼多人認為C語言過時呢?原因很簡單,90%以上的中國人學的是Windows,用的是Windows,便認為非圖形即不 好。網上許多的觀點是值得懷疑的,什麼時下裡Java和C#流行啦,什麼C語言寫出的程序沒有友好的用戶接口啦等等。然而若一個問題不用圖形接口都可以解 決,那何必做得這麼復雜呢?試想,如果一條信息可以告訴你現在的時間是什麼,你又何必去翻個鬧鐘出來看看?中國人的心態總是很浮躁,什麼事都想“多快好 省”,可惜終究是“站在巨人的肩膀”上看問題,自己卻長不成巨人(似乎認為沒了微軟的開發工具,我們什麼都做不了)。
所以學C語言的必要性就很清楚了:C語言是基礎(但不是簡單的)。國外的人們拿C語言來處理現實問題,而我們現在還在用它來打磨自己的浮躁,所以我們距離國外的水平還太遠,但又不是不可企及的。
當然,如果想在Windows上開發圖形接口,用MFC或C#、Java都比C好的多。尺有所短,寸有所長。每種語言有自己適用的領域,C並不是萬能的,但想成為程序設計高手,不懂C是萬萬不能的。
至於為什麼選擇C而不是C++,那是因為我們的培養計劃無法提供足夠的學時。想學好學精C++,沒有100學時是不夠的,而我們現在選擇的C語 言都只有44課時的理論教學時間,面對如此豐富多彩的C世界,我已經頗感力有不逮,許多基本內容都得靠學生自學了,哪還能奢望C++啊?
每個程序員在他們的編程生涯中都應該學習C語言,因為它有太多難以忽視的好處了。除了它會給你提供更多的工作機會之外,C語言還會教給你更多的關於計算機的知識。它能給我們提供的裨益,,簡單列舉如下:
1.相比較其他的編程語言(像C++,JAVA),C語言是個低級語言。從總體上來說,低級的編程語言可以讓你更好的了解計算機。
2.設備驅動程序和操作系統只能用C語言來編寫。現在,你可能還從來沒有編寫過一個設備驅動程序或者一個操作系統,但是如果你需要去修改他們的時候,怎麼辦?
3.如果你想要得到一份編寫微控制器程序的工作的時候,該怎麼辦?他們都是用C語言編寫的。就因為不想學習一門新的語言,你就准備限制你能得到工作的機會嗎?
4.C的程序比其他用別的語言寫的程序,實現相同的功能,它用的代碼行數更少,而它帶來的運行效率卻更快。有時候,你的程序所需要的速度,只有C語言能做到。
5.如果你學習過C語言,你就能學習現在任何的高級編程語言。因為所有的高級語言都是以C語言為基礎的(像JAVA,C++,C#等等)。
6.因為C語言已經存在很多年了,它有廣泛的使用團體並且有大量的現成代碼可以利用。這就使你能在過去程序的基礎上,快速和高效的編寫新的算法和函數。
7.C語言是一個開源組織的語言。一個開源組織的產物--LINUX,就是用C語言寫的。如果你會C語言,你就能參加這個組織並且還能向眾多的開源組織投稿,比如參加Source Forge並且給他們投稿。
8.C語言是唯一一個向你闡述指針的本質的語言。而C#和Java干脆跳過了指針這個題目。可是指針確實使C語言變得更加強大。
9.找編程開發方面的工作時,C語言仍然是最普遍需要的語言。所以它值得你花時間去學會它。
10.任何裡面有微處理器的設備都支持C語言。從微波爐到手機,都是由C語言技術來推動的。
11.好了,說了這麼多,大家應該感到我們應該學習C語言的必要性和迫切性了吧!那就趕快學吧!讓它成為我們取得更大成功的階梯!