1. 程式人生 > >C語言學習—給學習C語言初學者的建議

C語言學習—給學習C語言初學者的建議

C語言是一門“古老”而又很有前途的計算機程式語言。

近十年來,它在程式語言排行榜(TIOBE)穩居前三。因此,C語言絕對是值得初學者學習的一門語言。筆者從事C語言教學十多年的經驗來看,有以下一些建議可供C語言初學者參考與借鑑。

(1)保持好奇心

這是一個現實的問題,如果你是非計算機專業的大學生,大部分人對C語言是恐懼的,因為(掛科率高)你懂得……。而如果你是小學生或初中生,倒也不用擔心,因為你們的勇氣和好奇心都比大學生強大很多。當然,無論是誰,保持好奇心是你學習不斷前進的永恆動力。

2)掌握有效的學習方法

C語言是一門公認的不易入門的語言(否則也不會那麼多大學生“慘叫”了^_^),因為涉及的內容比較多( 特別是語法繁多 )。從這麼多年的教學實踐來看,傳統教學和學習存在一些問題。

千萬不要一看到英文就頭大,儘管我也是這樣,並不是看不懂(畢竟也接受過CET4、6級啞巴英語的教育,還是能看懂的)。man的幫助是最好的教材並且很多國外的論壇對技術的描述是很清楚的,也是很簡單的,更重要的是,你會在上面看到些在國內論壇上看不到的東西(計算機的技術一直都是由西方向東方傳遞,希望有朝一日老外都到我們中國的論壇上來尋找技術資料)。

如果你想學習C/C語言可以來這個群,首先是330,中間是859,最後是766,裡面可以學習和交流,也有資料可以下載。

目前,我們高校也在進行C語言教學方式的改革,概括起來幾個階段:

(a) 理解和體驗階段

閱讀和理解現有的程式,一般是教材資料的程式,每個程式都必須親手打一遍。在輸入程式碼的同時,一定要了解每一個語句的意義和運算子號的意義。

(b) 修改階段:

完成了第一階段的學習後(一般2-4節課),開始根據給定的原始碼進行簡單的修改,這個階段可以實現一點點自己的想法,同時也能將相關的語法掌握的更加熟練。

(c) 模仿階段:

當我們可以進行簡單修改程式碼後,可以嘗試模仿現有程式的程式碼,編寫自己的程式碼,比如,我們學會了求解梯形面積的程式後,我們可以編寫求解三角形的面積。

此時的模仿,不僅僅是模仿程式碼結構,還需要模仿問題的分析方法,有數學問題,也有實際生活問題,這也是初步培養邏輯思維和計算思維的過程。

(d) 獨立閱讀程式碼階段

在編寫程式之前,閱讀現有的程式,可以提高程式的理解能力,學會其他人編寫程式的思想,也可以是同學的程式,找出同學程式的錯誤或不同寫法,都是很好的學習程式設計的方式。

(e) 獨立分析問題階段

這個階段和第4階段同時進行,獨立分析問題就是將現實的問題運用計算思維去解決,即通過問題分解、模組劃分、演算法設計和程式碼編寫,最後除錯程式。

在學習過程中,需要注意的是:

  1. 不要過分糾結於語法細節

  2. 程式邏輯分析問題;

    在編寫程式碼的過程中逐步掌握語法規則。

  3. 除錯程式碼的時候,需要了解程式的問題邊界

    例如資料的適用範圍,在除錯過程中,需要將各種邊界資料進行輸入,觀察程式結果是否正確,進行相應的修改。

(3) 學習的主要內容

C語言的主要內容有以下8個方面:

內容

難度

基本語法

陣列

★★

函式

★★★

結構體

★★

程式結構

★★★

指標

★★★★★

編譯預處理

★★

檔案

★★★★★

根據學習層次和要求的不同,課程內容的範圍和難度會有所不同。一般以培養邏輯思維計算思維為主的入門學習者,主要集中在基本語法程式結構陣列函式結構體

對於高階的學習者還會包括其他幾個方面,特別是指標的學習難度較大,入門不太容易,但是指標是C語言的精華,有人說“不學指標,等於沒有學C語言”。

(4)應用C語言

掌握C語言的基本程式編寫方法並不難,難得是如何使用C語言解決問題。這是個很大的話題,總的來說還需要學習資料結構,掌握常規的演算法,然後和不同的應用領域結合編寫所需的程式,程式設計師根據程式要求,需要對開發的領域比較瞭解。例如,開發嵌入式程式就需要了解對應的硬體介面功能。

如果只是培養自身的程式設計邏輯,計算思維,那麼可以結合具體的領域,運用程式設計思想分析具體問題。既然是一種思維,它必定是個人綜合能力的潛在組成部分。

不學C語言,可能你不會有什麼損失;但是,學了C語言,你必將有所收穫,或許還會收穫適應未來數字世界的金鑰匙。所以,請你保持好奇心,使用良好的學習方法堅持學,C語言將不會是障礙!

我說的簡單,其實我提到的每本書至少都夠你研究很長時間的,所以希望初學者彆著急不驕不躁,相信只要努力過,一定會成為高手的。

在寫程式碼的時候大家要注意養成好的程式碼習慣和風格還有抽象能力。

借用喬布斯的話來鼓勵大學生朋友們:Stay Hungry , Stay Foolish