程序员的职业素养
17推荐 收藏
14.1K阅读
图灵程序设计丛书

程序员的职业素养

Robert Martin (作者) 章显洲 , 余晟 (译者)
本书是编程大师Bob 大叔40 余年编程生涯的心得体会, 讲解成为真正专业的程序员需要什么样的态度、原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来人引路,助其职业生涯迈上更高台阶。
本书适合所有程序员,也可供所有想成为具备职业素养的职场人士参考。

收藏本书能做什么?

有情况的时候会收到通知,比如电子书发布等。

PS:也会在图灵社区电报频道更新

纸质书
¥49.00

出版信息

同系列书

  • HTTP权威指南

    David Gourley   Brian Totty   Marjorie Sayer   Sailu Reddy   Anshu Aggarwal   陈涓   赵振平   译

    本书是HTTP及其相关核心Web技术方面的权威著作,主要介绍了Web应用程序是如何工作的,核心的因特网协议如何...

  • JavaScript高级程序设计(第3版)

    Nicholas C.Zakas   李松峰   曹力   译

    本书是JavaScript超级畅销书的新版。ECMAScript 5 和HTML5在标准之争中双双胜出,使大量...

  • 计算机科学的基础

    Al Aho   Jeff Ullman   傅尔也   译

    本书全面而详细地阐述了计算机科学的理论基础,从抽象概念的机械化到各种数据模型的建立,用算法、数据抽象等核心思想...

  • Java技术手册(第6版)

    Benjamin J Evans   David Flanagan   安道   译

    通过学习本书,你将能够: 掌握最新的语言细节,包括Java 8的变化 使用基本的Java句法学习面向对...

  • 机器学习实战

    Peter Harrington   李锐   李鹏   曲亚东   王斌   译

    机器学习是人工智能研究领域中一个极其重要的研究方向,在现今的大数据时代背景下,捕获数据并从中萃取有价值的信息或...

目录


第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.4 如何写出好代码....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

4.3 阻塞......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.1.3 暗示性承诺.....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

