重造輪子

250px | right | 車輪 重造輪子  是重新創造一個已有的或是早已被 - { zh - hans: 優化; zh - hk: 優化; zh - tw: 最佳化 } - 過的基本方法 ， 此用語常出現在軟件開發或其他工程領域中 。 「 重造輪子 」 一詞的由來 ， 是因爲輪子自從被髮明後 ， 在使用上沒有太大的缺陷 ， 足以應付多數需求 ， 原則上後人只需要直接應用即可 ， 重新再發明一次輪子不但沒有意義 、 浪費時間 、 還會分散研究者的資源 ， 使其無法投入更有意義及價值的目標 。 不過作爲教學與學習目的 ， 「 重造輪子 」 反而是重要的方法 ： 藉由重新研究的過程讓學習者領悟這項技術或方法的核心運作精隨 。 相對於 「 - { zh - hans: 應試教育; zh - hant: 應試教育; zh - tw: 填鴨式教育 } - 」 只是片面期待學習者能迅速完美地的應用技術及方法 ； 在 「 重造輪子 」 的學習初期 ， 不直接提供學習者最終結論或關鍵方法 ， 反而是經由一步一步的導引 ， 讓學習者自行完成其中重要的步驟 ， 進而理解此技術或方法的邏輯思維 。 在實際應用層面 ， 從事軟件開發的工作者也時常在做 「 重造輪子 」 的事 ， 不過這並非全無價值 ， 例如用來回避 - { zh - hans: 軟件許可; zh - hant: 軟體許可; zh - tw: 軟體授權 } - 問題 、 第三方模組或零件的技術限制 。 例如要對資料排序時 ， 最常使用的快速排序法 ， 雖然廣爲人知 、 而且已建置於 C++ 與 Java 的通用函式庫中 ， 但網頁用途的 Javascript 在某些實作版本 （ 如網頁瀏覽器 ） 卻不一定包括此演算法 ， 又或是效能因素考量 ， 此時可能須要 「 重造輪子 」 ─ ─ 重新編寫快速排序法 。