《高效能程序员的修炼》一导读

简介: 出版社的冀康一开始来找我谈翻译这本书的时候,我的第一反应是:这兄弟真是不知道我现在有多忙!我每天要处理200多封邮件;在资源有限的情况下经常要同时带6~7个项目,而且每个项目的交付计划都很紧,压力很大;每天起码工作12个小时,有时候还要熬夜跟美国同事开会;周六基本上也是工作状态……我哪里还有空来翻译


w1

译者序

高效能程序员的修炼
出版社的冀康一开始来找我谈翻译这本书的时候,我的第一反应是:这兄弟真是不知道我现在有多忙!我每天要处理200多封邮件;在资源有限的情况下经常要同时带6~7个项目,而且每个项目的交付计划都很紧,压力很大;每天起码工作12个小时,有时候还要熬夜跟美国同事开会;周六基本上也是工作状态……我哪里还有空来翻译书?!

后来,当我了解到这本书的作者是Stack Overflow网站的创始人Jeff Atwood,还有书的内容实际上就是从作者的博客网站Coding Horror精选而来的文章时,我开始有些心动了。Jeff的成就是值得尊敬的!这本书的主题和风格也是我喜欢的:一篇一个话题,针对性很强,讲的都是我们程序员自己的事。据说篇篇都很受人关注,引来读者评论无数。我的好奇心愈加强烈了:Jeff都说了些什么呢?好惭愧,我以前居然都没读过他的文章!

做吧!我一定能从Jeff的这本书里学到不少东西。而且,既然这些东西这么好,我一定要把它们介绍给更多的中国读者。时间哪里来?挤呗!时间是挤出来的!于是,我把所有的零碎时间都利用上了:陪儿子上早教课时在教室外守候的时间、午后休息的时间、晚上睡觉之前、坐地铁时、外出办事等候的时间甚至去美国出差和去泰国度假的途中……这本书就是这么“挤”出来的!

再说说这本书的内容吧。其实得先说说Jeff其人。他无疑是一位杰出的程序员。那是因为他写代码很厉害吗?其实,他在第1章就指出了,“成为一名杰出的程序员其实跟写代码没有太大的关系。做程序员确实需要一些技术能力,当然,还要有坚韧不拔的精神。但除此之外,更重要的还是要有良好的沟通技巧”。所以,这本书不是讲某种特定的编程语言的,也没有涉及太多具体的代码问题。因为Jeff认为,“如果要研究软件开发艺术,单纯研究代码是不够的”;他更多关注的是软件开发过程中的人文因素。因此,本书涵盖的主题非常广泛,包括对程序员的素养、做事方法、价值观的探讨,也谈到了编程风格、软件测试、团队合作、用户体验、社区管理、网络安全、市场营销等方面的问题。书中的很多观点并不是Jeff独创的,但他旁征博引、博采众长,把许多很棒的东西汇聚在一起,给读者奉上了一顿饕餮大餐。

Jeff 给我们指明了“程序员的八种境界”。他还在第2章中指出:作为程序员,大家不能只顾着埋头写代码。任何能让你成为一名更好的程序员的事情都值得去关注,别担心你会因此而分心、少写了N行代码,因为磨刀不误砍柴工。

Jeff是我们学习的榜样。这本书特别适合初入行的程序员阅读。对于已经工作过几年但碰到了发展瓶颈而倍感迷茫的老程序员来说,这也是一本极好的读物。我们不能总是低着头走路,而要时时抬起头看看路。希望Jeff的这本书能为你指点迷津。

本书的前半部分由张健翻译,后半部分由我翻译。张健是我大学时候隔壁寝室的兄弟。谁也不曾料到,十几年后的今天我们会有这样的一次合作。张同学平时工作也很忙,久居海外,对中文表达已有些许生疏。他翻译的部分我帮忙做了些润色,以保证全书有较为一致的风格。我们还在翻译的过程中添加了大量的“译者注”,这些背景知识往往都很生动,有助于读者更全面地理解原书的内容,也是本书的看点之一。

翻译工作历时半年,译稿几经修改——翻译一遍,再修改至少三遍——交稿时我虽已尽心竭力而问心无愧,但我相信书中还有很多地方可以改进。努力永无止境!感谢冀康给我这次机会,让我翻译这么棒的一本书。感谢Jeff在翻译过程中给予的支持,他对我的问题回复得很及时,还提供了很多额外的信息。同时也要感谢我的爱人谭洁红,她帮忙做了些美工,还审阅了部分译稿,在文字表达方面给我提出了很多建议。这么多感激之余,其实我还有些愧疚,因为半年来我很少有时间去陪我的儿子豆豆。令我感到欣慰的是,当我向他解释爸爸在忙什么时,他能够理解,然后一个人乖乖地去睡觉。而他以前是要在床上听我给他讲完一个故事后才入睡的……

