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作為輔助,但不要放棄親手實現和深入理解算法的機會。