據上文 Apps 經驗淺談與分享和討論認真,有幾多人想睇 : 寫 Apps 經驗淺談與分享後,引起眾人瘋狂討論,集中傾點樣寫好一個 Program,遇到data structure野唔識,或者有神人分享心得。我就透過呢度去講下我點樣上手。

首先,學習佢基本原理。寫Program,係實踐學科。就以Looping為例。Looping,中文解作「迴圈」。電腦之所以叫做電腦,係因為我地指令佢,做一尐重覆又重覆,或者煩死人嘅工作。所以,點樣學習寫一個程式係可以令電腦幫你重覆又重覆咁做,係學好點寫 Program 嘅先決條件。所有程式都只會行一次就收工,但加上Looping就可以任電腦做到完為止。Looping 可分 “while" , “do-while","for loop"。

1. “while",只要加上條件,入面的做乜隨你定義。先判斷後工作。

while (離開條件) {
工作一、二、三;
}

2. “do–while",只要加上條件,入面做乜隨你定義。先工作後判斷。

do {
工作一、二、三;
} while (離開條件)

3. “for–loop",一個已知工作數量、開始條件的迴圈,極常用,工作隨你定義。

for (開始動作; 離開條件; 更新動作) {
工作一、二、三;
}

由於 “while loop" 先要判斷條件啱唔啱先做野,"do while" 會先行一次,所以如果有重要野必先做,會用 do while。"while loop" 係可以無限咁做直到做晒為為止,for–loop 就事前已經知道左有幾多個工作要做,所以如果唔知道開始嘅條件同有咩數要更新,多數會用 while-loop。當然,唔係下下都只係明個原理就明左,係要不斷實踐先可以意會到個 idea 係點樣用,個原理其實係咩來。鳩嗚就好似 “while-loop" 一樣,未買到自己心頭好就一定要周圍走格下價,追求貨真價實嘅態度就係學寫Program嘅正確態度,就要不斷試不斷學習兒係啱晒。

其次,要學點樣去學習。呢個係一個做人嘅基本要求,因為身邊嘅野不斷係度變,你唔盡早學上手,遲早係社會淘汰你。通常一般人會先睇呢個係乜來,再學個原理,記左入腦。不過,之後冇小組討論,自我實踐,做舊野出來,過多排你就唔記得。學寫Program,就係要放棄所有你既定嘅學習模式,重新學習或改善學習嘅方法。因為科技日新月異下,可能以往學到嘅野今日聽日已經用唔著,甚至點樣去學習,都套用唔到。如果講今次嘅遮打革命為例子,你會發現建制、泛民、公安不斷用以前嗰套去管制班村民點樣做野同埋諗野,又或者點樣用尐藉口挑起紛爭或感召大多數的人去參與,例如一日三首海闊天空、周融街站、「愛港團」搞事‥‥‥以前總會嚇到班村民唔敢再出來,或者冇咁激,但係依家連抗爭都走多元路線,自由發揮。所以,面對日新月異嘅生活環境,除左要「鳩嗚」,仲要日日學習,天天向上,睇書乜乜乜。Programming的知識,就是如此,就是要你不斷學習,改善點樣去學習,盡量從人地身上嘅學習模式比較,令自己學得上手,寫得開心。

有人話 go through下網上啲 tutorial好易明,但依個其實只限於初學,只限明白呢個 Programming Language 係乜。以前寫 C、Assembly,到依家 Swift、Java、Objective-C 大行其道,以 Object-Oriented Programming 原理為程式主流,以物件(Object)和事情(Event)為主導,編寫更具智慧,更人性化嘅程式去幫助我地解決日常問題。坊間嘅Tutorial,雖然易上手,但只係學到基本原理,未能學到箇中精髓,如 Java 可以不斷重複使用設計框架,Objective-C 可以將定數與邏輯部份分開,更易打理。寫Program 嘅目的就係解決問題,而你遇到嘅同人地都唔同,思考嘅方法都唔一定係大家都一樣,點可以將人地諗過嘅野硬食左去呢?學寫Program,同學其他野一樣要先學原理,但係都唔可以忽視背後嘅設計原理,點解會咁寫,點解要咁排。可能你寫寫下,發現你自己諗到嘅方法更為有效直接,都唔出奇。反正,寫 Program 最後都係解決我嘅問題就夠喇。好多人一生都遊行唱K、包好多奶、賣下餅糉,都係解決唔到自己問題啦,你解決到自己嘅問,題已經係高人。你解決到人地遇到嘅問題,已經係神人了。

不過,我都係同大家一樣,都只係普通人,只係我日日都對Program,日日都會諗咁解。只要你不斷學習,不斷學習點樣去學習,不斷唔好俾人地嘅學習成為你既學習,你不但之可以成為Program神人,仲可以為成為革命神人。反正遮打革命出來嘅原因,都係因為冇人肯去重新學習呢個民主政制呢個 Program 係乜野,冇人肯點樣去學點樣去學識佢,同埋有為數不少嘅村民學習以前果套而不思進取。所以,學識點樣去寫 Program,你呢位村民已經比人叻一大截。