《程序员的职业素养》PDF下载

  • 购买积分:9 如何计算积分?
  • 作  者:(美)马丁著;章显洲,余晟译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2012
  • ISBN:9787115291578
  • 页数:178 页
图书介绍:本书是编程大师40余年编程生涯的心得体会,讲解成为真正的程序员需要什么样的态度、原则,要采取什么样的行动。作者以自己以及身边人走过的弯路、犯过的错误为例,意在为后来人引路,助其职业生涯迈上更高台阶。

第1章 专业主义 1

1.1清楚你要什么 2

1.2担当责任 2

1.3首先,不行损害之事 4

1.3.1不要破坏软件功能 4

1.3.2不要破坏结构 7

1.4职业道德 8

1.4.1了解你的领域 10

1.4.2坚特学习 11

1.4.3练习 11

1.4.4合作 12

1.4.5辅导 12

1.4.6了解业务领域 13

1.4.7与雇主/客户保持一致 13

1.4.8谦逊 13

1.5参考文献 14

第2章说“不” 15

2.1对抗角色 17

2.2高风险时刻 20

2.3要有团队精神 22

2.3.1试试看 24

2.3.2消极对抗 25

2.4说“是”的成本 27

2.5如何写出好代码 34

第3章说“是” 37

3.1承诺用语 39

3.1.1识别“缺乏承诺”的征兆 40

3.1.2真正的承诺听起来是怎样的 41

3.1.3总结 43

3.2学习如何说“是” 43

3.2.1“试试”的另一面 43

3.2.2坚守原则 44

3.3结论 47

第4章 编码 48

4.1做好准备 49

4.1.1凌晨3点写出的代码 50

4.1.2焦虑时写下的代码 51

4.2流态区 53

4.2.1音乐 54

4.2.2中断 55

43阻塞 55

4.4调试 57

4.5保持节奏 60

4.5.1知道何时应该离开一会 60

4.5.2开车回家路上 61

4.5.3洗澡 61

4.6进度延迟 61

4.6.1期望 62

4.6.2盲目冲刺 62

4.6.3加班加点 63

4.6.4交付失误 63

4.6.5定义“完成” 64

4.7帮助 64

4.7.1帮助他人 64

4.7.2接受他人的帮助 65

4.7.3辅导 66

4.8参考文献 66

第5章 测试驱动开发 67

5.1此事已有定论 69

5.2 TDD的三项法则 69

5.3 TDD的优势 70

5.3.1确定性 70

5.3.2缺陷注入率 71

5.3.3勇气 71

5.3.4文档 72

5.3.5设计 72

5.3.6专业人士的选择 73

5.4 TDD的局限 73

5.5参考文献 74

第6章 练习 75

6.1引子 75

6.1.1 10的22次方 76

6.1.2转变 77

6.2编程柔道场 79

6.2.1卡塔 80

6.2.2瓦萨 81

6.2.3自由练习 81

6.3自身经验的拓展 82

6.3.1开源 82

6.3.2关于练习的职业道德 82

6.4结论 83

6.5参考文献 83

第7章 验收测试 84

7.1需求的沟通 84

7.1.1过早精细化 86

7.1.2迟来的模糊性 87

7.2验收测试 89

7.2.1“完成”的定义 89

7.2.2沟通 91

7.2.3自动化 92

7.2.4额外工作 93

7.2.5验收测试什么时候写,由谁来写 93

7.2.6开发人员的角色 94

7.2.7测试的协商与被动推进 95

7.2.8验收测试和单元测试 96

7.2.9图形界面及其他复杂因素 97

7.2.10持续集成 98

7.3结论 98

第8章 测试策略 99

8.1 QA应该找不到任何错误 100

8.1.1 QA也是团队的一部分 100

8.1.2需求规约定义者 100

8.1.3特性描述者 100

8.2自动化测试金字塔 101

8.2.1单元测试 101

8.2.2组件测试 102

8.2.3集成测试 103

8.2.4系统测试 104

8.2.5人工探索式测试 104

8.3结论 105

8.4参考文献 105

第9章 时间管理 106

9.1会议 107

9.1.1拒绝 107

9.1.2离席 108

9.1.3确定议程与目标 109

9.1.4立会 109

9.1.5迭代计划会议 109

9.1.6迭代回顾和DEMO展示 110

9.1.7争论/反对 110

9.2注意力点数 111

9.2.1睡眠 112

9.2.2咖啡因 112

9.2.3恢复 112

9.2.4肌肉注意力 112

9.2.5输入与输出 113

9.3时间拆分和番茄工作法 113

9.4要避免的行为 114

9.5死胡同 115

9.6泥潭 115

9.7结论 116

第10章 预估 117

10.1什么是预估 119

10.1.1承诺 119

10.1.2预估 120

10.13暗示性承诺 121

10.2 PERT 122

10.3预估任务 125

10.4大数定律 127

10.5结论 127

10.6参考文献 128

第11章 压力 129

11.1避免压力 131

11.1.1承诺 131

11.1.2保持整洁 132

11.1.3危机中的纪律 132

11.2应对压力 133

11.2.1不要惊慌失措 133

11.2.2沟通 133

11.2.3依靠你的纪律原则 133

11.2.4寻求帮助 134

11.3结论 134

第12章 协作 135

12.1程序员与人 137

12.1.1程序员与雇主 137

12.1.2程序员与程序员 140

12.2小脑 142

12.3结论 143

第13章 团队与项目 144

13.1只是简单混合吗 144

13.1.1有凝聚力的团队 145

13.1.2如何管理有凝聚力的团队 146

13.1.3项目承包人的困境 147

13.2结论 148

13.3参考文献 148

第14章 辅导、学徒期与技艺 149

14.1失败的学位教育 149

14.2辅导 150

14.2.1 DIGI-COMP I,我的第一台计算机 150

14.2.2高中时代的ECP-18 152

14.2.3非常规辅导 154

14.2.4艰难的锤炼 155

14.3学徒期 156

14.3.1软件学徒期 158

14.3.2现实情况 159

14.4技艺 160

14.5结论 161

附录 工具 162