青青子衿, 悠悠我心, 但为君故, 沉吟至今
« 开发一个iOS应用没有那么容易HTML5能取代Android和iOS应用程序吗? »

程序员真的很懒

  可能除了哲学家以外,笔者认为程序员是最懒的一群人。他们的职业看起来又似乎有一定的劳动强度。

  想想看,生物学家要亲自做所有的实验…给数百只小白鼠注射药物不可能自动完成。医生必须给病人进行身体检查;教授每年都要教授同样的课程;建筑师从各个角度制定方案,并手工地将方案一笔一划绘制出来。

  让我们再来看看更为辛苦的一些职业,情况更糟。营销人员要不断重复地进行同样的产品宣传;理发师日复一日地做着同样的事情;收营员每天都以相同的方式对货物进行结算…工厂工人…

  你面前呈现出了一幅图片,世界上有很多这样的人,他们每一小时,每一天,每一年,有些甚至一辈子都在重复做着几乎相同的事情。 

  来看看程序员

  每当我们想连续两次做同样的事情时—我们会尝试想一个方法来自动完成此过程。每当你写的代码是完成同样的一件事时,你会开始寻找一个库;每当你启动一个类似的项目时,你会去寻找一个模板。

  程序员的生活就是致力于消除重复的工作。

程序员真的很懒

  将琐碎地任务从我们的工作流程中剔除,这能让每个人生活得更轻松。这里有一个经典的笑话,说一个程序员情愿用一周的时间来写一个拷贝脚本,也不愿意将相同的文件复制粘贴两次,尽管复制粘贴可能只需要两分钟。

  该死的,我们要遵循DRY(Don’t Repeat Yourself不要重复自己)的原则。这个原则的基本内容是宁愿创建一个令人费解的抽象类,也不要将不相同但非常相似的代码写两次。

  这当然会导致很多问题。

  一般的软件项目充满了在顶层抽象类上构建的抽象类,你慢慢地会不清楚这些顶层抽象类将如何工作。甚至你完全不知道其代码在做什么。”Dizzying but invisible depth“,涉及到这个问题时,你真的应该读读这篇短文。

  另一方面,懒惰本身已经证明了历史上许多科学和工程发展所带来的背后推动力。用有轮子的拖车运东西比人工搬运要轻松;用船在水中前行比游泳来得容易;甚至如果你他妈的想炸掉一座城市,你投掷一颗原子弹也比投掷几千个小炸弹来的容易。

  所以这也许并不是说程序员是懒惰的。也许真正懒惰地是工程师们。只是恰巧在这样一个历史时刻,程序员作为工程师中最鲜明的一类,总是将世界向更好更光明的未来推动。而其它大多数领域已经在某种程度上稳定下来,或者需要更长的时间去适应新的工具。

  这里有一个重要的问题要问:程序员天生就懒吗?聪明懒惰的人容易被编程工作吸引吗,或者这是一种社会效应?懒惰源于最好的编程实践?还是最好的编程实践源于懒惰呢?

   

  一个比较

  最近,我有机会将一个建筑专业学生的一天与一个计算机科学专业的学生(就像我自己)的一天进行比较。

  大多数的建筑系学生的生活充满了这样或那样劳动密集的任务,这些任务是她工作的一部分。在任何时候,她都有可能要对一些模型进行拼凑粘合,在AutoCAD中从50个不同的角度对同一个物体进行绘图,或者在其它3D建模软件中重复相同的事情…然后将这些图片导入到Photoshop中成为真正好看的图。

  这种事会接连不断的发生。我估计她花费在课程作业上的时间比她实际上课的时间多一倍还不止(事实上她说花了5倍还多)。更糟糕的是,更好的完成这些任务并不能真正加快完成任务的进程,这只是意味着你多知道了几个键盘快捷键,意味着下次画图时你可能会少犯几个错误。

  熟练和精通完全无法优化关键的部分。

  相比之下,当我不上课时,我通常都在做自己的项目。因为我可以,因为我有充足的时间。当有作业布置下来时,一般情况下,我都可以在几个小时内完成…即使是最关键最重要的项目,老师也很少给我们超过一周的时间来集中完成作业,最多两周。

  精通编码并不意味着你打字更快(与建筑专业中等同的能力不同)。它意味着想出的解决方案更容易实现,利用工具来达到事倍功半的效果,诸如此类。最终,通过互联网进行测试评判,而实现过程是最无关紧要的部分,因为每个人都会。如果你有一天的时间,你可以实现某些东西。如果你有更多的时间,你可以使这些东西实现得更漂亮,模块化更高,可重用性更强,等等。

  基本上你能够快速地实现眼前的任务,你工作中大部分时间都在致力于使你的任务完成得更加漂亮。但这对于你手头的任务来说其实并不重要,你这样做是因为你可以。

  甚至于当程序员对自己的优化工作都产生厌倦时,他们会立马转而去创建工具来完成优化工作。

  事情就这样周而复始地重复着。

  接下来的家伙会使用他创建的新工具,使实现过程变得更快,接着优化它直到他最终厌倦,然后创建了一个新的更好的工具。

   所以…是辛苦的工作?

  但回到我最初的观点,辛苦工作对程序员的生产效率存在多大的影响?对于那些每天辛苦工作13小时以上,以取得竞争优势的创业者来说,这又意味着什么?这是值得考虑的一种优势吗?

   

  辛苦的工作可能对程序员工作效率产生负面的影响。它掩盖了背后所做的优化工作“哦,我可以手动把它完成,这将只需要10分钟时间”(其实这需要20分钟)。下一次,一个相似的任务到来时,你可能需要再次手动把它完成,长此以往…

  最重要的是,辛勤地工作会使你变得很笨。许多研究表明,持续疲劳的状态会使你做出错误的决策,甚至过多的决策也会让你会出错误的决定(称为决策疲劳)。事情上,这可能是我们喜欢创建抽象类并使用它们的原因—让其它人做大多数的决策,这样我就可以只专注于关键的部分。

  但是,我仍然没弄懂,到底是懒惰的人更喜欢编程,还是编程使他们变得懒惰… 

  原文:Swizec Teller    编译:伯乐在线 – 肖翔



  除非注明,月光博客文章均为原创,转载请以链接形式标明本文地址

  本文地址:http://www.williamlong.info/archives/3062.html
  • 文章排行:
  • 1.清风一二两
  • 确实,程序员就是致力于消除重复...像我这样业余的角色,在发现操作Excel时会重复许多次,就想用VBA来解决,结果用了两个小时把代码写出来,一秒钟就把本应当10分钟完成的工作搞定了,感觉真是先进啊。不过突然发现这个代码可能只需要用这一次...
    popok 于 2012-4-17 0:33:25 回复
    大家都有类似的经历,这种时候其实我们得到的是成就感,且获得了某些方面的经验,而不是效率上的突破
  • 2012/4/16 0:04:38   支持(58)反对(37) 回复
  • 2.迷方
  • 花一天时间尝试用5分钟去做原本需要一个小时才能完成的事
  • 2012/4/15 23:49:09   支持(43)反对(28) 回复
  • 3.陈锐BT
  • 呵呵,中国的程序员没那么有个性,大家连复制粘贴都懒得做,更愿意修改已有的代码..
  • 2012/4/16 9:08:53   支持(23)反对(10) 回复
  • 4.Rakin
  • 如果不把相同的东西抽取出来而留下若干段相似度很大的代码,那会让人不自觉地想到如果要修改它们该有多麻烦啊,而且代码会很丑,所以就抽出来写基类很符合逻辑的。还有个懒点就是能用快捷键的地方绝对不动鼠标……是的,我给foobar都配置了若干快捷键用以控制音乐播放。
  • 2012/4/16 7:04:56   支持(23)反对(11) 回复
  • 5.中國壹石頭
  • 程序猿是这世上最可爱的一帮人。有点类似于工程师,都是为了让现有的事情更便捷而不停地想办法。看起来不善言辞,但内心世界万千。文采翩然的不在少数。。。外行人的外围观。
  • 2012/4/16 1:14:25   支持(24)反对(15) 回复
  • 6.伦坤
  • 哎苦逼的程序员,苦逼的劳动力。
  • 2012/4/16 14:05:05   支持(18)反对(9) 回复
  • 7.杨洋
  • 如果说懒,那么懒的背后也是付出了很多精神上的汗水
  • 2012/8/23 13:23:02   支持(14)反对(5) 回复
  • 8.博客控
  • 我不是程序员,已经非常懒了。
  • 2012/4/16 6:17:32   支持(18)反对(10) 回复
  • 9.欣雨
  • 我也是程序员,可是没有那懒人的命,所以只能当一个笨蛋程序员,呜呜……
  • 2012/4/16 12:39:12   支持(17)反对(9) 回复
  • 10.老谷
  • 哈哈哈 确实 程序猿的工作就是化繁为简, 用最快捷最迅速的方式组织架构, 让程序跑起来. 这就ok了~
  • 2012/4/20 10:46:20   支持(26)反对(18) 回复
  • 11.杨乐i99
  • 我就是比较懒惰的人,平时的时候喜欢制造工具
  • 2012/4/16 0:29:53   支持(19)反对(13) 回复
  • 12.是登登
  • 程序猿的存在致力於消除繁瑣重復的工作,所以顯得懶吧。背後一把辛酸淚。😨
  • 2012/4/16 0:56:01   支持(18)反对(12) 回复
  • 14.aurora06
  • 懒惰的背后是追求“享乐”,但对大部分人的影响我个人觉得是人类社会在退步。
  • 2012/4/16 0:10:27   支持(17)反对(12) 回复
  • 15.程序员
  • 你懂程序员吗,不懂请不要随便乱说,谢谢
  • 2012/4/16 9:18:41   支持(21)反对(16) 回复
  • 16.kanhuijiji
  • 程序员...幸好我不是,不过我要是了说不定更好...
  • 2012/4/16 10:15:34   支持(18)反对(13) 回复
  • 17.这叫聪明
  • 人在做重复的工作是肯定会产生错误,传说中的防呆法不是没道理的
  • 2012/5/4 20:52:59   支持(16)反对(11) 回复
  • 18.原味大花爱蓝调
  • 我靠,刚看非诚勿扰一个女嘉宾说:你们这些做软件的,根本没有核心竞争力。跟着你会很没安全感!现在又说懒,看来是没的混了~
  • 2012/4/15 23:40:25   支持(20)反对(16) 回复
  • 20.silianpan
  • 程序员真的很懒吗?那勤快的人是不是不适合做程序员啊?!
  • 2012/4/16 7:49:30   支持(15)反对(11) 回复
  • 21.氧化氢
  • 是不是可以理解为是一种强迫症呢?
  • 2012/4/16 8:38:58   支持(19)反对(15) 回复
  • 22.redexpress
  • 作為一個程序員,我感覺我太勤快了,我以後要懶惰些。
  • 2012/4/16 12:12:04   支持(18)反对(14) 回复
  • 23.齐颂
  • 想想看,生物学家要亲自做所有的实验…给数百只小白鼠注射药物不可能自动完成。___ 所谓能者多劳,正因为程序解决问题的速度很快,所以他们的工作也就有了几何基数的增长,其结果是,无论生物学家还是IT民工都是累的半死的下班回家。
  • 2012/4/17 11:46:09   支持(18)反对(14) 回复
  • 24.Anthony
  • 程序员都喜欢"积极的偷懒".
  • 2012/4/18 11:41:24   支持(19)反对(15) 回复
  • 25.0o尕嘴亂親丶
  • 对程序员我充满敬意!
  • 2012/4/15 23:45:16   支持(16)反对(13) 回复
  • 26.IT_二师兄
  • 程序员就是为了偷更大的懒所以只好更勤奋地工作。
  • 2012/4/16 9:18:34   支持(15)反对(12) 回复
  • 27.xpang_
  • 程序员号称是过劳死的人群中,发生年龄最小的一群人啊,那劳动强度真是坑爹啊!好的程序员肯定是懒啊,比如为了偷懒会搞出很多有趣、高效的小工具
  • 2012/4/16 10:30:19   支持(13)反对(10) 回复
  • 31.wardeee
  • 「到底是懒惰的人更喜欢编程,还是编程使他们变得懒惰」
  • 2012/4/16 1:47:20   支持(14)反对(12) 回复
  • 32.营养师
  • 确实如此啊,哈哈。 37楼 你懂? 你说说程序员是什么?
  • 2012/4/16 9:39:19   支持(17)反对(15) 回复
  • 33.东东
  • 真正的程序员们是懒的。还有非常多伪程序员。
  • 2012/4/19 17:53:33   支持(19)反对(17) 回复
  • 34.EdgarWang
  • 程序员是懒于重复,他们要省出事件做更重要的事。
  • 2012/4/19 18:06:15   支持(21)反对(19) 回复
  • 35.scarwougo
  • 我觉得说得很对啊,然后仔细思考了一下,发现自己果然选错专业了,哎……╮(╯▽╰)╭
  • 2012/4/20 12:34:49   支持(15)反对(13) 回复
  • 36.捣乱
  • 程序员的结果是看起来是“懒”的,但过程不能用“懒”来看。
  • 2012/5/16 0:36:48   支持(18)反对(16) 回复
  • 37.malphas
  • 满纸荒唐言,一把辛酸泪。
  • 2012/4/15 23:53:59   支持(17)反对(16) 回复
  • 38.猫儿不会飞却能打老虎_zai农大
  • 程序员不懒。只是都是脑力劳动。
  • 2012/4/16 0:24:04   支持(15)反对(14) 回复
  • 39.深圳成为
  • 到底是懒惰的人更喜欢编程,还是编程使他们变得懒惰…
  • 2012/4/16 8:47:35   支持(17)反对(16) 回复
  • 40.Tater
  • 我也很懒,不是搞什么程序,只是有时候要方便自己而已~
  • 2012/4/16 9:16:07   支持(17)反对(16) 回复
  • 41.大话兵法
  • “懒”正是进步的动力!
  • 2012/4/16 22:51:24   支持(18)反对(17) 回复
  • 42.化妆品
  • 呵呵,每天脑子里都是那些代码,其他的事情懒得去想啊
  • 2012/4/17 10:35:39   支持(20)反对(19) 回复
  • 43.lyman
  • 额,偶尔也会这么想过,没想出来到底是人变懒了 还是 本来就懒,哈哈哈
  • 2014/2/20 17:59:28   支持(9)反对(8) 回复
  • 45.Clockwork_Frog
  • IDE不错,求高手指出名字
  • 2012/4/16 0:35:41   支持(17)反对(17) 回复
  • 47.麦铺maiplus
  • 麦铺maiplus认为言之有理
  • 2012/4/15 23:29:59   支持(20)反对(21) 回复
  • 48.挨踢小茶
  • 疲劳会对工作产生比较多负面的影响,说的没错的。
  • 2012/4/16 0:16:41   支持(14)反对(15) 回复
  • 49.还是那只柠檬
  • “懒”是一种大众需求。
  • 2012/4/16 0:45:22   支持(14)反对(15) 回复
  • 50.程序员
  • 你懂程序员吗,不懂请不要随便乱说,谢谢
  • 2012/4/16 8:51:14   支持(18)反对(20) 回复
  • 51.忘塵明心
  • 确实懒啊 所以想用机械代替人力呗
  • 2012/4/15 23:33:39   支持(16)反对(19) 回复
  • 52.飘逸de尘埃
  • 哈哈,的确宁可多花时间也不愿重复劳动
  • 2012/4/15 23:57:52   支持(18)反对(21) 回复
  • 53.邰小胖子phper
  • 懒人推动世界的发展,上次写个订餐系统,就为了午餐的那一会纠结,都没用上誒
  • 2012/4/16 1:01:49   支持(12)反对(15) 回复
  • 54.逍遥
  • 有一点需要确认的是,程序员的'懒惰'怎么来的!相反的,正是因为他思考了,提高了编码的效率.有另一种说法,叫'聪明'--用很效率的时间完成任务。
    两面把!你应该把'懒'打上引号!
  • 2012/5/27 10:52:04   支持(11)反对(14) 回复
  • 55.Goolge
  • 好文章>最重要的是,辛勤地工作会使你变得很笨。许多研究表明,持续疲劳的状态会使你做出错误的决策,甚至过多的决策也会让你会出错误的决定(称为决策疲劳)。事情上,这可能是我们喜欢创建抽象类并使用它们的原因—让其它人做大多数的决策,这样我就可以只专注于关键的部分。
  • 2012/4/16 0:21:08   支持(13)反对(17) 回复
  • 56.TenDollarOneDoll
  • 虽然不是程序员,不过我也挺喜欢做工具。
  • 2012/4/16 1:09:34   支持(11)反对(15) 回复
  • 58.eb274
  • 一种应该以开发和运用智力为主的专业,职责的皮肉在于解决所服务的某些领域不能利用计算机智能来完成工作的问题(人工智能的应用化),而价值更高的真正核心职责在于超越人工智能应用的最基本层次(相当于设计成功“反正也属于神经控制器官活动的生物的鼻涕虫”),等于是完成生物神经系统功能升级的进化因子,考虑改进人工智能应用技术,解决所服务对象的能力扩展和效率提升问题(相当于把鼻涕虫改造成更强大的蚂蚁、海豚、猕猴、人),在人们最希望实现的三个人工智能应用核心目标之中霸占了两个(能用上、用的效率更高,另一个是怎么开发更多更好的实现应用的物理资源,比方开发出金属和润滑油来制造机械计算机,开发出半导体、绝缘材料和发电机来制造电子计算机)。其中为了提高效率所做的努力,对于不会考虑到综合长期工作效率的人来说,行为很像不动脑寻找高效门路的笨人连傻劲都不愿使。
    所以做一个不只想从脑子挤出鼻涕虫叫它去干活的程序员,完全不必屈顺不求进步愚愚相压互相诋毁的犬儒化伪时尚潮流(真正的文明不会以此为时尚)感觉自我鄙陋,没有真正得知各种专业在干什么活的人确实存在很多误解,但那是怎么消除愚昧的问题(包括当一个程序员却不知道自己在干啥的眼界不太开问题,干活的报酬是另一回事),而不是应该按照误解来表现自我。
    标准版的程序员其实属于人工智能应用化时代的颠峰系人物,只是属于无冕分系而已。
  • 2012/7/16 0:46:44   支持(7)反对(11) 回复
  • 59.3M胶带
  • 呵呵,还有这样的程序员啊。。。。
  • 2012/4/16 16:44:56   支持(13)反对(18) 回复
  • 60.LC珑
  • 虽然不是程序员,但是当年花一个通宵用matlbab编写一个10分钟就能算出来的决策分析矩阵程序使我把自己归结到懒人一档,手算?killing me!懒也分境界。
  • 2012/4/16 1:04:44   支持(14)反对(20) 回复
  • 61.叶子
  • 程序员 要动大脑。没一定智商做不了这行。那些自以为富有思想的文人不会了解理工科的思考。理工科学文科一定比文科学理科结果好。

    不了解程序员的工作,妄加点评,烂文一篇。有空去微软、谷歌看看什么叫进步和创新。
    最烂的也是最懒的便是公知和民科了,不了解又爱评论,井底之蛙。
  • 2012/4/18 0:03:33   支持(16)反对(22) 回复
  • 62.百毒
  • 根据文章描述,程序员是“聪明而懒惰”的,所以,楼上几位没看懂文章就乱喷的人,被踢出程序员队伍了。(没错,我是说56和57楼)
  • 2012/5/6 20:50:10   支持(11)反对(17) 回复
  • 63.Creux_sombre
  • 好吧,咱确实很懒,逮到空就想睡觉……能坐着绝不站着,能躺着绝不坐着……哇哈哈~~~【虽然躺着看书对眼睛不好吧……】
  • 2012/4/16 0:38:36   支持(13)反对(20) 回复
  • 65.sjb
  • 狗屁文章!!科技就是为了解决人类的懒惰,发明水管就是为了不用去挑水,虽然发明水管的过程你自己动手早挑了无数桶水;发明汽车是为了不用走远路和节省时间,虽然发明汽车的时间你用脚走早就去到了你要去的地方。难道发明水管和发明汽车的人就很懒吗?
    itrand 于 2012-5-15 17:29:25 回复
    博主是站在中立的角度去分析问题,也正如你所言,是为人类的进步做贡献!任何事情都有双面性,我们不要太极端的去评论一件事情!只是我们的立场不一样而已。
  • 2012/4/18 13:13:07   支持(14)反对(32) 回复

发表评论:

 请勿发送垃圾信息、广告、推广信息或链接,这样的信息将会被直接删除。

订阅博客

  • 订阅我的博客:订阅我的博客
  • 关注新浪微博:关注新浪微博
  • 关注腾讯微博:关注腾讯微博
  • 关注认证空间:关注QQ空间
  • 通过电子邮件订阅
  • 通过QQ邮件订阅

站内搜索

热文排行


月度排行

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享. 转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议.
This site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.