說明
和美國人用英文溝通,和電腦溝通要用程式語言, 程式語言是人和電腦溝通的方式。常見的電腦程式語言有:C++、C、VB、C#、Java、python、R等等。不論是哪種程式語言,都跟學英文一樣,有語意和語法,但和人類語言不同的是,電腦不聰明,可接受的指令不多,對電腦下指令時要非常明確指出細節,不容許有語意和語法的任何錯誤,甚至先後順序也不能任意調換。舉例:要下指令讓機器人過馬路,沒辦法用「小心、看路」的抽象概念提醒它,正確的做法像是:
步驟1:走到斑馬線的第一條白線前30公分處停下
步驟2:以每秒30度的速度左擺頭,連續拍照30張
步驟3:將照片作灰階處理,進行影像分析辨識;
步驟4:相同動作往右作一次,反覆動作最多20次
步驟5:20次內,確定左右無車時,才能以每秒50公分的速度往前移動,否則暫停,每2秒再反覆上面的動作
步驟6:一直重複到完成或是超過20次跳錯誤求救。
每個步驟還會有更細的步驟。20次稱為重試,如果重試次數過短,在塞車的情況下,機器人很容易發出求救訊號;如果重試次數過多,機器人異常時永不回報,重試次數多少,電腦不會知道,必須由人來定義,這就是電腦語言(的最底層架構)。
由以上案例可知道,一件簡單的事情,要對電腦鉅細靡遺的說明;如果複雜的事情,程式行數就非常驚人了,如果要在龐大程式堆中加入指令,更不是一般人邏輯可以想像處理的。因此,寫程式需要抽象的組織能力,從國文的角度,須要文學造詣。詩人可以四行成詩,但有些人連用白話文都不知所云,程式語言也是如此,低造詣的程式,電腦花時間在周邊遊走,無法直搗黃龍,也有可能因指令不明確,讓電腦迷航。
稱職的程式設計師要讓電腦「活」起來,須要具備數學演算法能力,用精確方式呈現;要用資料結構的設計能力,能有條理層次的分類;更要有人工智慧的知識背景,能用接近人類的思維去設計程式,提升程式造詣,讓程式有「一言以蔽之」的效果,才能讓電腦活靈活現。
和電腦溝通是現代人必修課程,我們之後會陸續分享,如何提升程式造詣,以及如何評估程式設計師的造詣,讓想成為程式設計師你或需要找合適的程式設計師來幫忙開發的你,有更多的參考資訊。