几个月前。我们买了一台新的数码相机,为的是更好地记录我们家小宝贝的成长过程。採购的事情由我太太负责。
她小心地打开相机的包装盒,给相机装上电池。然后就開始了首次试拍。
像非常多电子产品一样,随相机附送的另一张软件光盘。于是。她不假思索地打开DVD光驱,然后把光盘放了进去。
我眼角的余光碰巧注意到了这一切。
说时迟,那时快,我疯了似的从房间的另一头冲过去,同一时候大叫:“不……要……啊……”——我不顾一切地试图阻止她从那张光盘上安装软件(为了更好地理解当时的情景。你能够以夸张的慢动作来想象一下整个过程)。
还好,她停住了,但我也差点儿惊走了一仅仅猫。
随数码相机附送的软件事实上没啥问题。但真是这样吗?
- 这个软件可能是不必要的。不论什么现代的操作系统(甚至是Windows XP)都能浏览而且自己主动下载一台新数码相机里的照片。不须要什么特别的软件。
但为了添加“价值”、与竞争对手形成差异化,相机公司的某些高管草率地採取了捆绑软件的策略——随机附带一款具有一堆古怪而独特功能的软件——这样的做法是应被质疑的。
- 硬件公司通常不擅长做软件。数码相机公司玩得好的是硬件制作,而软件呢,充其量是事后才想起来要做的事,仅仅是一件附属品,在销售人员眼里也只是是锦上添花的玩意儿。
- 不明来源的软件非常可能是由烂程序猿开发出来的。抛开别的不说。你即将安装的这款无名软件,它实用而且用户体验良好的概率是非常低的。
不幸的是,选择以软件开发作为自己的职业有非常多副作用。当中之中的一个便是,久而久之,你会变得厌恶软件。
我说的是真正的厌恶!
一种强烈的厌恶之情。想象一下你碰到过的最愤慨的用户,把他的情绪乘以1000倍也抵只是我们程序猿对软件的感受。
没人比程序猿更讨厌软件。
甚至此时此刻,我在说这个事的时候都感觉到自己的愤慨。
把开发软件作为职业的人会有这样的态度,这难道不奇怪吗?我们每天写着代码,因此还得到酬劳,怎么还能有怨恨呢?
David Parnas在一次採訪中这么解释道:
问:在软件project中。最常被忽视的风险是什么?
答:无能的程序猿。有人预计。美国须要超过20万名程序猿。这全然是误导!
这不是数量的问题。而是质量问题。
一个烂程序猿在一年里能够轻易创造两个新的就业机会。雇用很多其它的烂程序猿。仅仅会加大我们对他们的须要。
而假设我们有很多其它优秀的程序猿,而且能够让他们脱颖而出,我们对于程序猿的需求就会变少。而不是很多其它。
我怎么如此肯定这世界到处都是无能的程序猿呢?由于我就是当中之中的一个。
我们都在香肠加工厂干过活,因此我们知道那玩意儿是怎么做出来的。
这事不光彩。大多数软件都是像我们这样的烂程序猿(有的比我们更烂)开发出来的。
这意味着,大多数软件都是烂货。ScottBerkun以前写过一篇文章。题为“Why Software Sucks”(为什么软件叫人失望)。文中提到:
当人们说“这东西真烂”,他们的意思是以下的一条或几条:
- 它非我所需;
- 我不知所措;
- 它不是必需这么复杂难用。
- 它故障频出。
- 它丑陋得让人作呕;
- 它与我的世界观不相符;
- 它把我的精力浪费在工具上,而我更应该专注于我的工作。
你认为与那台数码相机捆绑的软件符合上述几条?我猜所有命中。这也是为什么说,最好别用软件。如若不然,你也要尽可能少用软件,甚至于,仅仅用那些有着良好声誉的确实可靠的软件。
我不喜欢安装新软件。恰恰相反,我对这事非常恐惧!
我来讲一个自己做了非常多次的噩梦吧。
在梦里,我坐在一台电脑面前。
这台机器启动了,跑的是我自己开发的操作系统。然后,我打开一个网络浏览器,它也是完全然全由我自己开发的。
我訪问了一个站点,这个站点也是我自己搭建的。我在页面上刚一点。结果蓝屏了。蓝屏程序本身也蓝屏了,就这样一发不可收拾,引起了一场大爆炸,把整个街区都毁了。
这个梦还算好的。更糟的时候仅仅有尖叫。周围一片漆黑。
总之,我讨厌软件。
我讨厌绝大部分软件,尤其是我自己的,由于我知道做好一个软件有多难!这听起来有些奇怪,但对于软件开发人员来说,这却是一种自然而健康的态度。你会发现,这是所有有能力的程序猿的共识。也是成长的必经之路。
实际上,在面试的过程中。我认为仅仅要用一个简单的问题。就能推断出一个软件开发人员是否有能力:“最近你见过的最糟糕的代码是什么?”
假设他们没有毫不犹豫地回答说“我自己的”。那么你应该马上中止面试。朋友,对不住啦,你对软件讨厌得还不够。过几年再来吧,假设那时候你还在当程序猿……
推荐阅读:程序猿的八种境地