寫程式的能力跟讀寫一樣,每個人多少都要會一點。
我所說的寫程式,不是正經八百的coding,
而是「指揮電腦」的能力。
電腦的運算與記憶能力(甚至體力)都比我們強
但就像常見的工具(如螺絲起子)一樣
它是我們可以運用的工具之一
我們來決定,螺絲是要鎖上還是卸下,
工具本身不負責思考或下決策。
電腦比一般傳統的工具靈活
也是一大堆工具的結合
特別是網際網路的快速發展
經由對外連線,可以取得的資訊與整合的服務,
都超過我們的想像,而且演變的速度越來越快,
如果能夠經由程式的技巧來整合這些資源
電腦能夠發揮更多的用途,
我們也會因而間接或直接的受益。
大致上,程式可以提供我們三種型式的方便:
大量處理、自動化、代理人
《大量處理》
GUI桌面程式的風行降低了使用電腦的障礙,
直覺而又漂亮的操作介面,
取代了指令模式的不親切,
讓個人電腦大量普及,是很好的設計。
然而GUI有一個問題就是,
它必須由人來操作,
由人來解讀螢幕上面的訊息,
沒有操作者,他就不會動,
只會靜靜等待著滑鼠被點一下
才進行下一個步驟。
想想看,假如你有成千或者上萬首歌曲放在電腦裡面,
有一天你想要整理分類,
或者只是複製到另外一台更大容量的外接式硬碟,
這時也許你想區分歌手或者作曲家,
把相同屬性的檔案放在相同的目錄,
也許發現同一首曲目曾出現於不同位置,
想順便移除重複的檔案,.....
諸如此類的「整理」工作。
處理數百個檔案並不是大(困難)問題,
但是數千個,可能得花上個幾天的時間,
就算有耐心的做一次,那下次呢?
如果把處理分類的規則寫成程式,
讓程式代勞,有效率的完成這些重複、規則性的選取、複製與貼上的程序,
這是日常生活裡大量處理的應用。
工作上也有類似的需求,
大量重複耗時的工作經常存在,
寫程式,能幫你解決這類問題。
《自動化》
有些事情需要在特定的時間或條件下才需要(能)去作,
或者一段期間內,每隔一定時間得去執行的事,
如果沒有寫程式來輔助,你只能持續地等待與檢查,事必躬親。
像這類可以排程去處理的事情,
透過程式來進行,不需要你人親自在現場,
也能夠自我啟動執行,自我偵錯,自我紀錄,自我儲存,
甚至將執行結果往外通知的方式,這就是自動化。
《代理人》
代理人的例子蠻常見,
但一般人多習以為常,不會特別去注意到。
就拿我們上網訂購高鐵票這件事為例,
高鐵的線上訂購網站就是高鐵公司的櫃台代理人,
反之,當年台鐵火車票過年期間,一票難求的時候,
也曾有人將購票程序寫成程式,
在半夜以代理人身份代替本尊連上網路訂票。
兩方面的代理人一來一往,就像真人互動一般,毫不含糊。
仔細想想,真的有趣極了。
寫程式,先要選擇自己合用的程式語言,
(合用,是說用起來順手,符合自己思考方式的)
而在經過這一、二十年來的開放原始碼運動發展之後,
如今簡單、好用、穩定、成熟的程式語言比比皆是。
運用工具一直是靈長類的的強項,
選擇、學習一個順手的程式語言,
磨練、培養自己寫程式的能力,
是今日我們必備的基礎能力之一了。
沒有留言:
張貼留言