> For the complete documentation index, see [llms.txt](https://braydie.gitbook.io/how-to-be-a-programmer/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://braydie.gitbook.io/how-to-be-a-programmer/zh-traditional/summary.md).

# 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)
