# Intro * 自我介紹:Pete,13+ 年專職開發,指導過許多初學者 * 目標:節省新手多年摸索時間,給卡關與自我懷疑者實用重點 # 1. 你不需要全都會 * 不必背熟整個語言,重點是理解模式與概念 * 能有效搜尋、推理、在壓力下保持冷靜才是關鍵 * 查基本語法很正常,資深開發也常用 Google # 2. 先學「如何學」 * 只看教學影片無法建立獨立產出能力 * 學語言要「開口說」,學程式要「動手碼」 * 原則:看教學 1 小時 → 純實作 4 小時 * 允許卡關、查資料、把東西弄壞再修 # 3. 完美主義是陷阱 * 追求完美會拖延與消耗動能(如為命名糾結) * 先完成、先上線,再迭代改善 * 可運行的「醜」程式,比從未發布的「美」程式更有價值 # 4. 你永遠不會「準備好」 * 等到有把握才開始=永遠不開始 * 自信來自實作與交付,而非等待 * 從小步開始;答應機會、邊做邊查也行 # 5. 真本事是解題力 * 核心是把需求拆成可實作的小塊與持續調試 * 像偵探:提問、追線索、建立假設再驗證 * 少背語法,多理解「為什麼這樣寫」 # 6. 沒人關心你的程式碼,他們只在乎成果 * 用戶/客戶要的是功能可用、體驗流暢 * 架構與抽象是手段,不是目的 * 像水管:重點是水要流;價值優先於炫技 # 7. 倦怠是真實的 * 長時間硬撐不是實力,會摧毀學習與產出 * 設定界線、規律休息、維持可持續節奏 * 把大腦當電池管理,保留能量比盲目加班重要 # 8 協作與溝通 * 明確化需求與驗收條件,將模糊字詞轉成可量測指標 * 提前暴露風險與阻塞點,附帶替代方案與影響範圍 * PR 說明聚焦變更目的、影響面、回滾方式與測試重點 * 會議輸出行動清單、負責人、期限與追蹤方式 * 對話以案例與數據支撐,不用主觀形容詞 # 9 文件與可維運 * 文件只寫「他人明天會用到」的內容:啟動、部署、設定、常見故障 * 用最小可行 Runbook:症狀→診斷步驟→修復→預防 * 以範例驅動說明:命令、輸入輸出、錯誤碼對照 * 版本化文件並與程式碼同倉更新 * 把架構決策記錄為 ADR,包含背景、取捨、拒絕的方案 # 10 測試與可觀測性 * 先測核心路徑與邊界條件,再補次要案例 * 以可觀測性三件套:日誌、指標、追蹤,建立問題定位最短路徑 * 針對易壞處加契約測試與防腐層 * 對外部依賴以測試替身與可靠性模式(重試、退避、斷路器) * 以閾值告警替代「憑感覺」,避免噪音與告警疲勞 # 11 版本控制與流程 * 小步提交:一次只做一件事並寫清楚意圖 * 使用功能分支與特性旗標,允許未完成功能安全上線 * PR 小而頻繁,寧可多個小變更也不要一次巨型變更 * Rebase 保持線性歷史;重大變更保留合併記錄與說明 * 針對 Hotfix 規範提交流程與回溯策略 # 12 架構與取捨 * 以當前需求與可預見成長曲線選擇最簡架構 * 優先資料流清晰與邊界隔離,再談框架與花式模式 * 設計可替換點:介面化外部依賴、資料庫存取、訊息層 * 以延遲綁定取代超前抽象,避免架構債 * 用延展性指標驗證:新增一功能需改動的檔案數與模組數 # 13 複雜度控管 * 先移除需求與分支再寫程式,能不做就不做 * 偏好純函式與局部狀態,減少共享可變狀態 * 建立「九個以內」的模組/函式規模上限,超過即拆分 * 為核心路徑設定循環複雜度與函式行數閾值 * 用表驅動與資料驅動替代巢狀條件 # 14 估時與範圍管理 * 先列前置條件與未知項,再估工時並加緩衝 * 將需求切成獨立可交付里程碑,逐段驗收 * 發現新風險時即時調整範圍或時程並同步利害關係人 * 用完成定義(DoD)避免「永遠快好了」 * 記錄實際花費與偏差原因,作為下一輪校準依據 # 15 除錯紀律 * 先可重現再修,寫出最小重現步驟 * 二分法定位:縮小時間、模組、輸入空間 * 加診斷日誌以事件時間線呈現,標註相同請求的追蹤 ID * 危險修補前先寫防倒退測試 * 事後回顧保留「根因、探測、修復、預防」四件事 # 16 安全與隱私 * 預設輸入皆不可信,統一在邊界做驗證與清洗 * 憑證與金鑰用密管而非環境變數裸存 * 最小權限原則套用到帳號、服務、資料表與網路 * 日誌脫敏與存留政策明確,避免洩露個資與秘密 * 依威脅模型加防線:速率限制、CSRF、CSP、內容驗證 # 17 效能優化原則 * 沒有量測不優化,先建立基準與目標 * 以 80/20 原則找熱點,優化最貴的前幾條路徑 * 先策略後技術:快取、批次、併發、靠近資料 * 監控四指標:延遲、吞吐、錯誤率、資源使用 * 每次優化都要附影響數據與回退計畫 # 18 工具化與自動化 * 把重複步驟轉為腳本或 Makefile/Taskfile * 本地一鍵啟動:種子資料、假服務、觀測工具一起起 * CI 檢查固定化:Lint、格式化、測試、型別、鏡像掃描 * 範本專案與 Snippet 輸出團隊最佳實踐 * 定期清理腳手架與依賴,減少隱性維護成本 # 19 作品集與職涯輸出 * 以真實問題與可量測成果呈現:改善延遲、降低錯誤率、提升轉換 * 每個專案附架構圖、決策取捨、指標前後對比與學到的教訓 * 公開最小重現與 Demo,降低審閱門檻 * 一頁式履歷聚焦最近與最相關輸出,移除無關噪音 * 維護技術文章與講稿存檔,作為能力證據鏈 # 20 代碼審查與知識共享 * 審查標準化:正確性、風險、可讀性、觀測點、回滾策略 * 提出具體改動建議與範例,避免抽象批評 * 以「問句」促進對齊:目的、假設、替代方案 * 定期做變更讀書會(變更導覽),擴散關鍵決策背景 * 把審查常見問題沉澱為規範與範本 # Recap * 不用全知 * 學會學習 * 完成勝於完美 * 先做再說 * 解題優先於語法 * 結果重於炫技 * 保護能量,避免倦怠