Tuesday, March 25, 2008

我的編程歷史

8歲:父親買了我第一部真正接觸的電腦,為386SX25(以往還有AT/XT機、Apple II等,都沒有真真正正地玩過)
10歲:暑假到元朗大會堂學Logo,就是Turle走來走去的那一個Logo。一般同學畢業前學懂repeat,我學畢後自修學會recusion,還編寫了簡單的作曲function,記得有生日歌、聖誕歌等。
11歲:任天堂末代推出過「家用電腦」軟件連Keyboard,內有Basic的,由於不太出名,reference不足,摸不上手。
12歲:在MSDOS 5.0內玩MS Quick Basic,Programming還是在電腦上做比較好。主要為了修改裡面的猩猩+香蕉遊戲而學的。
14歲:得知上會考班要讀電腦,在暑假自修Pascal,中四上課前寫好了Mastermind,學會了linked list,也就是大學一年級的Introduction to programming的程度吧,因為我是在圖書館借了一本Pascal的教本學的,我記得上面寫住給College First Year收讀,當年以為College就是高中的意思...
15歲:在數學科上學會了Calculus,寫了一些Polynomial四則、D、In的function。同年,在Win 3.1上試學Delphi,失敗了... Event-driven model 還是太新了。
16歲:當大家還沒有在用56k modem的時候,我已經在hkstar上有自己的homepage,是手寫的HTML,對應的是Internet Explorer 3.0及Netvigator Communicator 3.5。由於hkstar上不能行script,只好用外國的message board,不然已經給自己編了一個Blog...
17歲:DHTML時代,接觸java、ActiveX等,成立Blog型式的homepage,但還要手動加post的,所以一直都沒有加新文章入內。當年的筆記上,還寫著「public static void main <--???????????????」。
18歲:升大學的暑假,除了做暑期工外就沒其他事做,學會了Visual C,更寫了第一隻DirectX Game,是一個scriptable的plane shooting遊戲,對應的是VC6+Dx7。
19歲:偶然見到同學拿著一本「手機鈴聲大全」,裡面全是鈴聲code... 而且Nokia、Ericsson和Motor等的code都不同的,突發奇想,寫了第一個MFC的program,就是Mobile Phone Song Player,除了能翻譯各機的code外,還可midi發聲及output midi file的。不知為何會有人知道有這個作品的存在,有當時的大鈴聲網站link到我的作品處,介紹說:「這可是香港人的作品!」,下載次數高達5位數... 當年還只是一個year 1的大學生...
21歲:畢業作品為波子棋的AI研究,寫了一個Windows(Doc/View Framework)的client,除了可以和AI對戰,還可以網絡IP對戰,而且有chat room功能呢。
22歲:為給女朋友做生日禮物,學會了Flash,寫了一張Interactive的生日卡,用的還是ActionScript 1.0,還沒有class的概念。
23歲:參加了ACM Online Programming Contest,有興趣可以去看看 Valladolid Online Judge,活躍了一兩年,解決近150題。其中有一題有關 15-puzzle的題目,論速度、論內存,當年還是世界第一呢!
24歲:從事數學教育工作,為工作寫了很多教學上的小幫手,除了offline的「出題機」外,還有一些帶到堂上使用的PocketPC工具,成為我上課不可缺少的一部份。代表作為「24計算」及「火柴遊戲」。
26歲:真真正正成為一名全職的Software Engineer,接觸到的可多了... C/C++/Java/PHP/Blackberry Java/Symbian C++/Mac Cocoa (Objective C) ... 未能盡錄...

No comments: