# How to be a Programmer 正體中文版

原文出自 <https://github.com/braydie/HowToBeAProgrammer> [![Creative Commons License](https://i.creativecommons.org/l/by-sa/4.0/88x31.png)](http://creativecommons.org/licenses/by-sa/4.0/)\
How To Be A Programmer: Community Version by Robert L. Read with Community is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/).

## 目錄

1. [入門](/how-to-be-a-programmer/zh/1-beginner.md)
   * 技能
     * [學習除錯](/how-to-be-a-programmer/zh-traditional/1-beginner/personal-skills/01-learn-to-debug.md)
     * [如何通過分割問題 Debug](/how-to-be-a-programmer/zh/1-beginner/personal-skills/02-how-to-debug-by-splitting-the-problem-space.md)
     * [如何移除一個錯誤](/how-to-be-a-programmer/zh/1-beginner/personal-skills/03-how-to-remove-an-error.md)
     * [如何使用日誌調試](/how-to-be-a-programmer/zh/1-beginner/personal-skills/04-how-to-debug-using-a-log.md)
     * [如何理解性能問題](/how-to-be-a-programmer/zh/1-beginner/personal-skills/05-how-to-understand-performance-problems.md)
     * [如何解決性能問題](/how-to-be-a-programmer/zh/1-beginner/personal-skills/06-how-to-fix-performance-problems.md)
     * [如何優化循環](/how-to-be-a-programmer/zh/1-beginner/personal-skills/07-how-to-optimize-loops.md)
     * [如何處理 I/O 開銷](/how-to-be-a-programmer/zh/1-beginner/personal-skills/08-how-to-deal-with-io-expense.md)
     * [如何管理內存](/how-to-be-a-programmer/zh/1-beginner/personal-skills/09-how-to-manage-memory.md)
     * [如何處理偶現的 Bug](/how-to-be-a-programmer/zh/1-beginner/personal-skills/10-how-to-deal-with-intermittent-bugs.md)
     * [如何學習設計技能](/how-to-be-a-programmer/zh/1-beginner/personal-skills/11-how-to-learn-design-skills.md)
     * [如何進行實驗](/how-to-be-a-programmer/zh/1-beginner/personal-skills/12-how-to-conduct-experiments.md)
   * 團隊技能
     * [為什麼預估很重要](/how-to-be-a-programmer/zh/1-beginner/team-skills/01-why-estimation-is-important.md)
     * [如何預估編程時間](/how-to-be-a-programmer/zh/1-beginner/team-skills/02-how-to-estimate-programming-time.md)
     * [如何搜索信息](/how-to-be-a-programmer/zh/1-beginner/team-skills/03-how-to-find-out-information.md)
     * [如何把人們作為信息源](/how-to-be-a-programmer/zh/1-beginner/team-skills/04-how-to-utilize-people-as-information-sources.md)
     * [如何優雅地寫文檔](/how-to-be-a-programmer/zh/1-beginner/team-skills/05-how-to-document-wisely.md)
     * [如何在垃圾代碼上工作](/how-to-be-a-programmer/zh/1-beginner/team-skills/06-how-to-work-with-poor-code.md)
     * [如何使用源代碼控制](/how-to-be-a-programmer/zh/1-beginner/team-skills/07-how-to-use-source-code-control.md)
     * [如何進行單元測試](/how-to-be-a-programmer/zh/1-beginner/team-skills/08-how-to-unit-test.md)
     * [毫無頭緒?休息一下](/how-to-be-a-programmer/zh/1-beginner/team-skills/09-take-breaks-when-stumped.md)
     * [如何決定下班時間](/how-to-be-a-programmer/zh/1-beginner/team-skills/10-how-to-recognize-when-to-go-home.md)
     * [如何與不好相處的人相處](/how-to-be-a-programmer/zh/1-beginner/team-skills/11-how-to-deal-with-difficult-people.md)
