hello-algo/zh-hant/docs/chapter_preface/suggestions.md
Yudong Jin 5f7385c8a3
feat: Traditional Chinese version (#1163)
* First commit

* Update mkdocs.yml

* Translate all the docs to traditional Chinese

* Translate the code files.

* Translate the docker file

* Fix mkdocs.yml

* Translate all the figures from SC to TC

* 二叉搜尋樹 -> 二元搜尋樹

* Update terminology.

* Update terminology

* 构造函数/构造方法 -> 建構子
异或 -> 互斥或

* 擴充套件 -> 擴展

* constant - 常量 - 常數

* 類	-> 類別

* AVL -> AVL 樹

* 數組 -> 陣列

* 係統 -> 系統
斐波那契數列 -> 費波那契數列
運算元量 -> 運算量
引數 -> 參數

* 聯絡 -> 關聯

* 麵試 -> 面試

* 面向物件 -> 物件導向
歸併排序 -> 合併排序
范式 -> 範式

* Fix 算法 -> 演算法

* 錶示 -> 表示
反碼 -> 一補數
補碼 -> 二補數
列列尾部 -> 佇列尾部
區域性性 -> 區域性
一摞 -> 一疊

* Synchronize with main branch

* 賬號 -> 帳號
推匯 -> 推導

* Sync with main branch

* First commit

* Update mkdocs.yml

* Translate all the docs to traditional Chinese

* Translate the code files.

* Translate the docker file

* Fix mkdocs.yml

* Translate all the figures from SC to TC

* 二叉搜尋樹 -> 二元搜尋樹

* Update terminology

* 构造函数/构造方法 -> 建構子
异或 -> 互斥或

* 擴充套件 -> 擴展

* constant - 常量 - 常數

* 類	-> 類別

* AVL -> AVL 樹

* 數組 -> 陣列

* 係統 -> 系統
斐波那契數列 -> 費波那契數列
運算元量 -> 運算量
引數 -> 參數

* 聯絡 -> 關聯

* 麵試 -> 面試

* 面向物件 -> 物件導向
歸併排序 -> 合併排序
范式 -> 範式

* Fix 算法 -> 演算法

* 錶示 -> 表示
反碼 -> 一補數
補碼 -> 二補數
列列尾部 -> 佇列尾部
區域性性 -> 區域性
一摞 -> 一疊

* Synchronize with main branch

* 賬號 -> 帳號
推匯 -> 推導

* Sync with main branch

* Update terminology.md

* 操作数量(num. of operations)-> 操作數量

* 字首和->前綴和

* Update figures

* 歸 -> 迴
記憶體洩漏 -> 記憶體流失

* Fix the bug of the file filter

* 支援 -> 支持
Add zh-Hant/README.md

* Add the zh-Hant chapter covers.
Bug fixes.

* 外掛 -> 擴充功能

* Add the landing page for zh-Hant version

* Unify the font of the chapter covers for the zh, en, and zh-Hant version

* Move zh-Hant/ to zh-hant/

* Translate terminology.md to traditional Chinese
2024-04-06 02:30:11 +08:00

247 lines
7.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 如何使用本書
!!! tip
為了獲得最佳的閱讀體驗,建議你通讀本節內容。
## 行文風格約定
- 標題後標註 `*` 的是選讀章節,內容相對困難。如果你的時間有限,可以先跳過。
- 專業術語會使用黑體(紙質版和 PDF 版)或新增下劃線(網頁版),例如<u>陣列array</u>。建議記住它們,以便閱讀文獻。
- 重點內容和總結性語句會 **加粗**,這類文字值得特別關注。
- 有特指含義的詞句會使用“引號”標註,以避免歧義。
- 當涉及程式語言之間不一致的名詞時,本書均以 Python 為準,例如使用 `None` 來表示“空”。
- 本書部分放棄了程式語言的註釋規範,以換取更加緊湊的內容排版。註釋主要分為三種類型:標題註釋、內容註釋、多行註釋。
=== "Python"
```python title=""
"""標題註釋,用於標註函式、類別、測試樣例等"""
# 內容註釋,用於詳解程式碼
"""
多行
註釋
"""
```
=== "C++"
```cpp title=""
/* 標題註釋,用於標註函式、類別、測試樣例等 */
// 內容註釋,用於詳解程式碼
/**
* 多行
* 註釋
*/
```
=== "Java"
```java title=""
/* 標題註釋,用於標註函式、類別、測試樣例等 */
// 內容註釋,用於詳解程式碼
/**
* 多行
* 註釋
*/
```
=== "C#"
```csharp title=""
/* 標題註釋,用於標註函式、類別、測試樣例等 */
// 內容註釋,用於詳解程式碼
/**
* 多行
* 註釋
*/
```
=== "Go"
```go title=""
/* 標題註釋,用於標註函式、類別、測試樣例等 */
// 內容註釋,用於詳解程式碼
/**
* 多行
* 註釋
*/
```
=== "Swift"
```swift title=""
/* 標題註釋,用於標註函式、類別、測試樣例等 */
// 內容註釋,用於詳解程式碼
/**
* 多行
* 註釋
*/
```
=== "JS"
```javascript title=""
/* 標題註釋,用於標註函式、類別、測試樣例等 */
// 內容註釋,用於詳解程式碼
/**
* 多行
* 註釋
*/
```
=== "TS"
```typescript title=""
/* 標題註釋,用於標註函式、類別、測試樣例等 */
// 內容註釋,用於詳解程式碼
/**
* 多行
* 註釋
*/
```
=== "Dart"
```dart title=""
/* 標題註釋,用於標註函式、類別、測試樣例等 */
// 內容註釋,用於詳解程式碼
/**
* 多行
* 註釋
*/
```
=== "Rust"
```rust title=""
/* 標題註釋,用於標註函式、類別、測試樣例等 */
// 內容註釋,用於詳解程式碼
/**
* 多行
* 註釋
*/
```
=== "C"
```c title=""
/* 標題註釋,用於標註函式、類別、測試樣例等 */
// 內容註釋,用於詳解程式碼
/**
* 多行
* 註釋
*/
```
=== "Kotlin"
```kotlin title=""
/* 標題註釋,用於標註函式、類別、測試樣例等 */
// 內容註釋,用於詳解程式碼
/**
* 多行
* 註釋
*/
```
=== "Ruby"
```ruby title=""
```
=== "Zig"
```zig title=""
// 標題註釋,用於標註函式、類別、測試樣例等
// 內容註釋,用於詳解程式碼
// 多行
// 註釋
```
## 在動畫圖解中高效學習
相較於文字,影片和圖片具有更高的資訊密度和結構化程度,更易於理解。在本書中,**重點和難點知識將主要透過動畫以圖解形式展示**,而文字則作為解釋與補充。
如果你在閱讀本書時,發現某段內容提供瞭如下圖所示的動畫圖解,**請以圖為主、以文字為輔**,綜合兩者來理解內容。
![動畫圖解示例](../index.assets/animation.gif)
## 在程式碼實踐中加深理解
本書的配套程式碼託管在 [GitHub 倉庫](https://github.com/krahets/hello-algo)。如下圖所示,**源程式碼附有測試樣例,可一鍵執行**。
如果時間允許,**建議你參照程式碼自行敲一遍**。如果學習時間有限,請至少通讀並執行所有程式碼。
與閱讀程式碼相比,編寫程式碼的過程往往能帶來更多收穫。**動手學,才是真的學**。
![執行程式碼示例](../index.assets/running_code.gif)
執行程式碼的前置工作主要分為三步。
**第一步:安裝本地程式設計環境**。請參照附錄所示的[教程](https://www.hello-algo.com/chapter_appendix/installation/)進行安裝,如果已安裝,則可跳過此步驟。
**第二步:克隆或下載程式碼倉庫**。前往 [GitHub 倉庫](https://github.com/krahets/hello-algo)。如果已經安裝 [Git](https://git-scm.com/downloads) ,可以透過以下命令克隆本倉庫:
```shell
git clone https://github.com/krahets/hello-algo.git
```
當然你也可以在下圖所示的位置點選“Download ZIP”按鈕直接下載程式碼壓縮包然後在本地解壓即可。
![克隆倉庫與下載程式碼](suggestions.assets/download_code.png)
**第三步:執行源程式碼**。如下圖所示,對於頂部標有檔案名稱的程式碼塊,我們可以在倉庫的 `codes` 檔案夾內找到對應的源程式碼檔案。源程式碼檔案可一鍵執行,將幫助你節省不必要的除錯時間,讓你能夠專注於學習內容。
![程式碼塊與對應的源程式碼檔案](suggestions.assets/code_md_to_repo.png)
除了本地執行程式碼,**網頁版還支持 Python 程式碼的視覺化執行**(基於 [pythontutor](https://pythontutor.com/) 實現)。如下圖所示,你可以點選程式碼塊下方的“視覺化執行”來展開檢視,觀察演算法程式碼的執行過程;也可以點選“全屏觀看”,以獲得更好的閱覽體驗。
![Python 程式碼的視覺化執行](suggestions.assets/pythontutor_example.png)
## 在提問討論中共同成長
在閱讀本書時,請不要輕易跳過那些沒學明白的知識點。**歡迎在評論區提出你的問題**,我和小夥伴們將竭誠為你解答,一般情況下可在兩天內回覆。
如下圖所示,網頁版每個章節的底部都配有評論區。希望你能多關注評論區的內容。一方面,你可以瞭解大家遇到的問題,從而查漏補缺,激發更深入的思考。另一方面,期待你能慷慨地回答其他小夥伴的問題,分享你的見解,幫助他人進步。
![評論區示例](../index.assets/comment.gif)
## 演算法學習路線
從總體上看,我們可以將學習資料結構與演算法的過程劃分為三個階段。
1. **階段一:演算法入門**。我們需要熟悉各種資料結構的特點和用法,學習不同演算法的原理、流程、用途和效率等方面的內容。
2. **階段二:刷演算法題**。建議從熱門題目開刷,先積累至少 100 道題目,熟悉主流的演算法問題。初次刷題時,“知識遺忘”可能是一個挑戰,但請放心,這是很正常的。我們可以按照“艾賓浩斯遺忘曲線”來複習題目,通常在進行 35 輪的重複後,就能將其牢記在心。推薦的題單和刷題計劃請見此 [GitHub 倉庫](https://github.com/krahets/LeetCode-Book)。
3. **階段三:搭建知識體系**。在學習方面,我們可以閱讀演算法專欄文章、解題框架和演算法教材,以不斷豐富知識體系。在刷題方面,可以嘗試採用進階刷題策略,如按專題分類、一題多解、一解多題等,相關的刷題心得可以在各個社群找到。
如下圖所示,本書內容主要涵蓋“階段一”,旨在幫助你更高效地展開階段二和階段三的學習。
![演算法學習路線](suggestions.assets/learning_route.png)