目录
第一部分 比特和字节:编程实践 1
01 选择编程语言 2
02 回归本原 4
03 乔尔测试 12
04 软件开发者不可不知的Unicode和字符集知识(别找借口!) 24
05 轻松撰写功能规格书 第一部分:为什么要写 34
06 轻松撰写功能规格书 第二部分:什么是规格书 40
07 轻松撰写功能规格书 第三部分:但是……怎么做 49
08 轻松撰写功能规格书 第四部分:写作技巧 53
09 轻松掌控软件开发进度 60
10 每日编译是你的朋友 70
11 完美主义者是如何修复bug的 75
12 五个世界 80
13 纸上原型设计 87
14 别被架构航天员忽悠了 89
15 干扰射击 93
16 软件开发是一门手艺活 96
17 计算机科学的三个错误观念 100
18 二元文化主义 105
19 自动从用户那里收集崩溃报告 111
第二部分 管理开发者 121
20 非正式面试指南 122
21 奖励有害论 134
22 不设专职测试人员的5条(错误)理由 137
23 任务切换有害论 143
24 永远不要做的事情(第一部分) 146
25 揭开冰山之谜 150
26 抽象必漏定律 156
27 帕默斯顿勋爵谈编程 161
28 评估机能失调 166
第三部分 乔尔语录:中心明确的胡思乱想 169
29 里克?查普曼在“寻找愚蠢” 170
30 这个国家的狗要做什么工作 174
31 普通程序员如何改善团队工作方式 179
32 两个故事 184
33 巨无霸汉堡vs.“原味主厨” 188
34 凡事没有看上去的那么简单 193
35 为NIH综合症说两句 197
36 企业发展战略系列一:本杰瑞vs.亚马逊 200
37 企业发展战略系列二:先有鸡还是先有蛋 207
38 企业发展战略系列三:让我回到过去 214
39 企业发展战略系列四:膨件和二八法则 219
40 企业发展战略系列五:开源软件经济学 223
41 祸不单行的一周 231
42 微软是如何输掉API战争的 235
第四部分 关于.NET的闲言碎语 249
43 走火入魔的微软 250
44 我们向.NET迁移的策略 255
45 能给我一个链接器吗 258
第五部分 附录 261
“乔尔问答”精选 262