記得多年前筆者參加求職面試時,被問及要用四個不同編程的方法來計算費氏數列(Fibonacci Series),不知這問題難到多少人。當時我的回答是,用方程式、用預設答案(因為費氏數列中的數字其實不多,可以預先計算好放在程式中)、用遞迴(Recursion)和用非遞迴(Non-recursion)的模式編程,我回答完之後,負責面試的並沒有追問下去,假如我是負責面試的,我會再追問究竟這四個不同的方法,各自有什麼利弊,適合在那個時候用呢?
就這四個不同的編程方法來說,用方程式求任何一個費氏數列所用的時間相同,但是因為方程式涉及開平方運算,所以可能有誤差(Rounding)問題。在程式中預設整個費氐數列,例如放入陣列(Array)之內,那麼取那一個費氏數列的數字都用相同的時間,但弊處在於不論使用的次數多少,整個費氐數列都要放在記憶體內。用遞迴的編程方式是最容易寫、最顯淺的,但問題是運作效率不高,用非遞迴的編程方式是較有效率,但程式碼是較難理解的。如果程式員能想出不同的編程方法,以及它們的利弊,便可以因應需要而選擇最適合的方法了。
筆者相信大部分程式員只可以想到一個或兩個編程方法,而筆者之所以可以想到四個方法,費氐數列的方程式是在高中時的純數科學的,而其他三個編程方法是多年編程經驗領悟出來的。另外,網上有大量討論區讓程式員分享經驗,也是程式員「深造」的地方。
在我們的人生當中,也會遇到不同的問題,有些人可以想出多個解決方法,有些人可能只可以想到一個解決方法,甚至有些人是想不出任何解決方法的。如果我們能想得出愈多不同的解決方法,便可以比較不同的解決方法的利弊,從中找出最適合的解決方法。人生的問題,也許大部分人所面對的都差不多,所以在問題出現之前,我們可以向前輩學習他們的經驗,又或多看書,學習由作者的角度去思考問題。
無論如何,當我們面對一個問題時,先要冷靜下來,可以先想想自己有什麼解決方法,跟著再提醒自己也許會有其他解決的方法,可向別人請教,上網或看書去看看有否其他人也遇過差不多的問題。當我們得知不同的解決方法時,可以從中選擇最適合自己的方法。最重要是,不要放棄、不要灰心、不要衝動。
[ 您可能對以下有興趣 ]
- 網台節目
- [數碼APPS] 展望2014年的數碼世界發展
- [自作業] 物流不「流」
- [All Day Breakfast] 遊戲治療
- [九廣揭露] 訪問香港前華籍英軍 (Hong Kong Military Service Corps)
- [九廣揭露] 香港電視的神奇「魔」力 - 專訪香港電視編劇莊婉萍
- [企業軟實力] Facilitation讓會議及策略規劃變得精彩
- [南亞裔在香港] 印度裔的巴芷盈、巴太
- [數碼APPS] 中小企業網絡安全防護
- [數碼APPS] 數碼分析專家 Kenneth Kwok 帶領大家漫遊大數據年代
- [數碼APPS] 終極論壇 - 緣聚於此
- [自作業] Made in 馬灣的美味
- [自作業] Silversmith純銀DIY
- [自作業] 一個手作人的故事
- [自作業] 做健身,唔一定要去gym 房既!屋企都做得架!
- [自作業] 全城熱點-Hello Kitty有機農莊
- [香江巨輪] 全城街馬 傳承街馬 - 張亮專訪
- 專欄文章
- [「點指」教仔咁簡單] 先了解、後選校
- [偵情探案] 手機間諜Apps
- [感作感為] 從微電影看資訊傳遞的發展
- [糖書] 創動力是偽NGO
- [電腦告訴我的事] 亡命超頻
- [電腦告訴我的事] 何謂安全
- [電腦告訴我的事] 先緩輕重
- [電腦告訴我的事] 夢想現實
- [電腦告訴我的事] 容錯人生
- [電腦告訴我的事] 慾望無限
- [電腦告訴我的事] 有始有終
- [電腦告訴我的事] 物件導向
- [電腦告訴我的事] 留有餘地
- [電腦告訴我的事] 異常人生
- [電腦告訴我的事] 電腦萬能
- [電腦告訴我的事]決策時刻
- [Happy Hippes] Meditation。
- [Happy Hippes] 別讓恐懼阻礙你
- [半百人生] Hello Kitty不是貓
- [圖文共賞] Pizza Guy in the Oscars 2014
- [圖文共賞] 互聯網上六成是鬼?
- [圖文共賞] 十二段「一鏡到底」的電影情節
- [擁有自己的私人影院] 制式、制式、又是制式
- [正能量※讀書會] 365個快速成功法 Napoleon Hill's Positive Action Plan
- [正能量※讀書會] 最後14堂星期二的課
- [正能量※讀書會] 零極限 Zero Limits
- [糖書]感恩。感激。感動
- [糖書]自動波
- [長者安居協會] 學新科技升「呢」,你準備好未?
- [長者安居協會] 誰家沒智能(中)
- [電腦告訴我的事] 人生死鎖
- [電腦告訴我的事] 誰是領䄂
- [電腦告訴我的事] 適者生存
- [香港萬歲] 混漲
- 影像節目
- [社聯頻道] 善用資訊科技 提升戒毒動機
- [社聯頻道] 商管生服務社福機構 跨界培育學子社責心
- [社聯頻道] 引入VR虛擬實境技術 復康訓練更見成效
- 此文章之主持/專欄作家介紹:Herbert
- 資訊科技界資深工作者,學生時代受蘋果二代所啟蒙,沉迷電腦科技,尤其是軟件編程,大學時代主修計算機科學,最後以獲得哲學博士作完美終結。從事資訊科技行業超過二十年,對資訊科技界充滿憧憬和好奇,至今仍在追趕各項電腦新知,盼望能以資訊科技知識,令這個世界更美好。