為什麼要學習 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 可以聽命令來執行動作, 有記憶體可以牢靠地記錄資料, 有輸出輸入裝置乖乖地聽命令來執行動作, 所以很明顯地是程序式的架構, 要操作這些元件基本上就是程序化的程式, 如果你寫驅動程式層級的程式, 必然是使用程序式的程式設計方法。 雖然由高階抽象的角度來看, 任何硬體/軟體都可以看成一個物件, 可以運用物件導向式的操作來刻劃, 但是物件化的環境為了考慮程式的重用性與擴充性, 終究效率比較差, 雖然在製作較大規模的軟體時物件導向方法比較適合, 但是你也不需要太擔心物件導向的程式設計會吃掉程序式的程式設計, 各有所長, 正確地應用會增進效率的。

程式設計課程 首頁

製作日期: 09/13/2008 by 丁培毅 (Pei-yih Ting)
E-mail: pyting@mail.ntou.edu.tw TEL: 02 24622192x6615
海洋大學 電機資訊學院 資訊工程學系 Lagoon