• 没人比程序猿更讨厌软件


    原文作者:Jeff Atwood

    几个月前。我们买了一台新的数码相机,为的是更好地记录我们家小宝贝的成长过程。採购的事情由我太太负责。

    她小心地打开相机的包装盒,给相机装上电池。然后就開始了首次试拍。

    像非常多电子产品一样,随相机附送的另一张软件光盘。于是。她不假思索地打开DVD光驱,然后把光盘放了进去。

    我眼角的余光碰巧注意到了这一切。

    说时迟,那时快,我疯了似的从房间的另一头冲过去,同一时候大叫:“不……要……啊……”——我不顾一切地试图阻止她从那张光盘上安装软件(为了更好地理解当时的情景。你能够以夸张的慢动作来想象一下整个过程)。

    还好,她停住了,但我也差点儿惊走了一仅仅猫。

    随数码相机附送的软件事实上没啥问题。但真是这样吗?

    1. 这个软件可能是不必要的。

      不论什么现代的操作系统(甚至是Windows XP)都能浏览而且自己主动下载一台新数码相机里的照片。不须要什么特别的软件。

      但为了添加“价值”、与竞争对手形成差异化,相机公司的某些高管草率地採取了捆绑软件的策略——随机附带一款具有一堆古怪而独特功能的软件——这样的做法是应被质疑的。

    2. 硬件公司通常不擅长做软件。数码相机公司玩得好的是硬件制作,而软件呢,充其量是事后才想起来要做的事,仅仅是一件附属品,在销售人员眼里也只是是锦上添花的玩意儿。
    3. 不明来源的软件非常可能是由烂程序猿开发出来的。

      抛开别的不说。你即将安装的这款无名软件,它实用而且用户体验良好的概率是非常低的。

    不幸的是,选择以软件开发作为自己的职业有非常多副作用。当中之中的一个便是,久而久之,你会变得厌恶软件。

    我说的是真正的厌恶!

    一种强烈的厌恶之情。想象一下你碰到过的最愤慨的用户,把他的情绪乘以1000倍也抵只是我们程序猿对软件的感受。

    没人比程序猿更讨厌软件。

    甚至此时此刻,我在说这个事的时候都感觉到自己的愤慨。

    把开发软件作为职业的人会有这样的态度,这难道不奇怪吗?我们每天写着代码,因此还得到酬劳,怎么还能有怨恨呢?

    David Parnas在一次採訪中这么解释道:

    问:在软件project中。最常被忽视的风险是什么?

    答:无能的程序猿。有人预计。美国须要超过20万名程序猿。这全然是误导!

    这不是数量的问题。而是质量问题。

    一个烂程序猿在一年里能够轻易创造两个新的就业机会。雇用很多其它的烂程序猿。仅仅会加大我们对他们的须要。

    而假设我们有很多其它优秀的程序猿,而且能够让他们脱颖而出,我们对于程序猿的需求就会变少。而不是很多其它。

    我怎么如此肯定这世界到处都是无能的程序猿呢?由于我就是当中之中的一个。

    我们都在香肠加工厂干过活,因此我们知道那玩意儿是怎么做出来的。

    这事不光彩。大多数软件都是像我们这样的烂程序猿(有的比我们更烂)开发出来的。

    这意味着,大多数软件都是烂货。ScottBerkun以前写过一篇文章。题为“Why Software Sucks”(为什么软件叫人失望)。文中提到:

    当人们说这东西真烂,他们的意思是以下的一条或几条:

    • 它非我所需;
    • 我不知所措;
    • 它不是必需这么复杂难用。
    • 它故障频出。
    • 它丑陋得让人作呕;
    • 它与我的世界观不相符;
    • 它把我的精力浪费在工具上,而我更应该专注于我的工作。

    你认为与那台数码相机捆绑的软件符合上述几条?我猜所有命中。这也是为什么说,最好别用软件。如若不然,你也要尽可能少用软件,甚至于,仅仅用那些有着良好声誉的确实可靠的软件。

    我不喜欢安装新软件。恰恰相反,我对这事非常恐惧!

    我来讲一个自己做了非常多次的噩梦吧。

    在梦里,我坐在一台电脑面前。

    这台机器启动了,跑的是我自己开发的操作系统。然后,我打开一个网络浏览器,它也是完全然全由我自己开发的。

    我訪问了一个站点,这个站点也是我自己搭建的。我在页面上刚一点。结果蓝屏了。蓝屏程序本身也蓝屏了,就这样一发不可收拾,引起了一场大爆炸,把整个街区都毁了。

    这个梦还算好的。更糟的时候仅仅有尖叫。周围一片漆黑。

    总之,我讨厌软件。

    我讨厌绝大部分软件,尤其是我自己的,由于我知道做好一个软件有多难!这听起来有些奇怪,但对于软件开发人员来说,这却是一种自然而健康的态度。你会发现,这是所有有能力的程序猿的共识。也是成长的必经之路。

    实际上,在面试的过程中。我认为仅仅要用一个简单的问题。就能推断出一个软件开发人员是否有能力:“最近你见过的最糟糕的代码是什么?”

    假设他们没有毫不犹豫地回答说“我自己的”。那么你应该马上中止面试。朋友,对不住啦,你对软件讨厌得还不够。过几年再来吧,假设那时候你还在当程序猿……

    推荐阅读:程序猿的八种境地

  • 相关阅读:
    MATLAB简易验证码识别程序介绍
    [Java面试三]JavaWeb基础知识总结.
    [Java面试十二]数据库概念相关
    [Java面试十一]数据库总结.
    [Java面试十]浏览器跨域问题.
    [Java面试九]脚本语言知识总结.
    [Java面试八]Hibernate总结以及在面试中的一些问题.
    [Java面试七]Mybatis总结以及在面试中的一些问题.
    [Java面试六]SpringMVC总结以及在面试中的一些问题.
    [Java面试五]Spring总结以及在面试中的一些问题.
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5105489.html
Copyright © 2020-2023  润新知