关于程序员的痛苦的一种悖论

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

原文链接:http://www.aqee.net/2011/02/14/the-miserable-programmer-paradox/

【编辑推荐】

  1. 一个Python程序员的进化
  2. David Thomas:程序员要快乐的思考
  3. 程序员须知的二十世纪最伟大10大算法
  4. 3种类型的程序员:“虫族”,“人族”,“神族”
  5. 如何成为一个优秀的JSP程序员

 

责任编辑:陈贻新 来源: 外刊IT评论
相关推荐

2015-09-06 08:51:10

2014-03-28 10:30:20

程序员码农

2014-12-12 10:01:29

程序员

2014-07-22 10:12:33

程序员

2015-08-24 10:07:13

程序员bug

2015-11-03 08:51:21

程序员怪物

2011-04-27 09:17:30

程序员

2018-02-26 09:28:42

程序员Bug体验

2014-09-10 10:43:58

程序员

2014-09-10 10:04:37

程序员

2020-11-06 17:49:38

程序员技术开发

2015-03-18 10:16:57

程序员程序员如何偷懒

2013-09-10 10:14:19

程序员

2013-12-27 09:42:04

程序员趣闻

2017-12-21 14:51:41

程序员转行30岁

2015-12-03 09:23:25

程序员产品经理

2017-10-30 14:54:50

2011-12-23 09:16:19

2012-09-24 01:11:46

2015-08-19 09:10:37

程序员面试
点赞
收藏

51CTO技术栈公众号