為什麼要學習 C 程式設計?

困難! 困難! 困難!

大概應該聽過學過 C 語言的人描述學習的過程吧! 就是了, 不用懷疑, 不用碰運氣, 你不會因為八字和 C 比較合學起 C 就比較容易了。


為什麼要走這條路呢 ?

使用 C 語言設計程式對於熟練的老手而言是很容易、 很放心、 很值得信賴的, 因為它有高階語言的控制架構與資料結構, 又有低階位元及 I/O 的處理能力, 熟練 C 語言的人其實多半也熟悉高階抽象的語法架構、 應用系統的模型、 作業系統的環境、 低階的資料表示、 以及作業系統提供的 I/O 界面

許多同學對於 C 語言可以說是又愛又恨, 看起來文法不多, 用起來卻千變萬化, 其實說穿了 C 語言的變化都圍繞著資料的表示法、 硬體系統的架構、與系統軟體 (作業系統) 提供的環境三者打轉, 運氣好又肯努力的同學撥雲見日看穿了這些變化, 回到隱藏著的原點, C 語言不過只提供了算術邏輯運算、 資料搬移、 和控制移轉這三大類敘述, 輔以資料結構的設計, 如此而已, 你還是可以運用 C 語言來練習如何將實際世界裡的問題抽象地表達出來, 何懼之有?


物件導向? 快速模型建立? 圖形化界面?

學習 C 語言其實是一個很好的起點, 可以由應用程式的角度深入地暸解電腦的運作方式、 切入系統軟體的操作, 太急於成效的同學往往想跳過 C 語言, 趕快去看看 Basic, Visual Basic, Pascal, Delphi, C++, C++ Builder, 或是 Java 等等語言的威力, 可是這些語言總是技巧地把系統相關的問題都包裝起來, 不讓你看到, 可是沒有問題好嗎? 如果我們的目標是賺 $$$, 沒有問題當然是最好的, 可是各位的目標要放在深入地暸解電腦系統, 未來當電腦系統慢慢地演進時, 你才能以紮實的基礎看清電腦系統演進的方向, 暸解電腦系統的特長與限制。 在這個階段裡, 看不到問題才是最大的問題, 各位資訊系的同學目標要放在系統軟體與應用軟體的設計之上, 需要兩者兼顧, 才能夠看得比較遠, 走得比較快。

現在在學校裡你大可不必怕學不會而受到打擊, 不會的, 學校裡能有什麼打擊呢? 逃避到了最後, 進了社會後才會受到真正的打擊呀! 這種學習困難的東西就好像金庸武俠小說中要練習的內功心法一樣, 開始時慢、 不易進入、 但是一旦清楚了、領悟了, 保證你對相關的東西都能夠觸類旁通。 計算機的硬體巨觀地來看的話, 有 CPU 可以執行動作, 有記憶體可以乖乖地聽命令來記錄資料, 有輸出輸入裝置乖乖地聽命令來執行動作, 所以很明顯地是程序式的架構, 雖然就微觀來說, 每一個硬體元件都可以看成一個物件, 好像是物件導向式的操作, 但是提供出來的程式製作環境受到巨觀的影響較大, 在這樣子的環境中, 程序式的程式設計方式還會有很長的一段路要陪著你, 不要太擔心物件導向的程式設計會吃掉程序式的程式設計, 各有所長, 正確地應用會增進效率的。

程式設計課程 首頁
by Pei-yih Ting
E-mail: pyting@cs.ntou.edu.tw