這裡指的是不以程式設計作為專業、而只是做為工具之類的學習。譬如系上的數值分析。(一時間想不到更精確的標題,<囧)

我沒有科班背景,也沒修過資工科系的課,以下只是分享個人心得,若有拋磚引玉效果的話更好,歡迎有經驗人士提供意見!

  1. 自己動手key in程式碼、編譯執行

  2. 課本的範例程式碼,最好都自己實作一次,而不要只是看過去,
    這樣的過程花的時間不多,但很有助於理解程式碼、抓出自己學習的盲點。

  3. 簡化目標、階段化除錯

  4. 將題目的要求拆成幾個小目標,一段段完成、除錯、慢慢拼湊起來。
    如果一次把全部的程式碼打完,然後再來除錯,往往會有太多bug而很難除錯。
    (通常這種時候寧願砍掉重來XD 除錯遠比寫程式碼麻煩多了)

    譬如題目要求從鍵盤讀值,然後使用switch敘述。
    應該先確認讀值部分的程式碼正確地執行了,然後才繼續寫switch部分的程式碼。

    小技巧:暫時不希望執行的程式碼,可以用註解符號標起來。

  5. 盡量由已經正確執行的程式碼,小幅修改、延伸撰寫、或當成副程式使用

  6. 尤其是一些稍複雜的程式作業。
    課後題目總會有一些,只要從範例程式碼小幅修改或加寫就可以的。
    或如K&R中,有輸入字元陣列的程式碼getline()就可以直接複製使用。

  7. 使程式碼排版易讀

  8. 各區段程式碼的排版、縮排,應該盡量模仿範例的格式,這樣有助於自己與別人閱讀。尤其是各式巢狀結構(for, while)

    Ex.
    C_newbie_1

    而避免寫成類似這樣
    for(i=0; i<5; i++){
    printf(“test");}

  9. 使程式碼意義易懂:好好地寫註解

  10. 尤其是各程式碼的目標、變數的意義等。
    寫清楚有助於日後自己和別人理解這段程式碼。

    以上兩點有其不可抹滅重要性,尤其是想請別人幫忙除錯的話。

  11. 有好的課本或老師

  12. 這一點我比較沒經驗,所以擺最後:p

    C_newbie_2
    這本是我高中時學長推薦的,我本來也想推薦這本、不過已經絕版了。

    下段摘錄自蕭鴻森的博客

    C Primer Plus, Stephen Prata, SAMS
    C Primer Plus 中文版, 蔡明志 譯, 碁峰
    相對於眾多的C語言書籍,這本書無論是中文版或英文版,都值得推薦成為你的第一本C語言書籍。


    The C programming language, Brian W. Kernighan & Dennis M. Ritchie, Perntice Hall
    C_newbie_3
    以前常聽到的K&R,K&R就是這本書的作者,身為C語言的發明者,其著作當然是經典…」

延伸閱讀:

  1. telnet://PTT.cc
    看板 C_and_CPP
    作者 khoguan (Khoguan Phuann)
    標題 C 語言新手十誡(增修一版)
  2. ACM Online Judge Guide(中文)