【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

书评:《代码之道》

  • 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:294528
用户头像

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

关注

评论

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

SQL只是CRUD?

TiDB 社区干货传送门

TiDB 底层架构

tiup目录冲突检测不健全导致的节点被destroy问题以及解决

TiDB 社区干货传送门

NewSQL 在微众银行核心批量场景的应用

TiDB 社区干货传送门

实践案例

从内容角度看看TUG小伙伴都在关注些啥

TiDB 社区干货传送门

版本测评

Flink + TiDB,体验实时数仓之美

TiDB 社区干货传送门

实践案例

招募体验官!构建实时数仓 - 当 TiDB 遇见 Pravega

TiDB 社区干货传送门

TiDB 数据库开发规范

TiDB 社区干货传送门

移动云基于 TiDB 实现 serverless 数据库服务

TiDB 社区干货传送门

tidb开发规范

TiDB 社区干货传送门

写冲突场景下的悲观/乐观事务模型选择

TiDB 社区干货传送门

实践案例

TiKV 集群部署 注意事项

TiDB 社区干货传送门

TiDB at ZaloPay Infrastructure & Lesson Learned

TiDB 社区干货传送门

【TiDB 4.0 新 Feature 原理及实践】 Dashboard 触手体验

TiDB 社区干货传送门

几分钟读懂 TiDB HTAP

TiDB 社区干货传送门

常见问题排查之 -- DM 主键冲突的原因及排查思路

TiDB 社区干货传送门

如果你的 kubelet 运行在容器中,使用 local static provisioner 要注意一个问题

TiDB 社区干货传送门

【精选实践】TiDB 在马上消费金融核心账务系统归档及跑批业务下的实践

TiDB 社区干货传送门

实践案例

从抓包发现并解决 Navicat 编辑 TiDB 视图报错的问题

TiDB 社区干货传送门

实践案例 TiDB 底层架构

TIDB 3.0.5 性能压测

TiDB 社区干货传送门

数据库架构选型

AskTUG 论坛迁移实战:Discourse 从 PostgreSQL 到 MySQL 到 TiDB

TiDB 社区干货传送门

【TiDB 最佳实践系列】乐观锁事务

TiDB 社区干货传送门

实践案例

【技术专题】如何做数据库选型?

TiDB 社区干货传送门

实践案例

某业务升级5.0解决慢SQL问题

TiDB 社区干货传送门

实践案例 故障排查/诊断

TiDB 集群的可用性详解及 TiKV Label 规划

TiDB 社区干货传送门

TiDB 底层架构

【TiDB DevCon 2020】金融专题论坛演讲视频汇总

TiDB 社区干货传送门

日本大型移动支付软件 PayPay 的 TiDB 迁移实践

TiDB 社区干货传送门

【TiDB 最佳实践系列】开发 Java 应用使用 TiDB 的最佳实践

TiDB 社区干货传送门

实践案例

PD 分配 TS 的 QPS 上限揭密

TiDB 社区干货传送门

TiDB 5.0 异步事务特性体验——基于X86和ARM混合部署架构

TiDB 社区干货传送门

【热门问题】关于近期签名过期的处理合集

TiDB 社区干货传送门

基于阿里云ECS部署的TiDB 2.1.14升级到4.0.0-rc实践

TiDB 社区干货传送门

管理与运维 安装 & 部署

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