跳躍在資訊的青春-思考、分享與傳承.蔡昀達
|
本會志工蔡昀達 一、轉型-程式設計 國三下那年,很順利的推甄上了建中,也比別人多出了將近三個月的時間培養自己的方向。那時候的我主要的興趣在於資訊,也打算走資訊這條路,不過我所學的還是太少,當時我所專攻的是網頁設計,從國一到國三,為班上、自己總共寫了三個網站 不過上了高中,我想嘗試點別的。程式設計似乎不錯,這樣以後就可以寫一套符合自己需求的軟體。接近暑假的時候,老爸買給我一本C語言的書,於是開啟了我的學習程式之路。 正式開始學習程式設計,是高一的那個寒假。當時社團裡面有三個人是整天討論程式的;肇南、立文、我。和大部分學習程式的人不太一樣的是,我們所討論的都是比較偏向理論、數學方面的。講簡單一點,就是為奧林匹亞比賽而做準備。學長上課也會講解一些當時對我們而言比較艱深的主題,例如:資料結構(Data Structure)。不過一直到寒假結束之前,我都還停留在和語法搏鬥的階段。整個寒假幾乎都被拿來練習C語言。 二、程式競賽 有一天學長問我,有沒有意思參加程式設計比賽。當時我以為程式設計比賽是要設計一套軟體,後來才曉得,其實和數學競賽沒什麼兩樣。只是數學競賽是用筆,而程式競賽是用電腦。 剛開始嘗試的時候,是蠻辛苦的。首先要想出一套演算法(Algorithm),對我而言就已經很困難了,而要將演算法用程式語言表達出來更難。因此有時候困坐在書桌前思考一整天是很正常的事,甚至到廢寢忘食的地步。為了充實演算法這方面的知識,因此看了不少書,也成為書店裡面的常客。書包裡有時也常常裝著兩三本厚達一千多頁的原文書,利用午休或是坐火車的時候看,不能看書的時候就思考。漸漸地,我開始喜歡上思考的感覺,一種推動人類進步的力量。 事實上,競賽的題目相當的生活化:如何花最少的時間從甲地到乙地;如何花最少的錢規劃完善的旅程…當然這些題目都是被理想化過的,還有很多人為的因素沒有考慮進去,不過既然有一個問題的雛形,要解決實際上的問題也就不那麼難了。 沒想到,藉著數學和資訊的結合,可以解決這麼多生活上碰到的問題,這是當初想都沒想過的事。 三、分享 在參加程式競賽的同時,我開始學習怎麼樣分享:分享自己的想法、觀點,到分享自己的研究成果,這是相當重要的。有時候,我們常常會忽略掉一些細節,而導致嚴重的錯誤。心理學家研究,人類最多只能同時思考七件事,而有時候問題是那麼的複雜,當你考慮到某個例子會不會讓你的演算法出錯時,卻可能又忽略某些情形下的狀況。這比寫網頁還要困難,網頁講究的是美感,和使用者的感受,可是程式設計講究的是精確,然後是效率。若是程式一點也不精確,那麼一點價值都沒有;若是程式一點也沒效率,讓使用者得等老半天,也會讓程式本身大打折扣。 不過話說回來,程式很少有一個是真正精確的,除非是很簡單的程式;越複雜的系統越可能導致錯誤,所需要的測試時間也就越長,幸好程式競賽的程式,一般都相當簡單,一層又一層套用已經被證明過的公式(演算法)。儘管如此,難免還是會有出錯的時候,像我所練習的題庫,每隔一陣子就會更正一些被發現的錯誤,這也苦了我,原以為正確無誤的演算法又要重新設計。 在學校裡,和我一樣寫題庫的人也不少。我們常常聚集在一起討論,也因此,結交了不少共患難的朋友。他們不僅僅只是戰友,更是心中的知己,我的一舉一動,都被他們所了解,不必我說,他們都曉得我想表達什麼,久而久之培養出堅定的友誼,和無比的默契。這些人分別是:俊宏,振宇和劭宇。目前前面兩人正在師大奧林匹亞研習營接受集訓,後者則取得法國國際科展的正選,將在暑假代表我國參展。今年我們這些人也將會代表學校參加台大主辦的「全國網際網路程式設計競賽」。 四、除了程式以外的東西 除了程式設計,我也專長在網頁設計(我的老本行),和影像處理。記得高一那年,國文老師逼我在校慶前將班網寫出來,那可真是苦了我,我記得我花了整整四天不眠不休,從蒐集想法到付諸實現,好不容易才完成了一半(那些檔案都附在光碟裡面,不過裡面有一些網頁還沒有寫好。),幸好主頁和一些比較有可看性的內容都弄好了,也趕在校慶前放上去。不過那個班網相當有創意—沒有用一個圖檔,那是種嘗試,我想看看只利用顏色和線條的組合,是不是也能達到驚艷的效果。 沒有同學的幫忙我是弄不出來的,我記得趕工的同時,我的朋友也來我家整理數百張的照片,他是負責資料彙整和攝影的,所有的照片和學生資料都經過他的整理。累了,我們就休息;無聊的時候,就互相講笑話;屁股坐痠了,就一起去打球,學資訊的人可不是大木頭呢,學習人際間的相處和互動,也是很重要的,不然什麼事都別想做成了。 在寫這個自傳的同時,我也在為班上寫新的班網,也是一樣不眠不休的三天。有鑑於上一個網站實在是太複雜,讓我差點累死在顏色和線條的處理裡面,這次改採簡單、清新爽朗的風格,還帶點高科技的味道。首頁的那張圖整整花了一天才畫好,用了二十幾個圖層和遮罩(天呀!差點按滑鼠按到手斷。),不過辛苦是有代價的。在我將班網發布後,很多同學寫信來謝謝我,真的是讓我很感動,也希望這個班網能夠凝聚班上的向心力,成為建中最閃亮的一班。 五、嘗試錯誤 有人說:「嘗試是最好的老師。」這句話深深的印證在資訊這個行業裡面。舉個例子吧,有一次我心血來潮想要玩玩Linux,體驗看看號稱最穩定的系統是不是真的很穩。光碟一拿到手,馬上塞進電腦,接著一陣咭哩呱啦,螢幕上冒出一堆選項,怎麼辦,一堆選項看不懂,偏偏沒有書可以查這些選項是怎麼用。好吧,那就用最笨的方法,一個一個試。這樣通常得攪和個一天,常常發生的狀況是:裝好了,覺得不怎麼滿意,又格式化重灌,直到試到滿意為止。就是這般嘗試,從嘗試中學習,很多選項裡面的生字是字典裡面查不到的,像是「CUPS」,這可不是咖啡杯的意思唷,它代表一種Unix下的列印系統,要是沒有一個個試看看,又何從曉得哪個是哪個呢? 另外一個例子是我在寫程式競賽題目的時候,有時候明明看起來沒有錯,可是偏偏送審的時候出現錯誤的訊息,通常這代表自己沒有想清楚,很可能是哪邊多了個運算符號,拿掉就對了,不過這個時候只好靠「Trial and Error」啦,自己想不同的case,一一測試自己的程式。不過這種方法相當沒效率,常常可以說是事倍功半,要不是憑著不服輸的精神,很可能我會瘋掉。 六、社團 「來建中不參加社團,那等於沒來。」這是校長第一天的開學訓話。開學的第一天,學校發給我們一人一本印刷精美的社團簡介,包羅萬象的社團,若不是事先認識學長,還真難挑呢!不過我很高興選擇了電研社,當了學術,除了整天寫程式外,還要教大家怎麼用電腦。知識並不是只屬於你一個人的,對吧?不論別人問什麼問題,都得很有耐心的解釋,一點點不耐煩都不可以。這讓我想起剛開始學程式的時候,不曉得受到多少嘲笑,好像人天生就得會程式一樣!既然我受過這種痛苦,就不能讓這痛苦也發生在別人身上,畢竟那樣不知扼殺多少充滿求知欲的靈魂。 學術除了教學外,還得幫忙撰寫社刊,一次我寫了有關網頁資料處理的文章;另外一次我和同樣是學術的朋友一起撰寫了Linux的介紹和C語言常見問題集,雖然比起其他學術,我寫的內容算是相當的淺顯,但是淺顯並不代表容易寫。例如為了寫網頁資料處理,翻了將近三本書、寫了十幾頁的網頁當作試驗品才搞定,幸好先前我的班網就是用網頁資料處理寫出來的,因此已經有了相當的經驗,不過畢竟要教一個人比自己學會一樣東西還要難,你不曉得別人的程度有多少,所以用詞的拿捏都得相當的明確,即使到現在當上了學校資訊集訓營的負責人,我還在學習「怎麼樣教會一個人用電腦」。 七、發揮所長 每個寒暑假,我都會到台中一趟,不為了別的,只是去教別人如何用電腦。這項純公益性質的服務,從高一的寒假開始,一直持續到現在。我所服務的地方,曾經是一所安養中心,國中畢業後,我也到過那邊幫忙照顧老人,後來他們請我去教他們如何操作電腦軟體,我也很樂意去幫忙,況且這本來就是我的所長呀。從最基本的作業系統操作,到比較進階的flash和photoshop、文字排版,不過當然也不是每套軟體我都會,若是他們提出他們想要學的軟體,正好是我不會的時候,我就會先去努力的學會怎麼樣使用那套軟體,然後再教他們,這樣既可以發揮愛心,又能學會一套新的軟體,不是一舉數得嗎? 八、資訊集訓營 當初學校創立資訊集訓營是為了培養資訊奧林匹亞的人才,每一屆集訓營的負責人都得擔任講師的工作,包括撰寫講義還有講解演算法和資料結構。負責人的任期通常是一年,期滿以後通常是由校內資訊科能力競賽,成績最好的學弟繼續接任。那年,我的程式成績在校內複賽的時候拿了滿分,電腦老師於是找我,問我願不願意繼續接任集訓營負責人的任務。我馬上答應了,因為我很喜歡教別人,不管是什麼,只要是有熱誠的人我都願意教它。一開始的時候我都會乖乖的撰寫講義,不過那真的是累死人,因為我的標準很高,對每一件事我認為該做的,便不會敷衍。後來我改變策略,用網路上現成的題目當作教材,這樣我也比較好掌握每一個人的進度和學習效果。 於是每個禮拜三放學,我都得到電腦教室帶領一群未來的種子,教他們過去我怎麼學、怎麼走、怎麼體會思考的樂趣。後來的奧林匹亞考試,我雖然沒有考上,但是一位我帶領出來的學弟卻考上了,現在也進了第二階段集訓準備競選國手。有人問我會不會很難過,拼了一年卻什麼都沒有,我搖搖頭並沒有說什麼話。記得在那位學弟臨行到師大的前一天,我打電話給他,幫他勾書上的題目,還有交代一些奧林匹亞的注意事情。是的,我雖然沒有機會再參加奧林匹亞,但是我將我所學的,全部教給集訓營裡面的種子,他們將會代我去遠征,替我實現我所無法實現的夢想。 九、總結 過去一年半載,也就這麼哭過、笑過、走過,從社團裡面不起眼的社員,到接掌學校集訓營的重任,是一種成長,也是一種傳承。社團的幹部,在寫這篇自傳的時候,已經交了棒,而今年十一月,也將卸下集訓營負責這個位置。有那麼一點不捨;也有那麼一點思念。記得去年為了尋找有潛力的學弟,到處在校園裡面奔波,每個班級、社團都找遍了,總希望能不斷地發掘更多的人才。雖然我的任務即將完成,也將要把棒子交出去,可是無論怎麼樣,繼續地將資訊散佈給每一個人,是我的責任,也是我唯一能為這個社會盡一點小小的心力。 |