AI News HubLIVE
站內改寫2 分鐘閱讀

AI會毀掉我的“演算法一百天”嗎?

八年前,作者開始了“演算法一百天”挑戰,透過手寫程式碼學習演算法。如今回顧,專案存在諸多缺陷,如最大流演算法不完整、圖演算法錯誤等。作者反思,若當年有AI輔助,可能會促進學習但也可能導致走捷徑。最終決定保留程式碼作為歷史記錄,並更新README。

來源Hacker News AI作者: dshacker

八年前,作者 Daniel Sada 啟動了一項名為“演算法一百天”的個人挑戰。他的目標是透過親手實現演算法來加深對電腦科學課程中演算法概念的理解,為此他選修了普林斯頓大學 Robert Sedgewick 教授的《演算法I》和《演算法II》課程。專案涵蓋從並查集到紅黑樹等廣泛主題,並在 GitHub 上進行了完整的日常記錄。

如今回看,作者坦言這個專案花費了比預期更長的時間——從開始到完成“一百天”實際上跨越了八年。他最初期望每天花一到兩小時,但實際投入常常更多。儘管如此,他珍視這段經歷,認為手寫程式碼(而非使用現代LLM工具)讓他對演算法有了更深刻的理解。

在挑戰的最後一天,作者請 GPT-5.6(一個AI模型)對整個專案進行了審查。AI的評估相當嚴厲:指出最大流實現僅為存根,測試只透過無條件 True;廣度優先搜尋(BFS)表現出深度優先的行為,無法保證最短路徑;無向圖迴圈檢測陷入無限遞迴;二叉搜尋樹(BST)存在大小錯誤、遍歷問題和根刪除缺陷;紅黑樹缺少大小簿記;Kruskal演算法因匯入錯誤而失敗;二進位制I/O使用了錯誤的資料型別;選擇排序在特定輸入下失敗;三向基數排序在重複字串上出錯;以及機器學習指令碼依賴已過時的TensorFlow 1 API。

面對這一長串問題,作者並未急於修復。他選擇將程式碼作為歷史文物保留,這些程式碼反映了當時的程式設計水平。他計劃在 README 中誠實標註哪些實現是完整的、哪些只是探索性的、哪些仍然有問題。

作者反思了AI對學習過程的影響。他認為,如果八年前就有這樣的工具,他可能會更頻繁地用提問來驗證自己的理解(例如:“我的實現符合最佳實踐嗎?”、“這是Python風格的嗎?”)。但同時,他也警惕AI可能誘使學生走捷徑,跳過必要的掙扎與探索。他樂觀地認為,只要學習者保持誠實,新工具可以成為學習的增強劑,而非替代品。

最終,作者強調專案的真正價值不在於程式碼庫的完美,而在於每天堅持學習和記錄的過程。他鼓勵讀者利用AI作為輔助,但不要放棄親手實現和深入理解演算法的機會。