第1章 引言 1
1.1 谁是21世纪的程序员 2
1.2 吸取第一手教训 3
1.3 这本书写的是我们自己 4
第2章 比喻 5
第1篇 谨慎使用比喻 7
第2篇 规划完备,然后开工 8
第3篇 发行不过是第1版 10
第4篇 “象牙塔”架构师的传说 12
第5篇 扔掉旧代码 15
第6篇 多元化胜于专业化 17
第7篇 比喻渐欲迷人眼 19
第3章 动力 21
第8篇 工作即福利 22
第9篇 从喜欢处入手 25
第10篇 莫求全 27
第11篇 休止一下 28
第12篇 早起先测试 30
第13篇 别在卧室里工作 32
第14篇 第一印象也就那么回事 34
第15篇 软件发行的情感价值 38
第16篇 找个争论话题 39
第4章 生产力 41
第17篇 对消闲项目坚决说不 42
第18篇 限制所有的因素 46
第19篇 去掉时间表中的细节 48
第20篇 每天改进产品的两个方面 50
第21篇 为良好的工作环境投资 52
第22篇 列一张个人待办事项清单 56
第23篇 和团队一起安排免打扰时间 62
第24篇 采用自治小团队的工作形式 65
第25篇 提高生产力,避谈“我们” 67
第5章 复杂性 71
第26篇 “嗅”出坏的复杂性 73
第27篇 关于“简单”的悖论 75
第28篇 复杂性就像挑棍游戏 78
第29篇 把复杂性藏起来 79
第30篇 “难编”可能意味着“难用” 81
第31篇 知道何时重构 86
第32篇 确定编程的节奏 92
第6章 教学 94
第33篇 教学不同于编程 95
第34篇 当心“知识魔咒” 97
第35篇 用浅显的例子 99
第36篇 为简化不妨说谎 102
第37篇 鼓励自主思维 104
第7章 客户 106
第38篇 刁钻的客户无处不在 107
第39篇 软件黑魔法揭秘 108
第40篇 设定软件的目标 112
第41篇 激发热情,相信自己 113
第42篇 宽容大度,和蔼可亲 115
第43篇 价值远不只是工时 116
第44篇 尊重你的项目经理 120
第8章 代码 123
第45篇 写代码是不得已而为之 124
第46篇 拿来主义的文化 126
第47篇 代码是最好的初级程序员 130
第48篇 把机器和人的工作区分开 135
第49篇 从核心开始生成代码 140
第50篇 自主开发的情形 147
第9章 自豪感 151
9.1 形象是个问题 153
9.2 烹饪行业的一课 154
参考文献 159