【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

书评:《代码之道》

  • 2010-03-09
  • 本文字数:2582 字

    阅读完需:约 8 分钟

乍一看书名——《代码之道》——呵呵,好大的口气!何为道?道家创始人老子认为“道”是宇宙的本原和普遍规律。这样一本仅仅 200 页的薄书能担得起“道”之名吗?笔者带着一丝怀疑翻开这本备受瞩目的书,细细的阅读,不知不觉中已是豁然开朗——书的内容言简意赅,每个话题占用仅仅数页,却清晰明白的讲述了若干个道理,笔者不由得感慨:在我们身心疲惫的或是斗志昂扬的追逐于各种丛出不穷的新技术、新概念的时候,我们能否暂停脚步,想一想走过的路,看一看类似《代码之道》这样的非技术书呢?

《代码之道》英文原书名为《I.M.Wright’s “Hard Code”》,属于微软核心技术丛书之一,作者 Eric Brechner,现任微软公司部门总监,在软件行业拥有超过 20 年的工作经验,从 2001 年起在微软内部刊物上采用 I.M.Wright 的笔名撰写“Hard Code”栏目,其中讨论软件开发过程和职业生涯的种种问题,这本书就是对这个栏目的总结,话题包括:

  • 项目管理
  • 过程改进
  • 软件质量
  • 软件设计
  • 提高效率
  • 职业发展
  • 自我完善

针对每一个话题,I.M.Wright 都根据丰富的工作经验提出了自己的观点,并介绍了来龙去脉,令人信服。笔者认为,大多数程序员,过于关注新技术和新概念,往往忽略这种对工作的思考和总结——现在,技术更新换代的速度令人咋舌,虽然提倡终身学习,但我们的有限精力应该放在“核心竞争力”上。不论技术如何发展,有一些能力是可以应用于各种环境的:

  • 解决问题的能力
  • 时间的安排
  • 事务优先级的处理
  • 工作与生活的平衡原则

《代码之道》对“核心竞争力”的各个方面也提出了自己的观点。对这本 200 页的精炼小书来说,笔者很难像写普通的书评那样对这 49 个主题再加以概括总结,因此,笔者挑选了几个有关“核心竞争力”的主题,结合自己的实际体会,谈一谈《代码之道》提供的经验。

1. 如何集中精力、避免打扰?

在日常工作中,电子邮件、即时通讯工具、口头交流等等都会在你埋头苦干的时候打扰你,如何应对呢?《代码之道》引用了两个研究成果(p131):

  • 沉重的情境切换与抽大麻相比,会导致更多的智商下降。
  • 员工在刚好的两个项目同时工作时最富有生产力。

I.M.Wright 提倡的方法是:在工作时,把邮件通知提示等都尽量关闭,然后安心做自己的工作;定期的(比如,每隔半小时)浏览收到的邮件,并且在查 看邮件时尽力把它完整处理掉,避免情境的切换。你可能会认为这样会导致某些低优先级的邮件浪费时间,但 I.M.Wright 却认为你在过后再次切换到这封邮件所消耗的精力和时间要比即时处理还要多。

笔者也一直受到工作时被打断的困扰。特别是,一看到新邮件的提示,总是放下手中的活,冲动的打开新邮件先看大体内容,殊不知,这就导致了一次情境切换,有时候暂时不想处理,于是关掉邮件,继续手中的工作,又一次情境切换。就这样白白浪费了自己的精力和时间。笔者猜想,有相当数量的程序员在日常工作中被各种各样的事情打断,每天的有效工作时间逐渐压缩,这是否也是导致程序员经常加班的原因之一呢?

I.M.Wright 提出要想避免被打扰,还可以“让自己消失”,去一个没人能找到你的地方,使用笔记本电脑和远程桌面安心工作,或者选择一个其他人不在的时候工作,比如早上早一点来公司,晚上回家用远程桌面工作。在这样一个安静的地方和时刻,你就可以抛开不必要的困扰,集中精力做一些工作。

笔者对这个观点非常赞同,也是自己之前亲身实践过的。一段时间以来,笔者坚持早上八点半到公司,此时偌大的办公区基本空无一人,然后带上笔记本电脑,找一个小会议室,一直工作到上午 10 点钟才回到自己的办公桌。这段时间非常的安静,不论上班的同事如何来来往往,笔者都不受干扰,集中处理一些事情,效率很高, 即使在平常工作时间,也会尽量多呆在安静的地方。同时,笔者发现一个有趣的现象:当我呆在办公桌的时候,时不时的就会有同事询问各种各样的问题,小到一个域名对应的 IP 地址,大到项目计划的制定。但是,一旦我呆在会议室工作时,这些口头的问题就不翼而飞了,小的问题同事们可以独立解决,大的问题会通过正式 的邮件和会议进行交流,这样大家的工作效率都会有所提高——因为极大减少了彼此的情境切换次数。

2. 平衡工作和生活

这个话题对程序员来说有些沉重和苦涩,软件开发似乎是个工作和生活严重失衡的职业。不过,I.M.Wright 认为这不是命运注定,他在应聘微软的时候,就向未来的上司提出,他非常顾家,需要保证正常的工作时间,早上送孩子上学,晚上回家用餐,而老板完全同意了他的要求,并且说话算话。I.M.Wright 提出了一个平衡工作和生活的五步原则:

  1. 了解并接受你选择的生活方式。
  2. 跟你的管理者一起设置一些基本原则。
  3. 不要默默妥协。
  4. 必要的时候使用“远程访问服务”和远程桌面访问。
  5. 抛开分离造成的精神分裂错觉。

