|
| 1 | +# How to be a Programmer 中文版 |
| 2 | +原文出自 https://github.com/braydie/HowToBeAProgrammer |
| 3 | +<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br /><span xmlns:dct="http://purl.org/dc/terms/" href="http://purl.org/dc/dcmitype/Text" property="dct:title" rel="dct:type">How To Be A Programmer: Community Version</span> by <span xmlns:cc="http://creativecommons.org/ns#" property="cc:attributionName">Robert L. Read with Community</span> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>. |
| 4 | + |
| 5 | +## 目录 |
| 6 | + |
| 7 | +1. [入门](1-Beginner) |
| 8 | + - 个人技能 |
| 9 | + - [学会Debug](1-Beginner/Personal-Skills/01-Learn To Debug.md) |
| 10 | + - [如何分离问题debug](1-Beginner/Personal-Skills/02-How to Debug by Splitting the Problem Space.md) |
| 11 | + - [如何移除错误](1-Beginner/Personal-Skills/03-How to Remove an Error.md) |
| 12 | + - [如何用Log来Debug](1-Beginner/Personal-Skills/04-How to Debug Using a Log.md) |
| 13 | + - [如何理解性能问题](1-Beginner/Personal-Skills/05-How to Understand Performance Problems.md) |
| 14 | + - [如何解决性能问题](1-Beginner/Personal-Skills/06-How to Fix Performance Problems.md) |
| 15 | + - [如何优化循环](1-Beginner/Personal-Skills/07-How to Optimize Loops.md) |
| 16 | + - [如何处理I/O开销](1-Beginner/Personal-Skills/08-How to Deal with IO Expense.md) |
| 17 | + - [如何管理内存](1-Beginner/Personal-Skills/09-How to Manage Memory.md) |
| 18 | + - [如何处理偶现的Bug](1-Beginner/Personal-Skills/10-How to Deal with Intermittent Bugs.md) |
| 19 | + - [如何学习设计技能](1-Beginner/Personal-Skills/11-How to Learn Design Skills.md) |
| 20 | + - [如何进行实验](1-Beginner/Personal-Skills/12-How to Conduct Experiments.md) |
| 21 | + - 团队技能 |
| 22 | + - [为什么预估很重要](1-Beginner/Team-Skills/01-Why Estimation is Important.md) |
| 23 | + - [如何预估编程时间](1-Beginner/Team-Skills/02-How to Estimate Programming Time.md) |
| 24 | + - [如何搜索信息](1-Beginner/Team-Skills/03-How to Find Out Information.md) |
| 25 | + - [如何把人们作为信息源](1-Beginner/Team-Skills/04-How to Utilize People as Information Sources.md) |
| 26 | + - [如何优雅地写文档](1-Beginner/Team-Skills/05-How to Document Wisely.md) |
| 27 | + - [如何在垃圾代码上工作](1-Beginner/Team-Skills/06-How to Work with Poor Code.md) |
| 28 | + - [如何使用源代码控制](1-Beginner/Team-Skills/07-How to Use Source Code Control.md) |
| 29 | + - [如何进行单元测试](1-Beginner/Team-Skills/08-How to Unit Test.md) |
| 30 | + - [没有思路的时候,休息一下](1-Beginner/Team-Skills/09-Take Breaks when Stumped.md) |
| 31 | + - [如何决定下班时间](1-Beginner/Team-Skills/10-How to Recognize When to Go Home.md) |
| 32 | + - [如何与不好相处的人相处](1-Beginner/Team-Skills/11-How to Deal with Difficult People.md) |
| 33 | +2. [进阶](2-Intermediate) |
| 34 | + - 个人技能 |
| 35 | + - [如何保持充满动力](2-Intermediate/Personal-Skills/01-How to Stay Motivated.md) |
| 36 | + - [如何才能被广泛信任](2-Intermediate/Personal-Skills/02-How to be Widely Trusted.md) |
| 37 | + - [在时间和空间之间该如何权衡](2-Intermediate/Personal-Skills/03-How to Tradeoff Time vs Space.md) |
| 38 | + - [如何进行压力测试](2-Intermediate/Personal-Skills/04-How to Stress Test.md) |
| 39 | + - [如何权衡简洁与抽象](2-Intermediate/Personal-Skills/05-How to Balance Brevity and Abstraction.md) |
| 40 | + - [如何学习新技能](2-Intermediate/Personal-Skills/06-How to Learn New Skills.md) |
| 41 | + - [学会打字](2-Intermediate/Personal-Skills/07-Learn to Type.md) |
| 42 | + - [如何进行集成测试](2-Intermediate/Personal-Skills/08-How to Do Integration Testing.md) |
| 43 | + - [交流语言](2-Intermediate/Personal-Skills/09-Communication Languages.md) |
| 44 | + - [重要的工具](2-Intermediate/Personal-Skills/10-Heavy Tools.md) |
| 45 | + - [如何分析数据](2-Intermediate/Personal-Skills/11-How to analyze data.md) |
| 46 | + - 团队技能 |
| 47 | + - [如何管理开发时间](2-Intermediate/Team-Skills/01-How to Manage Development Time.md) |
| 48 | + - [如何管理第三方软件风险](2-Intermediate/Team-Skills/02-How to Manage Third-Party Software Risks.md) |
| 49 | + - [如何管理咨询](2-Intermediate/Team-Skills/03-How to Manage Consultants.md) |
| 50 | + - [如何适度交流](2-Intermediate/Team-Skills/04-How to Communicate the Right Amount.md) |
| 51 | + - [如何直言不赞同以及如何避免](2-Intermediate/Team-Skills/05-How to Disagree Honestly and Get Away with It.md) |
| 52 | + - 评判 |
| 53 | + - [如何权衡开发质量与开发时间](2-Intermediate/Judgment/01-How to Tradeoff Quality Against Development Time.md) |
| 54 | + - [如何管理软件系统依赖](2-Intermediate/Judgment/02-How to Manage Software System Dependence.md) |
| 55 | + - [如何评判一个软件是否太不成熟了](2-Intermediate/Judgment/03-How to Decide if Software is Too Immature.md) |
| 56 | + - [如何决定购买还是构建](2-Intermediate/Judgment/04-How to Make a Buy vs Build Decision.md) |
| 57 | + - [如何专业地成长](2-Intermediate/Judgment/05-How to Grow Professionally.md) |
| 58 | + - [如何评估面试](2-Intermediate/Judgment/06-How to Evaluate Interviewees.md) |
| 59 | + - [如何知道何时实施昂贵的计算机科学](2-Intermediate/Judgment/07-How to Know When to Apply Fancy Computer Science.md) |
| 60 | + - [如何与非工程师交谈](2-Intermediate/Judgment/08-How to Talk to Non-Engineers.md) |
| 61 | +3. [高级](3-Advanced) |
| 62 | + - 技术评判 |
| 63 | + - [如何从不可能的事情中找到困难的地方](3-Advanced/Technical-Judgment/01-How to Tell the Hard From the Impossible.md) |
| 64 | + - [如何使用嵌入型语言](3-Advanced/Technical-Judgment/02-How to Utilize Embedded Languages.md) |
| 65 | + - [选择语言](3-Advanced/Technical-Judgment/03-Choosing Languages.md) |
| 66 | + - 机智地妥协 |
| 67 | + - [如何与时间压力作斗争](3-Advanced/Compromising-Wisely/01-How to Fight Schedule Pressure.md) |
| 68 | + - [如何理解用户](3-Advanced/Compromising-Wisely/02-How to Understand the User.md) |
| 69 | + - [如何获得晋升](3-Advanced/Compromising-Wisely/03-How to Get a Promotion.md) |
| 70 | + - 服务你的团队 |
| 71 | + - [如何发展才能](3-Advanced/Serving-Your-Team/01-How to Develop Talent.md) |
| 72 | + - [如何选择工作内容](3-Advanced/Serving-Your-Team/02-How to Choose What to Work On.md) |
| 73 | + - [如何从你的同伴身上获得最大收益](3-Advanced/Serving-Your-Team/03-How to Get the Most From Your Teammates.md) |
| 74 | + - [如何分割问题](3-Advanced/Serving-Your-Team/04-How to Divide Problems Up.md) |
| 75 | + - [如何处理无趣的问题](3-Advanced/Serving-Your-Team/05-How to Handle Boring Tasks.md) |
| 76 | + - [如何为一个工程获取支持](3-Advanced/Serving-Your-Team/06-How to Gather Support for a Project.md) |
| 77 | + - [如何发展一个系统](3-Advanced/Serving-Your-Team/07-How to Grow a System.md) |
| 78 | + - [如何高效交流](3-Advanced/Serving-Your-Team/08-How to Communicate Well.md) |
| 79 | + - [如何把别人不想听的话说给他们听](3-Advanced/Serving-Your-Team/09-How to Tell People Things They Don't Want to Hear.md) |
| 80 | + - [如何处理管理神话](3-Advanced/Serving-Your-Team/10-How to Deal with Managerial Myths.md) |
| 81 | + - [如何处理混乱的组织](3-Advanced/Serving-Your-Team/11-How to Deal with Organizational Chaos.md) |
| 82 | +4. [词汇表](4-Glossary.md) |
| 83 | +5. [附录 A - 书籍/网站](5-Bibliography.md) |
| 84 | +6. [附录 B - 历史 (至2016年1月)](6-History.md) |
| 85 | +6. [附录 C - 贡献 (至January 2016)](7-Contributions.md) |
| 86 | + |
| 87 | + |
| 88 | +<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br /><span xmlns:dct="http://purl.org/dc/terms/" href="http://purl.org/dc/dcmitype/Text" property="dct:title" rel="dct:type">How To Be A Programmer: Community Version</span> by <span xmlns:cc="http://creativecommons.org/ns#" property="cc:attributionName">Robert L. Read with Community</span> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>. |
| 89 | + |
0 commit comments