相关文章

  • 愛飛翔 5推荐

    学习、纪律与交流——《Clean Coder》读后感

      看Bob大叔的书,还要追溯到[《敏捷软件开发——原则、模式与实践》][1]。这是一本改变我对软件看法的书,也使得我彻底摆脱了一个纯编码者的思维,继而转向以研究设计架构、分析用户需求为中心的软件开发方式,可谓一部有重要影响力的书。这个以后会有专文描述,在此不赘述啦。   其…...

  • 出版圈郭志敏 5推荐

    《Clean Coder》读后感:程序员自我管理的9个原则

    编者按:《编码整洁之道:专业程序员的行为准则》(The Clean Coder: A Code of Conduct for Professional Programmers)一书还未出版,便已在网站上看到被译成中文的读后感。这篇文章算是送给程序员们的新年礼物吧!内容是以作者的…...

  • 高翌翔 8推荐

    《The Clean Coder》中的「Clean」如何译?【已结贴】

    昨天先看到章显洲老师为《The Clean Coder》所写的中文版译序里全篇都保留该书的英文原名。 今天又在[微博](http://weibo.com/165376105… ...

  • 盼盼姐 10推荐

    Bob大叔访谈问题征集

    Robert C. Martin,世界级软件开发大师,设计模式和敏捷开发先驱,敏捷联盟首任主席,C++ Report 前主编,被后辈程序员尊称为“Bob大叔”。20世纪70年代初成为职业程序员,后创办Object Mentor公司并任总裁。Martin还是一名多产的作家,至今已发...

  • 盼盼姐 8推荐

    [英]Bob大叔:编程“老师傅”和他的职业素养(图灵访谈)

    图灵访谈之三十五:专访Bob大叔Robert Martin Robert C. Martin,世界级软件开发大师,设计模式和敏捷开发先驱,敏捷联盟首任主席,C++ Report 前主编,被后辈程序员尊称为“Bob大叔”。20世纪70年代初成为职业程序员,后创办Object M…...

  • 盼盼姐 12推荐

    Bob大叔:编程“老师傅”和他的职业素养(图灵访谈)

    图灵访谈之三十五:专访Bob大叔Robert Martin Robert C. Martin,世界级软件开发大师,设计模式和敏捷开发先驱,敏捷联盟首任主席,C++ Report 前主编,被后辈程序员尊称为“Bob大叔”。20世纪70年代初成为职业程序员,后创办Object M…...

  • 出版圈郭志敏 推荐

    程序员的专业主义精神——评《程序员的职业素养》

    专业主义 1.精进技艺,保持时间上的投入,保持关注 2.负责,为制造的bug负责,而不是抱着“人非圣贤孰能无过”的态度 充足的测试用例->对修改代码没有恐惧->经常性的改善代码->高质量代码 说“不” 和 说“是” 不要说试试看,给出明确答…...

  • 出版圈郭志敏 18推荐

    不能跳过的《程序员的职业素养(The Clean Coder)》中的一个章节

    ![enter image description here][1] 我猜,你之所以拿起这本书,因为你是程序员,“职业素养”这个说法吸引了你。你应该如此。我们这种专业人士迫切渴求的,正是“职业素养”。 我也是程序员。我编了42年 的程序。这42年里,我什么都经历过。我被开除…...

  • 大卫张33 3推荐

    担当力模型简介

    引子 担当就是为了把事情做成,担当力就是把事情做成的能力。然而人们对担当力却缺乏认识。展现了做事的激情就算有担当吗,事情做不成怎么办?做错后承担责任就叫有担当吗,事情没做成又有什么用?做到真正有担当,并不断提升担当力对于把事情做成非常重要。在本文中将提出担当力模型,将担当力分为…...

  • 高翌翔 3推荐

    2012纪事:第九章 九月:曾益其所不能

    哇,我们已经步入2012纪事的第九章。希望你正朝着目标突飞猛进,甚至你也许正在超越目标。今年在我朝着目标前进的道路上,我通过走出自己安乐窝的方式已经能完成许多事情。这个月,我要求你做一些从没做过的事情,因为要是你想获得某种你没有的东西,你就必须做些从没做过的事情。 走出你…...

  • 高翌翔 15推荐

    致诸位新程序员:来自Chuck Jazdzewski慈父般的忠告

    记住这几句话,学无止境。(Never stop learning.)沟通至关重要。(Communication is critical.)履行承诺,胜过交付。(Under promise, over deliver.)“我错了。”("I was wrong.&quo…...

  • 高翌翔 6推荐

    软件开发者的四大“看家本事”

    现如今,可供选择的技术、语言及平台可谓五花八门,因此要弄明白哪里是花时间训练的最佳投资点也就难上加难…… 原文发布日期:2012年12月10日 现如今,可供选择的技术、语言及平台可谓五花八门,因此作为软件开发者,要弄明白哪里是花时间培养个人技能的最佳投资点也就难上加难。…...

  • 出版圈郭志敏 3推荐

    你不可不知的魔王索伦的眼睛——《程序员的职业素养》封面解读

    今天,又翻开《程序员的职业素养》这本书,一直没有仔细看封面图片的解说这一部分。今天看了第一段,里面提到了魔王索伦的眼睛(见图一),这让我突感好奇,查了下相关资料,获知索伦(Sauron),是英国作家约翰·罗纳德·鲁埃尔·托尔金的史诗式奇幻小说《魔戒》中的人物。 ![enter…...

  • 白龙 1推荐

    熟知并非真知

    熟知并非真知 黑格尔 《小逻辑》 在有了一些编程经历后,是否对这些经历已经熟视无睹,觉得他就应该那样呢?作为有着好奇心的码农,我老是想优化一下,想探究一下事情背后的原理,这方面做得比较极致的是Scott Meyers和Joshua Bloch Singleton想必大家…...

  • 紫凤 1推荐

    为程序员开一剂提高职业素养的良方

    文/张克军 我认为程序员和医生在某些方面很相似。医生是在解决人的问题,而程序员是在解决产品的问题。它们都有相似的职责,都是用理性的技术手段解决问题。程序员可以从医生的身上借鉴到很多东西,比如职业素养标准。 程序员的职业素养是建立在技术水平上的。对程序员来说,技术是解决问题的…...

  • 紫凤 6推荐

    认真过好你的二十几岁

    本文选自[外刊评论网][1] ![enter image description here][2] 作者:Jason Evanish “别活得太认真,你逃不出你的命运。” – Van Wilder 这句流行的名言,对于如今的20几岁的青年,看起来就是让他们没有任何目…...

  • 袁野 1推荐

    他们拥有神奇的魔力 真正具有凝聚力的团队

    ![enter image description here][1] 让一个程序员把一半的时间投入在项目A中,把其余时间投入在项目B中,这并不可行,尤其是当这两个项目的项目经理不同、业务分析师不同、程序员不同、测试人员不同时,更不可行。在《地狱厨房》 中,这种丑陋的组合方式能…...

  • 袁野 3推荐

    态度决定一切 程序员的职业素养

    本文转自:梦无忆的读书笔记 原文地址:[http://blog.jesseluo.me/blog/2012/note-about-the-clean-coder/][1] Robert C.Martin的大名咱就不说啥了。这本书写的深入浅出,感觉像读一本小说,流畅自然,但自…...

  • 袁野 1推荐

    普通程序员走向“专业”的灯塔

    看完此书第一个感觉就是:大叔也是跌跌撞撞一路走来,什么时候才能成为大叔这种级别的高手呢!    两周前拿到这本书,在地铁、程序编译间隙把书看完了。“编译间隙”,正如作者在“练习”一章的注里讲的“这是悲剧”,事实上我们可以等待很少的时间或者不需要等待,只要足够仔细,我知道等待…...

  • 袁野 推荐

    论一个程序员的职业素养

    周星驰的《西游降魔篇》在新年档期火热了一把,票房节节高,观众对本片褒贬不一。其中的一些镜头太过暴力,并不适宜儿童观看。小编也看了这部电影总体感觉一般惊喜不足(星爷粉勿喷),也许是周星驰的喜剧创意在枯竭,只能炒炒冷饭效仿之前的题材。而他的另一部经典《喜剧之王》,却一直被人们津津乐…...

  • 袁野 3推荐

    成功源于对时间的有效利用《程序员的职业素养》读后感

    ![enter image description here][1] 即使孤独,也得前行 Bob大叔是我很敬佩的大师之一,只恨自己的道行太浅,他写的东西一直无法理解。即使如此,读他的书,依然会让我获益匪浅。至少在以后遇到一些问题的时候能反应过来,“这问题Bob大叔在XXX中…...

  • 2gua 9推荐

    新版好书,致青春,已逝去

    图灵新出版的《Objective-C基础教程(第二版)》、《CSS设计指南(第三版)》纸质版(@李松峰 @图灵社区 ),加上前期出版的《Linux命令行与Shell脚本编程大全(第二版)》、《程序员的职业素养》,合计四本好书。 由于《CSS设计指南(第三版)》电子书较早前就放…...

  • Juven 12推荐

    哪来的编程天才?

    注:本文原载于http://www.juvenxu.com/2013/03/28/programming-talent-is-overrated/ [《哪来的天才?》][1]是一本值得一读的书,书的核心观点大致为“卓越的能力并非天生,而是后天长时间的刻意练习而得的”,这观点适…...

  • 大卫张33 8推荐

    那些已经逝去的专业软件研发精神

    ![enter image description here][1] 我们最近的多次软件发布都出现了问题。或是因为某个代码低级错误发生回滚;或是因为SQL未仔细检查导致发布出现线上问题;或者是流程响应不及时导致客户业务不可用;甚至还有Copy代码导致资损。 面对这种情况,团…...

  • 袁野 2推荐

    《程序员的职业素养》读后感:一本Bob大叔的错误大全

    ![enter image description here][1] 前段时间入手了一本[《程序员的职业素养》][2],谁推荐的忘记了,断断续续看完了,觉得写得还行,翻译这本书的人是公司的同事,但是从来没见过。 本书是Bob大叔的作品,他是一名程序员,编了40多年的程序了。…...

  • 袁野 4推荐

    无代码休讨论 无测试休编程 Coding Dojo结对编程

    5月4日,图灵公司的线下沙龙活动,本次到来的是北京设计模式学习组。 本次的主题是Coding Dojo(编码道场)结对编程活动。第二期活动,将于5月18日图灵公司举办,感兴趣的同学可以过来操练一下。详见:[跟着图灵听课去(五月)][1],当天活动的详细资料可在右侧本文附件处下载…...

  • 袁野 5推荐

    Bob大叔的忠告做一个专业软件开发者必须精通的事项

    这两天读Bob 大叔的《程序员的职业素养》,感觉作为一个专业的软件开发人员不容易,身上顿时感觉压力山大。 ![enter image description here][1] Bob 大叔认为作为一个专业软件开发必须精通以下几点: 设计模式。必须能描述GOF书中全部2…...

  • 黄志斌 7推荐

    转赠《程序员的职业素养》

    我参加了图灵社区的晒一晒你最喜欢的图灵书 QCon北京大会赠书活动,并中奖了: @图灵教育 @skyiv 我在福建南平,没法到北京领取,怎么办?能不能邮寄给我?谢谢!//@图灵教育: 感谢你参加#晒我喜欢的图灵书#活动。恭喜你,请于4月26日上午到#QCon北京#大会,图灵…...

  • 东风玖哥 3推荐

    做享受职业素养的程序员——《程序员的职业素养》

    《程序员的职业素养》是Bob大叔的第二部作品。职业素养并不是神秘的天赋,也不是高深的技艺,而是能力与素质的体现,也是持续的积累和养成。本书可以指导一个程序员如何抵制不专业的需求,提高开发的效率,享受自己的职业素养。 ![enter image description here…...

  • 这本书是《The Clean Coder: A Code of Conduct for Professional Programmers》和人民邮电翻译出版的《Clean Code: A Handbook of Agile Software Craftsmanship》是什么关系?
    魔力猫  发表于 2012-05-04 10:06:52
    推荐
    • Clean Code是讲怎么写好代码的,Clean Coder是讲怎么才算是专业程序员。

      朱巍  发表于 2012-08-01 09:13:41
    • 同一作者的两本书,兄弟关系。

      武卫东  发表于 2012-09-29 09:25:54
  • 个人感觉翻译成《程序员的职业素养》,还不如叫《有洁癖的程序员》呢,哈哈!
    旁观者  发表于 2012-08-07 14:00:45
    推荐
    • 总觉得“有洁癖”带着贬义。不如叫“最清洁的程序员”——小时候,很多单位都评比家庭卫生,然后给贴“清洁”、“最清洁”的红条。

      武卫东  发表于 2012-09-29 09:25:17
    • 让我想起了周星星的“喜剧之王”里的那本书 ;)

      unicornx  发表于 2013-05-16 21:26:07
  • 要有电子版的就更好了。
    gyzhao  发表于 2012-09-05 17:20:28
    推荐
    • 本书没有电子版权。

      武卫东  发表于 2012-09-29 09:23:04
    • 十一在书店买了实体书,很不错的书。

      gyzhao  发表于 2012-10-03 18:32:55
  • 看了第一章的电子版,很不错,值得一读^_^
    hunter129  发表于 2012-09-05 21:55:19
    推荐
  • 读书笔记,第6章 练习
    摘录豆瓣 自由的柠檬 作者单独开辟一章来说明练习的重要性。这一章篇幅较短,像一篇博客,但是基本上把练习的因果讲了明白。平时我们对练习的重视程度显然不够,很多时候都是在工作中练习,但是不免有局限或漏洞,有机会还是要组织练习活动,就像武士的比武切磋一样。
    紫凤  发表于 2012-10-17 08:31:33
    推荐
  • 读书笔记,第10页
    摘录豆瓣 自由的柠檬

    下面列出了每个专业软件开发人员必须精通的事项。
    - 设计模式。必须能够描述GoF书中全部24种模式,同时还要有POSA书中多数模式的实战经验。
    - 设计原则。必须了解SOLID原则,而且要深刻理解组件设计原则。
    - 方法。必须理解XP、Scrum、精益、看板、瀑布、结构化分析及结构化设计等等。
    - 实践。必须掌握测试驱动开发、面向对象设计、结构化编程、持续集成和结对编程。
    - 工件。必须了解如何使用UML图、DFD图、结构图、Petri网络图、状态迁移图表、流程图和决策表。
    紫凤  发表于 2012-10-17 08:32:37
    推荐
  • 读书笔记,第7页
    摘录豆瓣 自由的柠檬

    原来Bob大叔是FitNesse的主要贡献者和代码提交者,写作本书时代码量6万多行,其中2000多个单元测试共2.6万行。Emma报告显示单元测试代码覆盖率90%,而Bob说实际要比90%要高。另外,其自动化QA的流程执行只需3分钟。
    紫凤  发表于 2012-10-17 08:33:43
    推荐
  • 读书笔记 摘录豆瓣 自由的柠檬
    章节名:测试驱动开发
    页码:第70页

    TDD的优势:1)单元测试全部通过,随时交付,减少中间手动测试环节的时间积压 2)显著降低缺陷注入率,从Sabre到Symantec,从IBM到Microsoft,缺陷下降为原来的1/2,1/5,1/10的过程。3)重构代码的勇气,敢做,因为有值得信赖的测试保证 4)单元测试即文档,程序员最信任代码。5)能更好地产生松耦合设计。6)专业人士的选择。(感觉像广告?哈哈)
    TDD的局限好像没说两句。
    紫凤  发表于 2012-10-17 08:36:59
    推荐
  • 求这本书的电子版,求电子版啊
    姚钢强  发表于 2013-01-24 09:48:19
    推荐