具体描述
jeff atwood于2004年创办coding horror博客(http://www.codinghorror.com),记录其在软件开发经历中的所思所想、点点滴滴。时至今日,该博客每天都有近10万人次的访问量,读者纷纷参与评论,各种观点与智慧在那里不断激情碰撞。
《高效能程序员的修炼》是coding horror博客中精华文章的集合。全书分为12章,涉及迈入职业门槛、高效能编程、应聘和招聘、团队协作、高效工作环境、用户体验、安全问题、测试、社区管理、营销广告、人生思考等话题。作者选取的话题,无一不是程序员职业生涯中的痛点。其中,“程序员的八种境界”、“程序员的《权利法案》”、“结交混世魔猴”等文章早已脍炙人口,在程序员圈子里广为流传。
《高效能程序员的修炼》的写作风格风趣幽默,且充满理解和关怀,适合从新手到老手的各个阶段的程序员阅读,也适合即将成为程序员的计算机和相关专业的学生阅读。《高效能程序员的修炼》能够帮助读者更多地关注程序员职业生涯中的人性和人文因素,成长为真正的高效能的程序员。
作者简介
jeff atwood,国际知名的技术博客作家,知名程序员,有三十多年的职业编程经验。2004年,他创办了coding horror博客。2008年,他和joel spolsky联合创办了stack overflow (stackoverflow.com)网站。stack overflow 现在已经成为全球it界最受欢迎的技术问答网站。
陆其明,2000年毕业于南京大学,曾是一名c++程序员,是国内最早一批从事流媒体应用的开发者。自2004年起,连任4届微软mvp(最有价值专家)。现任乐威软件(上海)有限公司研发部高级经理,主要负责ott电影分发系统的移动客户端软件开发。辛勤耕耘十余载,在技术研发、团队建设、流程管理、项目管理等方面积累了丰富的经验。已经出版的著作有《directshow开发指南》、《directshow实务精选》、《windows media编程导向》、《脚本驱动的应用软件开发方法与实践》,译作有《代码之道》。新浪微博:豆巴陆其明。
张健,2000年毕业于南京大学。多年来专注于嵌入式系统设计工作,涉及soc架构、内核及设备驱动、应用系统构建等多个领域。在杭州士兰微电子公司任职期间,主管嵌入式软件研发工作,有丰富的团队及项目管理经验,并于2008年获得pmp认证。现居悉尼,在open access公司任职高级软件工程师。
目录信息
第1章 入门须知1
你想成为一个程序员1
程序员的八种境界6
如何培养写作习惯9
第2章 把一堆烂事搞定的艺术13
学海无边13
磨刀不误砍柴工17
一路向前冲21
关于多任务的神话25
第3章 高效编程之原则28
第一条法则:永远都是你的错28
大道至简30
避免写注释33
学会读源代码36
向橡皮鸭求助40
创新以人为本44
你的团队能通过电梯测试吗47
性能致胜52
第4章 招聘程序员须得其法60
.为什么程序员不会编程60
怎样招聘程序员63
如何做好电话面试筛选68
工作经验年数之神话72
与程序员面谈75
史上最难的面试谜题77
第5章 促使团队紧密协作81
不管怎么说,那总是人的问题81
领导须以身作则83
程序员与系统管理员的黑夜传说87
结对编程与代码评审91
会议是浪费工作时间的最佳去处94
处理坏苹果96
坏苹果是团队的毒药99
关于远程办公102
第6章 蝙蝠洞:程序员的高效工作场所109
程序员的《权利法案》109
电脑工作站的人体工程学111
多显示器能提高生产力吗115
购置优质的电脑椅118
背景光的功效123
第7章 设计时要把用户放在心上127
你永远不会有足够的奶酪127
细节决定成败129
用户界面代表了软件134
用户界面须优先设计136
分页显示该休矣140
对待弱视的用户144
再谈浏览器底栏149
费茨定律与无限宽度152
单元测试的终极失败156
第一版做得不好,但照样发布159
第8章 安全基础:保护用户数据162
所有网络通信都应该加密吗162
防范字典式攻击166
快速哈希170
关于网络密码的可怕真相177
第9章 加强代码测试,别让它太差劲182
与客户患难与共182
结交“混世魔猴”184
代码评审:说做就做187
加大测试力度189
我同情那些不写单元测试的傻瓜193
单元测试与beta测试的对比196
低保真的可用性测试197
比程序崩溃更糟糕的是什么201
第10章 创建并管理社区,同时从中受益204
倾听社区的声音,但别被它们牵着鼻子走204
我重申:别盲目听从你的用户209
游戏化213
暂停,禁止,或者打入地狱220
第11章 揭露营销伎俩,以及如何规避225
谨防九种营销诡计225
网络广告该休矣233
从《偷天情缘》看a/b测试 的问题238
如果流于俗套,请即刻改变242
软件定价:我们深谙其道吗245
第12章 轻重缓急,了然于心248
程序员,你幸福吗248
来也匆匆,去也匆匆,到头来两手空空252
附录 程序员必读之书257
· · · · · · (收起)
读后感
书中讲述程序员的多种能力,编程只是基本的能力之一,多数程序员需要锻炼非编程的技能,包括如下: 1. 沟通能力,这是多数程序员较欠缺的,这个能力对合作解决项目问题有很大的帮助。沟通能力强的人,可以更快的协调,完成任务。 2. 设计能力,设计是一门很重要的学科,设计的...
书中讲述程序员的多种能力,编程只是基本的能力之一,多数程序员需要锻炼非编程的技能,包括如下: 1. 沟通能力,这是多数程序员较欠缺的,这个能力对合作解决项目问题有很大的帮助。沟通能力强的人,可以更快的协调,完成任务。 2. 设计能力,设计是一门很重要的学科,设计的...
我想,这本书的读者几乎都是程序员,译者能不能有节操些,那么多注释搬过来有什么意思。遇到不懂的地方,我们可以谷歌,最不济还有度娘。译者大爷,我真的用不着知道安卓的各个版本的代号!弄得一页五分之三的部分用来注释,这用户体验真不错!!! 既然把<程序员修炼之道>...
因为Jeff讲的很多东西其实已经流传得比较广泛了, 所以再拿来读也就没有那么多深刻的体会的. 不过古人讲"开卷有益", 以下是我自己印象还比较深的几个点 # Screening Jeff建议招人的最后一步是编程"试镜". 为面试者分配一个可以在两三天内完成的, 当前项目中会遇到的一个实际问...
”程序员不是码农!“其实,我更喜欢这个书名,它更能表达作者Jeff Atwood对于程序员这个职业的理解,以及Jeff对广大程序员的教诲。如何成为更好的程序员呢?这其实跟写代码没有关系,而在于你是否能够参透书中涉及的各个主题。我是本书译者,阅读过程中如有任何问题,欢迎与我...
用户评价
这本书的叙事风格非常独特,它不像一本典型的技术书籍那样冷峻和说教,反而充满了对编程艺术性的尊重和探索。作者在阐述复杂概念时,会穿插一些历史典故或者对古代手工艺人哲学的引用,这使得阅读过程充满了韵律感和启发性。我尤其喜欢其中关于“代码可读性”的章节,它没有流于表面地谈论命名规范,而是深入探讨了代码作为一种与未来自己和他人沟通的媒介所应承担的伦理责任。书中有一个观点,即“每一行你写的代码,都应该预设读者是一个聪明但对当前上下文一无所知的同事”,这个要求极高,但也极具指导意义。这迫使我改变了编写注释和文档的习惯,从“记录我做了什么”转变为“解释我为什么这么做”。这种强调同理心和长期维护成本的写作风格,让这本书读起来更像是一篇散文,而非一本教条手册,它提升了我的职业境界感,让我对“编写软件”这件事有了更深层次的敬畏。
坦白说,起初我抱着怀疑的心态打开这本书,因为市面上充斥着太多宣称能“颠覆”工作方式的“秘籍”。然而,这本书的严谨性很快打消了我的疑虑。它在讨论效率提升时,没有依赖任何夸张的承诺,而是建立在一系列严谨的认知心理学和行为经济学的研究基础之上。例如,书中对“决策疲劳”在程序员日常工作中的影响进行了细致的量化分析,并给出了针对性的“决策最小化”策略。这不仅仅是日程管理,更是对认知资源的精细化分配。我特别欣赏作者对工具使用的审慎态度,他没有鼓吹盲目采纳最新的IDE插件或自动化脚本,而是强调工具必须服务于流程,而非主导流程。这种务实且基于科学的论证方式,让书中的每一个建议都显得坚实可靠。读完后,我不是感到被灌输了新知识,而是感觉自己过去零散的经验被系统化、理论化地梳理了一遍,形成了清晰的知识体系。
这本书实在让人耳目一新,它没有落入那种陈词滥调的技术手册窠臼,反而是深入探讨了“效率”这个核心概念在编程实践中的多重维度。我印象最深的是作者对“心流状态”的描述,他不仅仅是简单地罗列了如何进入心流的技巧,而是结合大量的实例,剖析了外部干扰、内在认知负荷与心流触发机制之间的复杂关系。比如,书中提到的一种“最小可行专注块”(Minimum Viable Focus Block)的概念,要求读者在任务开始前就清晰界定一个极短但不可分割的时间段进行高强度工作,这与我过去那种“先铺开再优化”的工作习惯形成了鲜明对比。阅读过程中,我甚至停下来重新规划了我日程表上那些标志性的“深度工作时间”,尝试用书中的方法来重塑我的日常节奏。这种从宏观哲学思考到微观操作层面的无缝对接,使得这本书不仅仅是一本工具书,更像是一本关于如何管理注意力的认知科学指南。它迫使我重新审视那些看似高效的“多任务处理”陷阱,并认识到真正的速度往往来自于对不必要认知切换的坚决抵制。这种对底层思维模式的重构,远比学习某个新框架或新语言来得更有价值。
读完这本著作,我立刻产生了一种被“解放”的感觉。它似乎抓住了许多资深开发者内心深处那种隐秘的焦虑:我们总是忙碌,代码量堆积如山,但产出质量和个人成长似乎陷入了平台期。作者巧妙地避开了对具体技术栈的纠缠,转而聚焦于“系统性思维”在软件构建中的体现。特别赞赏的是其中关于“技术债务的复利效应”的论述,它不再是枯燥地讲解如何重构代码,而是将技术债务比喻为一种慢性病,强调了早期预防和微小干预的重要性。书中提供的那些关于“自动化反馈回路”的案例分析极其精妙,它们展示了如何将人工检查环节嵌入到开发流程的早期,从而避免问题在后期以指数级的成本爆发。这种前瞻性的视角,让我开始反思我们团队当前的代码评审流程中那些低效的环节。它教给我们的不是“如何写出更好的代码”,而是“如何构建一个能持续产出好代码的、低摩擦的工程环境”。这种从个体贡献者到系统架构师的思维跃迁,是这本书给我带来的最深刻的价值。
这本书给我的最大触动,在于它对“挫折管理”和“韧性培养”的重视程度,这在其他强调纯粹“速度”的书中是很少见的。作者承认,高效能并非意味着永不犯错,而是指从错误中恢复的速度和学习的深度。书中花了大量篇幅讨论如何构建一个“失败是安全”的工程文化,这对于提升整个团队的创新意愿至关重要。我记得其中提到一个概念,即“最小可接受的学习循环”,它要求我们在面对新挑战时,主动设计小规模的、可控的失败点,以此来加速对未知领域的探索。这种将风险纳入计划、将不确定性视为常态的视角,极大地缓解了我过去对大型重构或引入颠覆性技术时的心理压力。它不是在教你如何避免困难,而是在教你如何优雅、快速且有条理地穿越困难。这种成熟的、面向长期职业发展的视角,让这本书的价值超越了短期项目交付的范畴。
都是段子
受益匪浅。
其实不太值得花时间去读,Steve Yegge那个博文集侬晓得吧,不知道高到哪里去
其实不太值得花时间去读,Steve Yegge那个博文集侬晓得吧,不知道高到哪里去
程序员应该是会思考码农。写得还是挺有意思的,以至于在地铁上有人搭讪问我书名,可惜是个男的……