阿里云飞天发布时刻,领先大模型限免,超7000万 tokens免费体验 了解详情
写点什么

书评:《代码之道》

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

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

关注

评论

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

龙蜥开发者说来了,来看看社区一周动态还有什么? | 3.07-3.11

OpenAnolis小助手

开源 开发者 龙蜥社区 一周动态

每秒百万条信息查询天翼云助力江苏核酸检测信息查询

天翼云开发者社区

CVE-2022-22947 远程代码执行漏洞复现分析

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

在线JSON格式化美化

入门小站

工具

3天掌握Flask开发项目系列博客之二,操作数据库

梦想橡皮擦

3月月更

无影云电脑支持企业快速实现居家办公

阿里云弹性计算

远程办公 数据安全 无影云电脑

聊聊 Pulsar:编译 Pulsar 源码并搭建源码环境

老周聊架构

云原生 Apache Pulsar 3月月更

译文《Java并发编程之CAS》

潘大壮

乐观锁 并发编程 CAS 并发’ Java Concurrency

天翼云联手平凯星辰共建开源分布式数据库实验室

天翼云开发者社区

如何在 Python 中反转字符串?

Ethereal

如何设计良好的技术项目文档结构

老张

项目管理 交付质量

云原生中间件 -- Redis Operator 篇

Daocloud 道客

redis 云原生 中间件 云原生中间件

一种小程序弱网离线优化的思路

阿里巴巴终端技术

小程序 弱网 体验优化

拥抱国产云桌面,焱融科技与酷栈科技完成产品兼容认证

焱融科技

云计算 分布式 云原生 高性能 文件存储

向工程腐化开炮|资源治理

阿里巴巴终端技术

Java android 资源管理

阿里云神龙AI加速引擎帮助vivo将训练性能提升30%-70%

阿里云弹性计算

AI gpu 神龙架构 加速引擎

WMS系统与ERP仓储管理的差异

源字节1号

开源 后端 前端开发 WMS系统 ERP系统

欧拉的奇异之旅·共赴开源时代

白洞计划

Docker Shim 被移除,K8s v1.24 升级该怎么办

Daocloud 道客

Docker Kubernetes CRI-Dockerd

确保数据中心物理安全的五种方法

Ethereal

flask POST请求,数据入库,文件上传,一文看懂,3天掌握Flask开发项目系列博客之三

梦想橡皮擦

3月月更

东数西算加快云网与数据融合天翼云架起云间高速

天翼云开发者社区

使用基于 WebRTC 的 JavaScript API 在浏览器环境里调用本机摄像头

汪子熙

JavaScript 前端 WebRTC 摄像头 3月月更

阿里IM技术分享(七):闲鱼IM的在线、离线聊天数据同步机制优化实践

JackJiang

即时通讯 IM im开发

《人民日报》刊文:天翼云持续创新为数据安全保驾护航

天翼云开发者社区

智能家居市场白热化,小程序助力生态合作新模式

Speedoooo

小程序生态 智慧小区 小程序容器 智慧家居 智慧物业

天翼云供应链API安全治理实践获“优秀治理实践奖”

天翼云开发者社区

作业五

Geek_f3e842

架构实战营

云原生网络利器--Cilium 之 eBPF 篇

Daocloud 道客

云原生 ebpf cilium

终端常用快捷键

刁架构

终端 快捷键 iterm2

基于 EventBridge 构建 SaaS 应用集成方案

阿里巴巴云原生

云原生 SaaS

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