具体的说,你需要了解你自己,好好思考一下你的工作目的是什么,事业和生活的优先级是什么,你的忍耐程度是多大,一旦把这些问题想明白了,你就会在平衡问题上做出正确的选择;把自己制定的原则告诉你的上司,不要担心你的工作和前途,在第一步时你已经把这些问题和限度考虑清楚。I.M.Wright 发现这种交流反倒会使你赢得上司的尊重,因为你具有强烈的自信和清晰的价值观;在工作中,偶尔的破例是可以容忍的,但是如果经常出现超出原则的情况,你就需要找机会重申你的态度,因为一旦你很容易就妥协了,上司会认为你并不在意你自己指定的原则(如果连你自己都不在乎,又能指望谁来在乎呢?)。他可能会提出越来越多的要求,直到你的原则一退再退,你原先的努力就白费了;如果你热爱自己的工作而且的确很重要,可以在家里通过远程访问等方式访问;不要试图把工作和生活分开,保持一个统一的心态,避免情景切换。

笔者在平衡方面也是个菜鸟,很少思考自己的原则问题,平常也是迁就工作,压缩生活空间,《代码之道》这方面给了很多启示,我们需要严肃的、正式的考虑一下平衡问题,有类似需求的程序员朋友们可以参考 I.M.Wright 提出的五步原则。

《代码之道》谈论的主题很多,不是一篇短短的书评可以全部覆盖到的,笔者觉得这本书很适合程序员们阅读,不是丰富我们的技术水平,而是为了让我们工作和生活更有效率、更有意义。

附:华章授权 InfoQ 中文站独家为大家提供额外的样章进行试读:欢迎下载第3 章、第9 章


给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家加入到 InfoQ 中文站用户讨论组中与我们的编辑和其他读者朋友交流。

2010-03-09 08:294541
用户头像

发布了 501 篇内容, 共 248.1 次阅读, 收获喜欢 57 次。

关注

评论

发布
暂无评论
发现更多内容

【Y 新闻】YMatrix 成立三周年,三岁的我们还真是“不简单”

YMatrix 超融合数据库

数据库 超融合数据库 YMatrix

无代码编程时代的到来:新兴工具和平台的前瞻展望

互联网工科生

低代码 数据可视化 JNPF

DeFi去中心化系统DAPP系统模式开发

V\TG【ch3nguang】

Zebec 生态 AMA 回顾:Nautilus 以及 $ZBC 的未来

大瞿科技

2024深圳国际气凝胶材料与技术装备展览会

吹吹晚风

区块链dapp开发团队,快速搭建区块链dapp系统

V\TG【ch3nguang】

DAPP系统开发

「DAPP」双币拆分理财项目系统开发 拆分盘系统开发

V\TG【ch3nguang】

2023-09-13:用go语言,给定一个整数数组 nums 和一个正整数 k, 找出是否有可能把这个数组分成 k 个非空子集,其总和都相等。 输入: nums = [4, 3, 2, 3, 5,

福大大架构师每日一题

福大大架构师每日一题

分布式锁的三种实现方式!

树上有只程序猿

乐观锁 悲观锁 分布式锁

解锁 Postman 接口测试:完整指南

Liam

Java 程序员 Postman 接口测试 测试工具

Docker和Kubernetes:各自的优势和适用场景

树上有只程序猿

Docker Kubernetes

你知道Golang的模板怎么用吗?带你了解动态文本的生成!

王中阳Go

分布式架构和微服务架构的区别

这我可不懂

分布式 微服务 服务器

拒做职场小白,如何入职就成为成熟工程师

小魏写代码

求职面试 就业辅导

《玩转鲲鹏DevKit系列》第四期:如何基于鲲鹏平台高效开发?

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟 企业号9月PK榜

2024中国(深圳)国际锂电及储能材料展览会

吹吹晚风

一次性全讲透GaussDB(DWS)锁的问题

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号9月PK榜

ARTS 打卡 第二周,按部就班

三掌柜

ARTS 打卡计划

推动长期成功:NFT 推广机构如何制定可持续战略

区块链软件开发推广运营

数字藏品开发 dapp开发 区块链开发 链游开发 NFT开发

百度智能云与蓝色光标共绘AI营销新篇章:袁佛玉亮相Blue AI行业模型发布会,千帆平台引领行业模型创新之路

Geek_2d6073

去中心化区块链DAPP的优势及解决方案,DAPP系统开发

V\TG【ch3nguang】

2024深圳国际电子浆料及新型浆料技术展览会

吹吹晚风

区块链Dapp系统开发定制

V\TG【ch3nguang】

区块链搭建

矩视云平台SDK可以支持本地检测吗

矩视智能

机器视觉 深度学习、

AITO问界M9工信部申报信息曝光,或将是理想L9的最大对手?

Geek_2d6073

永续合约交易所搭建,合约平台开发

西安链酷科技

合约交易所开发

打败传统Scada系统的Web Scada是什么?

2D3D前端可视化开发

物联网 组态软件 工业控制 web scada scada系统

ARTS 打卡 第三周,渐入佳境

三掌柜

ARTS 打卡计划

Flink TaskManager 内存管理机制介绍与调优总结

腾讯云大数据

flink

DAPP系统开发(NFT平台搭建,去中心化应用开发)

西安链酷科技

dapp开发 开发软件 区块链开发DAPP开发

凝创新技术,汇数字力量 欧特克数字赋能『智』造汽车高峰论坛在沪开幕

E科讯

书评:《代码之道》_Java_崔康_InfoQ精选文章