Chinaunix首页 | 论坛 | 博客
  • 博客访问: 179545
  • 博文数量: 27
  • 博客积分: 2774
  • 博客等级: 少校
  • 技术积分: 250
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-31 11:00
文章分类

全部博文(27)

文章存档

2011年(2)

2010年(5)

2009年(10)

2008年(3)

2007年(7)

分类: IT职场

2011-02-14 17:17:32

导读:原文作者Ram Rachum写了一篇《The miserable programmer paradox》 (需要翻墙),由外刊IT评论翻译《》,见解独特,思维新颖。内容如下:

我所说的“关于程序员的痛苦的一种悖论”描述如下:

“好的程序员大部分的时间都在干他们厌恶的事情、使用他们厌恶的技术和工具。”

这是反常理的,看上去就是悖论;你会认为烂程序员才会把时间都花在烂技术上,优秀的程序员会把时间花在那些尖端的技术上。不是吗?

我在自己的体验中发现了这个悖论,直到后来我才明白为什么会是这样。

什么样的工作会让程序员们厌恶不已?这对一些有经验的程序员来说并不是什么新闻,但我要把这向那些非编程人员解释一下:

好程序员厌恶做那些本来可以自动完成的事情。如果一个程序员被指使去做一个机器(通常是电脑)能自动完成的事情,他会非常的懊恼。程序员的志向是让机器尽可能多的替他们完成任务,只有剩下的一些机器不能完成的工作才会自己出手。

这是一个程序员应该具有的一种非常有益的本能。

一个简单的需要自动完成的工作的例子: 想象一个程序员浏览一个有1000行代码的文件。他想找到第791行,因为这一行被认为有问题需要修改。但编辑器现在显示到第30行。大多数人都会简单的拖动滚动条一直到自己想要的那一行。但一个好程序员是不会去干这样的事情的。他们会使用一个能够使他们直接跳到特定行的编辑器。例如,在我使用的编辑器里,“Ctrl-L -> 791 -> Enter”就能做这样的事情。

这个例子很简单;更复杂的例子有很多。

好的程序员厌恶做重复性的工作的原因是,这些小事情会打断程序员的思绪。思绪是一个脆弱的东西;一旦思绪被打断,需要花很久才能再接起来。如果你每5分钟就被这种体力工作打搅一次,你的思绪就无影无踪了。

在日常工作中,程序员需要处理各种各样的技术工作、使用各种各样的工具。程序员喜欢那种含“体力劳动”相对较少的工作。程序员喜欢那些只需要很少的体力劳动的技术和工具(Python,Django,git等都属于这一类),讨厌那些需要大量体力劳动的技术和工具。(这个我就不举例了:)

但程序员必须即要处理那些有趣的自动化的技术,同时也要做那些讨厌的,需要体力劳动的工作。好的程序员会尽可能的使他们的生活远离那些烂技术,但总有一些很糟糕的技术他不能简单的抛弃。有时是因为他们开发的产品需要这种技术;例如,所有的web开发程序员都必须要跟HTML打交道,但HTML里有很多很讨厌的属性。有时一些很烂的技术不能抛弃只是因为有大量的人在使用他们,程序员必须去使用它们。

大部分的时间都是花费在了烂技术上从这个角度看,你就能很清醒的理解这个悖论为什么会出现了。烂技术会用掉大量的时间和精力。好的技术只需要很少的时间和精力。程序员每天的时间和精力是有限的。这有限的资源中很多一部分被投入到烂技术上,正是因为烂技术需要你付出更多。换句话说就是,他们主要的日常工作都是在跟他们讨厌的技术和工具打交道。因此,好程序员很痛苦。

我希望我的这篇文章最终能给解决这个问题带来一些启示,但估计不会很多。我们能做的事情就是尽量的抛弃那些烂技术,使它们远离我们的生活,而那些暂时抛弃不了的,我们只能忍受。

原文链接:

阅读(2043) | 评论(0) | 转发(0) |
0

上一篇:在Snow Leopard上构建x86 Linux交叉编译环境 V2

下一篇:没有了

给主人留下些什么吧!~~