写书或翻译书都很辛苦!我不得不牺牲很多业余时间,也少了跟家人交流的机会。每次我都对自己说,“这是最后一次了!”是吗?也许吧……关于本书的内容或者翻译上的问题,需要跟我交流的话,请爱特我吧。我的新浪微博:豆巴陆其明。

目 录

第1章 入门须知
你想成为一个程序员
程序员的八种境界
如何培养写作习惯
第2章 把一堆烂事搞定的艺术
学海无边
磨刀不误砍柴工
一路向前冲
关于多任务的神话
第3章 高效编程之原则
第一条法则:永远都是你的错
大道至简
避免写注释
学会读源代码
向橡皮鸭求助
创新以人为本
你的团队能通过电梯测试吗
性能致胜
第4章 招聘程序员须得其法
第5章 促使团队紧密协作
第6章 蝙蝠洞:程序员的高效工作场所
第7章 设计时要把用户放在心上
第8章 安全基础:保护用户数据
第9章 加强代码测试,别让它太差劲
第10章 创建并管理社区,同时从中受益
第11章 揭露营销伎俩,以及如何规避
第12章 轻重缓急,了然于心

相关文章
|
Kubernetes 网络协议 网络安全
提升你的云技能:深入了解CKA认证之k8s升级秘籍!
提升你的云技能:深入了解CKA认证之k8s升级秘籍!
389 0
|
4月前
|
安全 Linux 虚拟化
VMware Tools 13.0.1.0 发布 - 客户机操作系统无缝交互必备组件
VMware Tools 13.0.1.0 发布 - 客户机操作系统无缝交互必备组件
306 1
VMware Tools 13.0.1.0 发布 - 客户机操作系统无缝交互必备组件
|
12月前
|
算法 数据处理 C语言
C语言中的位运算技巧,涵盖基本概念、应用场景、实用技巧及示例代码,并讨论了位运算的性能优势及其与其他数据结构和算法的结合
本文深入解析了C语言中的位运算技巧,涵盖基本概念、应用场景、实用技巧及示例代码,并讨论了位运算的性能优势及其与其他数据结构和算法的结合,旨在帮助读者掌握这一高效的数据处理方法。
492 1
|
8月前
|
缓存 NoSQL Java
G1原理—9.如何优化G1中的MGC
本文主要探讨了因大对象导致频繁Mixed GC的问题及其优化方案。通过一个电商平台缓存更新的案例,分析了商品信息大量写入缓存时引发的GC问题,包括Redis锁等待、大对象分配及RegionSize调整不当等原因。文章详细介绍了Mixed GC的优化策略,分为避免策略(如调整RegionSize和新生代大小)与提速策略(如提升分配与回收速度),并深入解析了相关参数(如InitiatingHeapOccupancyPercent、G1ReservePercent等)的作用与调优方法,为解决类似性能问题提供了全面指导。
210 15
G1原理—9.如何优化G1中的MGC
|
11月前
|
开发框架 前端开发 JavaScript
uniapp开发鸿蒙,是前端新出路吗?
相信不少前端从业者一听uniapp支持开发鸿蒙Next后非常振奋。猫林老师作为7年前端er也是非常激动,第一时间体验了下。在这里也给大家分享一下我的看法
271 17
|
10月前
|
算法 搜索推荐 UED
C 端试用期考核指标
本文详细介绍了C端产品经理试用期的考核指标,涵盖产品成功、开发效率、用户体验、市场研究、团队协作和创新能力等方面。考核方式包括自评、上级评估、同事评估、用户评估和项目评估。通过定量与定性相结合的方法,确保全面客观地评估产品经理的工作表现,并附有实际案例供参考。
|
机器学习/深度学习 存储 运维
图神经网络在复杂系统中的应用
图神经网络(Graph Neural Networks, GNNs)是一类专门处理图结构数据的深度学习模型,近年来在复杂系统的研究和应用中展现了强大的潜力。复杂系统通常涉及多个相互关联的组件,其行为和特性难以通过传统方法进行建模和分析。
231 3
|
机器学习/深度学习 人工智能 数据挖掘
GPU加速:解锁高性能计算的未来
【10月更文挑战第20天】GPU加速:解锁高性能计算的未来
907 1
|
机器学习/深度学习 人工智能 搜索推荐
用AI技术打造个性化新闻推荐系统
【10月更文挑战第7天】本文将介绍如何使用AI技术构建一个个性化的新闻推荐系统。我们将从数据收集、处理,到模型训练和优化,最后实现推荐系统的全过程进行讲解。通过这篇文章,你将了解到如何利用机器学习和深度学习技术,为用户提供精准的新闻推荐。
399 0
|
人工智能 Python
【Python + 微信】微信公众号开发避坑指南
【Python + 微信】微信公众号开发避坑指南
332 0