今天我要來跟大家推薦一個我覺得蠻有趣的專案,叫做 Hello 算法。
資訊類科系的學生們,基本上都會上到資料結構與演算法的課程,而這個專案提供了一個非常淺顯易懂且具互動性的網頁,可以讓剛開始學習 資料結構與演算法 的初學者輕鬆上手。

專案介紹
專案網址: https://github.com/krahets/hello-algo
Hello 算法 - 網頁: https://www.hello-algo.com/
根據專案的 README 文件所述,此專案的目的是在打造一個開源免費、新手友善的資料結構與演算法入門教學。個人感覺 Hello 算法 在這個部分做的真的很好,不只步驟講解清楚,也提供了範例程式碼參考。
以下就讓我們詳細看看專案的網站長什麼樣子。

網站頁面
網站的介面相當的簡單明瞭,左側是全部目錄,中間是內容,右側是該章節的目錄。

提供詳細步驟圖解
網站上每個演算法的頁面都有清楚詳細的步驟分解圖,讓使用者可以完整了解演算法的運作流程。

提供程式語言實作範例
此外,網站也提供了各式程式語言的實作範例,像是 Python、C++、JavaScript 等常見語言基本上都有涵蓋。

提供可視化執行
我個人是之前就有用過這個專案,但最近再次打開時發現,網站新增了一個 可視化執行 的功能。透過這項功能,我們可以觀察程式執行時,迴圈的每個步驟、變數如何改變、以及 print 的輸出結果等。這對於理解演算法的執行過程有很大的幫助。
提供 PDF 版
Hello 算法這個專案,其實也有提供 PDF 版可供選擇,讓我們可以在任何時候學習。但我個人會比較推薦大家使用網頁版,因為它的互動設計做的相當好。

小缺點
如果要提可能的小缺點,對於台灣人來說,大概就是專有名詞的翻譯與台灣不同,像是 stack/queue 台灣會翻 堆疊/佇列,對岸會用栈/队列;hash 台灣會翻雜湊,對岸則是翻成哈希。當然,這邊不是要說哪種翻譯比較好,只是很單純的考量到在跟教授或同學等人對話時,使用對岸的翻法,對方未必會知道你想表達的意思。

End
以上就是Hello 算法的簡單介紹,這個真的是互動做得非常好的,相關知識也講解非常詳細的資料結構與演算法學習專案。