實用的程式設計

現代高中電腦課會教基礎程設計,但教的多是 C 語言, 是只能留在課本或打打演算法競賽的空談, 無法應用在電腦的日常使用中。 在學完高中程式設計後,電腦對使用者來說還是一顆黑盒子, 只能用滑鼠點點操作,軟體沒有提供的功能就只能乾瞪眼, 那些課程上教的,完全出不了 dos 的小黑窗。 其實在電腦中的軟體操作,都可以對應到程式中的指令, 都可以以程式來自動化完成。 只是電腦課不教這些。

高中電腦課

在我高中電腦課是教 C,學 C 後就是練習迴圈, 用星星輸出三角形、金字塔之類的。 C 有很大的問題,因為太低階限制太多, 而且檔案讀取與寫入太麻煩,陣列和指標太複雜, 以我高中時根本沒學到指標和檔案讀寫。

這些東西都太原始, 已經和真實使用者日常操作電腦的內容相去甚遠。 雖然那些日常操作說穿也不過是這些邏輯, 但還需要很多背景知識,尤其是 gui 的程式間通訊。

而且以高中來說,寫 c 執行 c 全部都在 dev c++ 裡, 很多人只會點編譯後執行來執行, 程式的變數參數都寫死在原始碼裡, 離開 dev c++ 離開 IDE 就不知道怎麼寫程式, 也根本寫不出所謂實用可以互動的程式, 在 dev c++ 外運行的程式。

shell 語言

所謂 shell 是在作業系統中的文字介面, 主要功能是呼叫系統中的其它程式, 同時也具有簡單的程式語言功能, 如變數、條件判斷、迴圈等。 以 linux 來說,有 bash 或 csh, windows 則有 cmd 或 power shell。

shell 最主要的功能是呼叫其它程式。 你在電腦中的操作,打開資料夾、複製檔案、開啟網頁, 都是呼叫一個個現有的程式完成的。 在圖形介面中可以用滑鼠操作來達成呼叫這件事, 在 shell 中則是直接輸入程式的路徑來執行, 還能傳遞參數改變程式的行為。

例如拷貝檔案是用 copy 這個程式:

copy old.zip new.zip

有的會教稍微過時的 basic,可能可以用 dos 運行, 還能簡單跳圖形介面,或在 office 裡的 VBA。