當前位置:名人名言大全網 - 笑話故事 - 為什麽要學習C語言

為什麽要學習C語言

1.簡約

雖說用好c語言很難,但是對於c語言的入門是很容易的,用壹句話來形容c語言,我覺得是易於上手,難於精通,C語言在語法上的使用很簡單,因為它不是很高級,也不是很龐大,在第二版(K&R)中,它的參考手冊僅僅用了49頁就描述了整個C語言,沒有叠代器,沒有裝箱....C語言的這種“低級”讓我們在學習時會把重點放在自己控制上,所以什麽都會選擇自己動手,而在用java或python時,我的第壹感覺,往往是,“嗯,我有哪些工具可以使用?”太多的工具選擇,有時候是件壞事,因為沒了許多鍛煉的機會,而且很難抓住重點,有的時候什麽都沒有反而是件好事。<!--more--

2,原理

操作系統是壹個程序員應該學好的壹門課,但是我們在學習的那些操作系統概念很難深入理解,或者比較抽象,比如餓死哲學家之類的,僅僅知道概念,是不能解決實際問題的,比如,妳可能學過壹些進程的概念,或者內存分段之類的,那我問妳,windows進程問什麽沒有僵死?在windows中如何修改壹個進程中的數據?Linux的fork和Windows的createProcess有什麽不同?linux有線程嗎?妳寫壹個我看!妳的理論不管用了,因為妳沒有實踐過.所以,我覺得學習操作系統最好的方式就是用c語言進行系統調用,這種方式在unix和linux下能獲得更好的學習方式,因為win32-sdk不適合學習,更適合開發,在unix下,妳能用妳的操作系統知識與fork(),exe(),wait()等系統調用很好的結合.

而且不僅僅是操作系統妳,在學習c語言的時候,妳不得不接觸壹些系統結構的知識,比如字節對齊,比如c語言的地址空間,妳就會知道堆棧這種東西,如果不是遞歸,是可以沒有的.妳就會知道虛擬地址到實際地址的轉換.這些在java和c#中變得透明,但是透明是為了方便開發,透明對壹個學習者是有害的,想象今後的雲計算,將會是怎樣的開發?它將培養更多的碼農。

3,數據結構與算法

用C語言來學習數據結構和算法在合適不過了,用指針去寫吧,用Java和c#下的學習更像是會用。妳可能會說C++更好,但是妳的類(變量+函數)本質跟c語言中的結構體+函數,沒有區別,除非妳用模板,多態,重載,我才承認妳在用c++,但是妳的重點篇了,我們不是在討論學習數據結構與算法嗎?妳現在是在學習語言特性了。

4,更好的過渡

本文所寫的是為什麽學習C語言,作為壹個學生,我覺得說什麽C語言開發更高效,就是個笑話,因為,談到開發,又開始談金錢,時間,壹大堆的東西,妳會問,為什麽不是java或python?開發是開發的事,妳學的紮實還不會開發?我只是說c語言的路線更適合學習,妳又會問錢都掙不上學什麽?我記得有壹次壹個來做java培訓的人說,“我們培訓java,妳們把自己做成壹個商品,推銷出去。”。我覺得很可笑,我們要做的不是商品,最起碼是壹支股票。所以害怕學的東西找不到工作的人,用壹切時間來猶豫徘徊。