2. [進階](/how-to-be-a-programmer/zh/2-intermediate.md)
   * 個人技能
     * [如何保持活力](/how-to-be-a-programmer/zh/2-intermediate/personal-skills/01-how-to-stay-motivated.md)
     * [如何才能被廣泛信任](/how-to-be-a-programmer/zh/2-intermediate/personal-skills/02-how-to-be-widely-trusted.md)
     * [在時間和空間之間該如何權衡](/how-to-be-a-programmer/zh/2-intermediate/personal-skills/03-how-to-tradeoff-time-vs-space.md)
     * [如何進行壓力測試](/how-to-be-a-programmer/zh/2-intermediate/personal-skills/04-how-to-stress-test.md)
     * [如何權衡簡潔與抽象](/how-to-be-a-programmer/zh/2-intermediate/personal-skills/05-how-to-balance-brevity-and-abstraction.md)
     * [如何學習新技能](/how-to-be-a-programmer/zh/2-intermediate/personal-skills/06-how-to-learn-new-skills.md)
     * [學會打字](/how-to-be-a-programmer/zh/2-intermediate/personal-skills/07-learn-to-type.md)
     * [如何進行集成測試](/how-to-be-a-programmer/zh/2-intermediate/personal-skills/08-how-to-do-integration-testing.md)
     * [交流語言](/how-to-be-a-programmer/zh/2-intermediate/personal-skills/09-communication-languages.md)
     * [重型工具](/how-to-be-a-programmer/zh/2-intermediate/personal-skills/10-heavy-tools.md)
     * [如何分析數據](/how-to-be-a-programmer/zh/2-intermediate/personal-skills/11-how-to-analyze-data.md)
   * 團隊技能
     * [如何管理開發時間](/how-to-be-a-programmer/zh/2-intermediate/team-skills/01-how-to-manage-development-time.md)
     * [如何管理第三方軟件風險](/how-to-be-a-programmer/zh/2-intermediate/team-skills/02-how-to-manage-third-party-software-risks.md)
     * [如何管理諮詢](/how-to-be-a-programmer/zh/2-intermediate/team-skills/03-how-to-manage-consultants.md)
     * [如何適度交流](/how-to-be-a-programmer/zh/2-intermediate/team-skills/04-how-to-communicate-the-right-amount.md)
     * [如何直言異議以及如何避免](/how-to-be-a-programmer/zh/2-intermediate/team-skills/05-how-to-disagree-honestly-and-get-away-with-it.md)
   * 評判
     * [如何權衡開發品質與開發時間](/how-to-be-a-programmer/zh/2-intermediate/judgment/01-how-to-tradeoff-quality-against-development-time.md)
     * [如何管理軟件系統依賴](/how-to-be-a-programmer/zh/2-intermediate/judgment/02-how-to-manage-software-system-dependence.md)
     * [如何評判一個軟件是否太不成熟了](/how-to-be-a-programmer/zh/2-intermediate/judgment/03-how-to-decide-if-software-is-too-immature.md)
     * [如何決定購買還是構建](/how-to-be-a-programmer/zh/2-intermediate/judgment/04-how-to-make-a-buy-vs-build-decision.md)
     * [如何專業地成長](/how-to-be-a-programmer/zh/2-intermediate/judgment/05-how-to-grow-professionally.md)
     * [如何評估面試者](/how-to-be-a-programmer/zh/2-intermediate/judgment/06-how-to-evaluate-interviewees.md)
     * [如何決定什麼時候使用奇妙的計算機科學](/how-to-be-a-programmer/zh/2-intermediate/judgment/07-how-to-know-when-to-apply-fancy-computer-science.md)
     * [如何與非工程師交談](/how-to-be-a-programmer/zh/2-intermediate/judgment/08-how-to-talk-to-non-engineers.md)
3. [高級](/how-to-be-a-programmer/zh/3-advanced.md)
   * 技術評判
     * [如何從不可能中找到困難的部分](/how-to-be-a-programmer/zh/3-advanced/technical-judgment/01-how-to-tell-the-hard-from-the-impossible.md)
     * [如何使用嵌入型語言](/how-to-be-a-programmer/zh/3-advanced/technical-judgment/02-how-to-utilize-embedded-languages.md)
     * [選擇語言](/how-to-be-a-programmer/zh/3-advanced/technical-judgment/03-choosing-languages.md)
   * 機智地妥協
     * [如何與時間壓力作鬥爭](/how-to-be-a-programmer/zh/3-advanced/compromising-wisely/01-how-to-fight-schedule-pressure.md)
     * [如何理解用戶](/how-to-be-a-programmer/zh/3-advanced/compromising-wisely/02-how-to-understand-the-user.md)
     * [如何獲得晉升](/how-to-be-a-programmer/zh/3-advanced/compromising-wisely/03-how-to-get-a-promotion.md)
   * 服務你的團隊
     * [如何發展才能](/how-to-be-a-programmer/zh/3-advanced/serving-your-team/01-how-to-develop-talent.md)
     * [如何選擇工作內容](/how-to-be-a-programmer/zh/3-advanced/serving-your-team/02-how-to-choose-what-to-work-on.md)
     * [如何讓你隊友的價值最大化](/how-to-be-a-programmer/zh/3-advanced/serving-your-team/03-how-to-get-the-most-from-your-teammates.md)
     * [如何劃分問題](/how-to-be-a-programmer/zh/3-advanced/serving-your-team/04-how-to-divide-problems-up.md)
     * [如何處理無趣的問題](/how-to-be-a-programmer/zh/3-advanced/serving-your-team/05-how-to-handle-boring-tasks.md)
     * [如何為工程獲取支持](/how-to-be-a-programmer/zh/3-advanced/serving-your-team/06-how-to-gather-support-for-a-project.md)
     * [如何發展一個系統](/how-to-be-a-programmer/zh/3-advanced/serving-your-team/07-how-to-grow-a-system.md)
     * [如何有效地溝通](/how-to-be-a-programmer/zh/3-advanced/serving-your-team/08-how-to-communicate-well.md)
     * [如何告訴人們他們不想聽的東西](/how-to-be-a-programmer/zh/3-advanced/serving-your-team/09-how-to-tell-people-things-they-dont-want-to-hear.md)
     * [如何處理管理神話](/how-to-be-a-programmer/zh/3-advanced/serving-your-team/10-how-to-deal-with-managerial-myths.md)
     * [如何處理混亂的組織](/how-to-be-a-programmer/zh/3-advanced/serving-your-team/11-how-to-deal-with-organizational-chaos.md)
4. [詞彙表](/how-to-be-a-programmer/zh/4-glossary.md)
5. [附錄 A - 書籍/網站](/how-to-be-a-programmer/zh/5-bibliography.md)
6. [附錄 B - 歷史 (至2016年1月)](/how-to-be-a-programmer/zh/6-history.md)
7. [附錄 C - 貢獻 (至2016年1月)](broken://pages/-M5LubVtz23qrlA4Y8wk)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/summary.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
