---
# System prepended metadata

title: "\U0001F680 Golang 後端實戰進階：五個月計畫 (Go 語言版)"

---

# 🚀 Golang 零經驗轉職：五個月衝刺計畫（Junior 面試強化版）

## 🎯 總體時程概覽

| 📅 期間 | 階段名稱 | 重點技術棧 | 學習重點與面試準備 |
| :--- | :--- | :--- | :--- |
| **1 月** | **語法奠基期** | Go 基礎、**Pointer**、Struct、**Interface**、Git | **重點：** 建立強型別思維，理解「記憶體位置」與「介面解耦」。<br>**面試必考：** 能口述「值傳遞 vs 指標傳遞」的差異與應用場景。 |
| **2 月** | **Web 實戰期** | HTTP/REST、SQL、**Gin**、**GORM**、**JWT** | **重點：** 完成具備會員登入與權限驗證的 **RESTful API 專案**。<br>**面試必考：** 理解 HTTP 狀態碼、Middleware 運作原理與資料庫 CRUD。 |
| **3 月** | **架構與併發** | **Clean Architecture**、Unit Test、**Goroutine**、Channel | **重點：** 將專案重構為乾淨架構，學習撰寫測試並加入併發任務。<br>**面試必考：** 為什麼要用 Interface 做測試 Mock？如何避免 Deadlock？ |
| **4 月** | **面試特訓期** | **Redis**、**Docker**、**DSA (演算法)**、Mock Interview | **重點：** 加上快取優化與容器化部署。大量練習 LeetCode Easy/Medium。<br>**面試必考：** Redis 常見場景、Docker 基礎指令、演算法邏輯說明。 |
| **5 月** | **正式衝刺期** | 投遞履歷、技術面談、複盤修正 | **重點：** 針對面試遇到的弱點快速補強，保持手感並持續滾動修正。 |

---

## ✅ 詳細里程碑與面試準備清單

### 📚 階段一：語法奠基 (1 月)
* [x] **T1.1** 環境安裝與 `go mod` 模組管理。
* [x] **T1.2** 掌握基礎：變數宣告、迴圈 (Go 只有 for)、判斷式。
* [x] **T1.3** **核心重點：** 深入理解 **Slice** 的底層擴容機制（len vs cap）。
* [x] **T1.4** **核心重點：** 搞懂 **Pointer (指標)**，知道什麼時候該傳位址。
* [ ] **T1.5** 學習 **Interface**：理解如何透過介面達成多型與解耦。
* [ ] **T1.6** 實作一個 CLI 版的小工具（如：匯率換算器或文件掃描器）。

### 💻 階段二：Web 實戰與認證 (2 月)
* [ ] **T2.1** 學習 HTTP 基礎（Method, Header, Status Code）。 (2/2~8)
* [ ] **T2.2** 掌握 **Gin 框架**：路由 Grouping、參數綁定 (Binding)。 (2/9~22)
* [ ] **T2.3** 掌握 **GORM**：Model 定義、AutoMigrate、關聯查詢 (Preload)。
* [ ] **T2.4** **求職關鍵：** 實作 **JWT (JSON Web Token)** 登入驗證與 Middleware。 (2/23~25)
* [ ] **T2.5** **專案實作：** 完成一個「電商後台 API」或「個人部落格系統」。 2/26~

### 🏗️ 階段三：架構、併發與測試 (3 月)
* [ ] **T3.1** **架構升級：** 學習 **Clean Architecture**（將邏輯拆分為 Repository, Usecase, Handler）。
* [ ] **T3.2** **併發實作：** 使用 Goroutine + Channel 處理非同步任務（如：註冊後發送電子郵件）。
* [ ] **T3.3** **品質保證：** 使用 Go 內建 `testing` 套件撰寫單元測試。
* [ ] **T3.4** 掌握 Context：學習如何正確控制超時 (Timeout) 與取消訊號。

### 📈 階段四：效能優化與面試衝刺 (4 月)
* [ ] **T4.1** **效能加分：** 引入 **Redis** 實作快取機制 (Cache Aside Pattern)。
* [ ] **T4.2** **部署基礎：** 撰寫 `Dockerfile` 與 `docker-compose.yml`。
* [ ] **T4.3** **演算法練習：** 每天 1-2 題 LeetCode (重點：Array, Hash Map, String)。
* [ ] **T4.4** **面試模擬：** 準備自我介紹、轉職動機、專案技術挑戰 (S.T.A.R. 原則)。

---

## 💡 給 Junior 的面試錦囊
1. **不要只會寫 Code：** 必須能解釋「為什麼這樣寫」。
2. **注重風格：** 程式碼要符合 `gofmt` 規範，變數命名要精確。
3. **基礎要穩：** 對於零經驗者，面試官更看重你對 HTTP、資料庫索引、記憶體概念的基本功。